Die Ressourcen sind geladen. Beförderung...

Triangle Breakout-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-20 14:24:16
Tags:

Übersicht

Dies ist eine Trendfolgestrategie. Es geht lang, wenn der Preis aus einer aufsteigenden Dreiecksformation ausbricht, und schließt die Position, wenn die schnelle EMA unter die mittlere EMA fällt. Stop-Loss und Take-Profit werden ebenfalls eingestellt, um Risiken zu kontrollieren.

Strategie Logik

  1. Die EMA-Termine wird in der Regel mit einer kurzen E-Marke gekennzeichnet, wobei die E-Marke mit einer kurzen E-Marke verglichen wird.

  2. Verwenden Sie die höchsten und niedrigsten Preise der letzten N-Bars, um festzustellen, ob ein aufsteigendes Dreieck gebildet wird.

  3. Nach dem Eintritt, wenn der schnelle EMA unter den mittleren EMA überschreitet, zeigt er eine Trendumkehr an und gibt ein Ausgangssignal.

  4. Einrichtung eines Stop Loss auf einen bestimmten Prozentsatz unter dem Einstiegspreis für den Stop Loss-Ausgang.

  5. Festlegen Sie ein Gewinnziel für die Teilgewinnentnahme auf einen bestimmten Prozentsatz über dem Einstiegspreis.

  6. Verwenden Sie den 200-Tage-EMA, um die allgemeine Trendrichtung zu bestimmen, handeln Sie nur, wenn der Trend steigt.

Analyse der Vorteile

  1. Die Dreiecksformation filtert falsche Ausbrüche und verbessert die Einstiegsgenauigkeit.

  2. Fast EMA vs. medium EMA teilt Trend und Konsolidierung vernünftigerweise auf, um Whipsaws zu vermeiden.

  3. Ein angemessener Stop-Loss- und Take-Profit-Einstellungen kontrollieren Einzelhandelsverluste.

  4. Nur der Aufwärtstrend verhindert unruhige Perioden.

Risikoanalyse

  1. Eine zu enge Dreiecksbreite kann Trends verpassen, während eine zu breite Breite unnötige Trades erhöhen kann.

  2. Ein zu naher Stop-Loss führt dazu, dass der Verlust vorzeitig gestoppt wird, während ein zu breiter Stop-Loss den Verlust nicht kontrolliert.

  3. Eine falsche Festlegung des Teilgewinns kann zu einem Gewinnüberschuss führen.

  4. Falsche Trendindikatorparameter können zu einer falschen Positionsrichtung führen.

Verbesserungsrichtlinien

  1. Optimieren Sie den Parameter N für die Dreiecksbestimmung, um den optimalen Wert zu finden.

  2. Versuche verschiedene Kombinationen von EMA-Perioden, um die Trendgenauigkeit zu verbessern.

  3. Optimieren Sie die Stop-Loss- und Take-Profit-Parameter auf der Grundlage der Produktmerkmale.

  4. Hinzufügen anderer Indikatoren wie MACD-Muster, Bollinger-Breakout usw. zur Verbesserung der Signalqualität.

  5. Hinzufügen eines Wiedereröffnungsmechanismus zur Erhöhung des Gewinns, wenn der Trend anhält.

Zusammenfassung

Die Strategie ist insgesamt robust mit Dreiecksbildung, die die Signalgenauigkeit verbessert. Großer Parameteroptimierungsraum besteht für weitere Verbesserung. Versuchen Sie auch, mehr Hilfsindikatoren hinzuzufügen oder den Stop-Loss/Take-Profit für eine größere Wirksamkeit zu verbessern. Insgesamt hat diese Strategie das Potenzial, ein Qualitätstrend nach der Strategie zu werden.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
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/
// © mohanee

//@version=4

strategy(title="TrianglePoint strategy", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
// variables  BEGIN

numPeriods=input(9,title="Number of Bars")
fastEMA = input(13, title="fast EMA", minval=1)
slowEMA = input(65, title="slow EMA", minval=1)

stopLoss = input(title="Stop Loss%", defval=5, minval=1)


HH = highest(close[1],numPeriods)
LL = lowest(close[1],numPeriods)
tringlePoint =  low > LL and high < HH

fastEMAval= ema(close, fastEMA)
slowEMAval= ema(close, slowEMA)
two100EMAval= ema(close, 200)

//plot emas
plot(fastEMAval, color = color.green, linewidth = 1, transp=0)
plot(slowEMAval, color = color.orange, linewidth = 1, transp=0)
plot(two100EMAval, color = color.purple, linewidth = 2, transp=0)

longCondition=fastEMAval>two100EMAval and tringlePoint

//plotshape(triP,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)
//plotshape(longCondition,style=shape.triangleup,text="Buy",color=color.green,location=location.belowbar)

//Entry
strategy.entry(id="TBT LE", comment="TBT LE" , long=true,  when= longCondition and strategy.position_size<1)   

//Add
strategy.entry(id="TBT LE", comment="Add" , long=true,  when= longCondition and strategy.position_size>=1 and close<strategy.position_avg_price)   


//barcolor(strategy.position_size>=1 ? color.blue : na)

//Take profit
takeProfitVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1+(stopLoss*0.01) )) : 0.00
//strategy.close(id="TBT LE", comment="Profit Exit",  qty=strategy.position_size/2,  when=close>=takeProfitVal and close<open and close<fastEMAval)   //crossunder(close,fastEMAval)
barcolor(strategy.position_size>=1  ? (close>takeProfitVal? color.purple : color.blue): na)

//Exit
strategy.close(id="TBT LE", comment="TBT Exit",   when=crossunder(fastEMAval,slowEMAval))


//stoploss
stopLossVal=   strategy.position_size>=1 ?  (strategy.position_avg_price * (1-(stopLoss*0.01) )) : 0.00

//stopLossVal= close> (strategy.position_avg_price * (1+(stopLoss*0.01) )) ? lowest(close,numPeriods) : (strategy.position_avg_price * (1-(stopLoss*0.01) ))


strategy.close(id="TBT LE", comment="SL Exit",   when= close < stopLossVal)

Mehr