Die Ruda Dynamic Trend Trading Strategie ist eine quantitative Handelsstrategie, die auf Dynamik und Trendindikatoren basiert. Die Strategie verwendet Kennzahlen wie OBV (On Balance Volume), EMA (Exponential Moving Average) und K-Line Entity Proportionen, um zu bestimmen, wann man kaufen und verkaufen soll. Die Strategie wird am nächsten Tag gekauft, wenn die EMA kurzfristig überschritten wird, OBV innovativ hoch ist und der Anteil der K-Line Entities größer als die festgelegte Schwelle ist.
Die Ruda Dynamic Trend Trading Strategie ist eine einfache und einfach zu verwendende quantitative Handelsstrategie, die durch eine Kombination von Trends und Dynamic Indicators eine starke Vielfalt und Trendchancen erfasst. Die Strategie hat jedoch auch einige Einschränkungen, wie z. B. Probleme mit Indikatorrückgängen, Parameterfestsetzung. In Zukunft können Optimierungen und Verbesserungen der Strategie vorgenommen werden, um die Stabilität und Profitabilität der Strategie zu verbessern, z. B. durch Optimierung von Indikatorparametern, Einführung von Anpassungsmechanismen, Erweiterung der Rückmeldungsbreite und Stärkung der Risikomanagement.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © lhcbenac //@version=5 strategy('Ruda_Strategy', overlay=true , initial_capital=5000 , pyramiding = 3, commission_type = strategy.commission.cash_per_contract , commission_value = 1 ) // // //////////////////////////////////////////////////////// // // // // // Otimizações // // // // // //////////////////////////////////////////////////////// // // //////////////////////////////////////////////////////// // // // // // Codigo Operacional // // // // // //////////////////////////////////////////////////////// // // // Indica situação de Compra ou Venda // Condição True or False YEAR_BT= input.int(1,title="Nº Anos ", group = "Backtest") INPUT_ME1 = input.int(5,title="Momentum ", group = "RUDA") INPUT_ME2 = input.int(21,title="Trend ", group = "RUDA") INPUT_CORPO = input.int(50,title="CORPO ", group = "RUDA")/100 v_obv = ta.obv v_med1 = ta.ema(close , INPUT_ME1) v_med2 = ta.ema(close , INPUT_ME2) valid_1 = v_med1 > v_med2 valid_2 = v_obv >= ta.highest(v_obv[1], 10) valid_3 = math.abs(close - open) / (high-low) > INPUT_CORPO plot(v_med1) plot(v_med2) compra = valid_1 and valid_2 and strategy.position_size == 0 and valid_3 var float v_minima_ref = na dataInicio = timestamp(year(timenow) - YEAR_BT, month(timenow), dayofmonth(timenow), 00, 00) // Variáveis globais var float preco_entrada = na var float preco_stop = na if compra and time >= dataInicio and ta.change(time("D")) != 0 and ta.change(compra) v_minima_ref := low preco_entrada := open preco_stop := math.min(low, open - 0.01 * open) strategy.entry("Compra", strategy.long , stop = preco_stop ) if (not na(preco_entrada) and not na(preco_stop)) label.new(x=bar_index, y= low * 0.9, text= "Dia: " + str.tostring(dayofmonth) + "\nPreço de Entrada: " + str.tostring(preco_entrada) + "\nPreço de Stop Loss: " + str.tostring(preco_stop), style=label.style_label_up, color=color.green) // Lógica de saída // Saída no stop loss if (not na(preco_stop) and low < preco_stop and ta.change(low) < 0) strategy.close("Compra", comment="Saída no Stop") // Saída no lucro if (close < v_med1 and ta.change(close) < 0) strategy.close("Compra", comment="Saída na Media") venda =( (not na(preco_stop) and low < preco_stop and ta.change(low) < 0) or (close < v_med1 and ta.change(close) < 0) ) and strategy.position_size > 0 codiff = compra ? 1 : venda ? -1 : na plotarrow(codiff, colorup=#00c3ff, colordown=#ff0062,title="Compra", maxheight=20, offset=0)