Die Strategie gehört zu den Trend-Tracking-Strategien. Sie handelt als Überschuss, wenn der Preis die Obergreifung trianguliert, und als Pause, wenn der schnelle EMA den mittleren EMA durchbricht. Gleichzeitig werden Stop-Loss- und Stop-Stop-Punkte festgelegt, um das Risiko zu kontrollieren.
Die kurze EMA und die mittlere EMA werden verwendet, um die Richtung des Trends zu bestimmen. Die kurze EMA über die mittlere EMA ist ein Positivsignal.
Anhand der höchsten und niedrigsten Preise der jüngsten N-K-Linien wird beurteilt, ob ein Aufwärtsdreieck gebildet wurde.
Nach dem Eintritt in den Markt, wenn die schnelle EMA unter der mittleren EMA durchbricht, wird der Trend als umgekehrt angesehen und ein Ausgleichssignal ausgegeben.
Der Stop-Loss-Punkt wird auf einen bestimmten Prozentsatz unter dem Einstiegspreis gesetzt und der Stop-Loss-Punkt auf den Ausstiegspreis.
Der Eintrittspreis muss einen bestimmten Prozentsatz höher sein als der Eintrittspreis, und ein Teil des Eintrittspreises muss höher sein als der Eintrittspreis.
Die 200-Tage-EMA wird verwendet, um die Richtung des Gesamttrends zu bestimmen und nur dann zu handeln, wenn der Trend nach oben geht.
Mit dem Dreiecksfilter werden falsche Durchbrüche vorgenommen, um die Eintrittsgenauigkeit zu verbessern.
Die schnelle EMA und die mittlere EMA trennen Trends und Schwankungen vernünftigerweise voneinander und vermeiden so, dass sie eingehalten werden.
Die Stop-Loss- und Stop-Stop-Einstellungen sind vernünftig, um einzelne Verluste zu kontrollieren.
Die Kurve kann nur bei einem Aufwärtstrend betrieben werden, um die Kurve zu umgehen.
Der Triangle-Bereich ist zu klein, um Trends zu übersehen, und zu groß, um unnötige Transaktionen zu erhöhen. Die Parameter N. müssen optimiert werden.
Zu nahe am Stoppschaden ist es leicht zu schlagen, zu weit weg ist es schwierig, den Schaden zu kontrollieren. Die Parameter müssen bewertet und optimiert werden.
Die falsche Einstellung von Teilen der Sperre kann zu einem Überschuss der Gewinne führen. Der angemessene Anteil muss bewertet werden.
Unzulängliche Parameter für Trendbeurteilungen können zu falschen Positionsrichtungen führen. Es ist erforderlich, mehrere Sorten zu testen und zu optimieren.
Optimieren Sie die Parameter N, die durch das Dreieck bestimmt werden, um den optimalen Wert zu finden.
Verschiedene EMA-Zykluskombinationen werden getestet, um die Genauigkeit der Trendbeurteilung zu verbessern.
Optimierung der Stop-Loss-Stop-Parameter je nach den Eigenschaften der verschiedenen Sorten.
Hinzufügen von anderen Indikatoren, wie MACD-Form, Brin-Band-Breaking, um die Signalqualität zu verbessern.
Die Einführung eines Reopen-Mechanismus, der die Gewinnspanne verlängert, wenn der Trend anhält.
Die Strategie ist insgesamt robust und kann durch die Dreiecksbeurteilung die falschen Durchbrüche wirksam filtern. Es gibt mehr Raum für die Optimierung von Parametern, was zu besseren Ergebnissen führen kann. Darüber hinaus kann versucht werden, mehr Hilfsurteile hinzuzufügen oder die Stop-Loss-Strategie zu verbessern, um die Strategie weiter zu verbessern.
/*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)