Die Ressourcen sind geladen. Beförderung...

Ruda Motor Trend Handelsstrategien

Schriftsteller:ChaoZhang, Datum: 2024-04-03 15:16:47
Tags:EMAOBV

Ruda动量趋势交易策略

Übersicht

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 Strategie

  1. Berechnen Sie zwei EMA-Linien, kurzfristige EMA-Parameter 5 und langfristige EMA-Parameter 21. Wenn die kurzfristige EMA über die langfristige EMA verläuft, wird der Trend als aufwärts betrachtet, umgekehrt ist der Trend nach unten.
  2. Die Berechnung des OBV-Indikators, wenn der OBV ein neues 10-tägiges Hoch erreicht hat, ist für mehrere Köpfe dynamisch.
  3. Berechnung des K-Linien-Einheitsanteils, wenn der Entitätsanteil größer ist als der festgelegte Schwellenwert (default 50%), wird der Trend als festgestellt betrachtet.
  4. Wenn der Trend nach oben geht, die Multipurpose Dynamik stark ist und der Trend feststeht, kauft die Strategie am nächsten Tag zum Eröffnungspreis, wobei der Stop-Loss-Preis der Tagespriis und der Mindestwert des Eröffnungspreises von 1% ist.
  5. Die Strategie wird ausgeglichen, wenn der Preis den Stop-Loss-Preis oder den Schlusskurs über die kurzfristige EMA bricht.

Stärkenanalyse

  1. In Kombination mit Trends und Dynamikindikatoren können starke Sorten erfasst werden.
  2. Mit einem Kauf und einem dynamischen Stop-Loss am nächsten Tag kann ein Teil des falschen Durchbruchs vermieden werden.
  3. Die Bedingungen für die Verhinderung von Schäden und Schäden sind klar und die Risiken sind kontrollierbar.

Risikoanalyse

  1. Trends und Antriebsindikatoren sind zurückgeblieben und es kann zu einem zu frühen Aufkauf und Stopp der Verluste kommen.
  2. Parameter fest, fehlende Anpassungsfähigkeit und unterschiedliche Performance unter verschiedenen Marktbedingungen.
  3. Die strategische Stabilität und Anwendbarkeit des Binnenmarktes und der Sortenrezensionen ist noch zu überprüfen.

Optimierung

  1. Optimierung der Parameter für Trend- und Dynamikindikatoren, um die Sensitivität und Effektivität der Indikatoren zu verbessern.
  2. Einführung von Marktzustandsurteilen und dynamische Anpassungsparameter entsprechend den aktuellen Marktmerkmalen.
  3. Erweitern Sie den Umfang der Nachprüfungen, erhöhen Sie die Anzahl der Tests in verschiedenen Märkten und Sorten und verbessern Sie die Strategie.
  4. Die Einführung von Positionsmanagement- und Risikokontrollmodulen wird in Erwägung gezogen, um den Ertrags-Risiko-Verhältnis zu verbessern.

Zusammenfassung

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)






Inhalte dazu

Weitere Informationen