Die Strategie nutzt eine Kombination aus langen RMA-Mitteln und kurzen EMA-Mitteln, um Trends zu beurteilen und Trends zu verfolgen, die mit hohen und niedrigen Durchbrüchen gestoppt werden. Es wurde auch ein No-Trade-Bereich eingerichtet, um falsche Durchbrüche zu filtern.
Die langfristige RMA und die kurzfristige EMA werden verwendet, um die Richtung des Trends zu bestimmen. Unterhalb der kurzfristigen EMA wird die langfristige RMA als Aussichtssignal getragen, oben als Aussichtssignal.
Wenn der Preis den höchsten Preis des letzten bestimmten Zeitraums überschreitet, wird der Höchstpreis verfolgt. Wenn der Preis den niedrigsten Preis des letzten bestimmten Zeitraums überschreitet, wird der niedrigste Preis verfolgt.
Es wird ein No-Trading-Bereich eingerichtet, in dem der Preis keine Positionen eröffnet, um zu verhindern, dass er eingeschränkt wird. Der Bereich wird in einem bestimmten Prozentsatz durch die RMA-Gewinnlinie bestimmt.
Nach dem Eintritt wird ein Stop-Loss-Preis gesetzt, um den Gewinn in einem bestimmten Prozentsatz zu verringern.
Die Gleichgewichtskombination kann die Richtung des Trends genau und zuverlässig bestimmen.
Die Stop-Loss-Methode ermöglicht es dem Stop-Loss, dem Trend zu folgen.
Die Einrichtung von No-Trading-Bereichen wirkt als Filter für falsche Signalbrecher.
Die Stop-Loss-Einstellung erlaubt der Strategie, die Position aktiv zu platzieren, sobald sie genügend Gewinne gesammelt hat.
Bei der Erzeugung von Dead Forks kann es zu Verzögerungen kommen, was zu einer Vergrößerung der Verluste führt.
Der Tracking-Stop-Loss-Punkt, der zu nahe am Preis liegt, kann durch vorherige Noise ausgelöscht werden.
Eine übergroße No-Trading-Zone führt zu verpassten Handelschancen.
Wenn die Verluste nicht rechtzeitig eingestellt werden, können sie sich weiter ausweiten.
Entsprechende Lösungen:
Optimierung der Mittellinienparameter zur Verringerung der Verzögerungswahrscheinlichkeit.
Der Stopp wird entsprechend gelockert, um eine Überempfindlichkeit zu verhindern.
Tests, die den Umfang der No-Trading-Bereiche anpassen, um verpasste Chancen zu verhindern.
Das ist eine sehr gute Idee, aber es ist nicht die richtige.
Testen Sie andere Kombinationen von Gleichgewichtsindikatoren, um eine bessere Übereinstimmung zu finden.
Es ist wichtig, die Differenz zwischen den Preisen zu erhöhen, die MACD und andere Indikatoren zu verbessern und die Strategie zu stabilisieren.
Einführung von Optimierungsparametern für Machine-Learning-Algorithmen, um Strategien intelligenter zu gestalten.
Es ist wichtig, dass die Trends mit den Indikatoren der Trendstärke kombiniert werden, um einen Abwärtstradition zu vermeiden.
Optimierung der Geldmanagement-Strategie und Erhöhung der Erfolgsquote.
Die Strategie nutzt die doppelte Gleichheitslinie, um die Trendrichtung zu bestimmen und den Trend mit einem Filter zwischen Stop-Loss- und No-Trade-Bereich zu verfolgen, um den Trend zu profitieren. Die Strategie-Rahmen ist einfach, klar und erweiterbar. Sie kann durch Anpassung der Parameterbereiche, Optimierung der Stop-Loss-Strategie und Einführung anderer Hilfsindikatoren optimiert werden, so dass die Strategie in verschiedenen Märkten gut funktioniert.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-12 00:00:00
period: 3h
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/
// © PatrickGwynBuckley
//@version=5
//var initialCapital = strategy.equity
strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true)
shortma = input.int(55, title="quick ma's")
longma = input.int(100, title="long ma's")
ema55h = ta.ema(high, shortma)
ema55l = ta.ema(low, shortma)
ema200h = ta.rma(high, longma)
ema200l = ta.rma(low, longma)
stock = ta.stoch(close, high, low, 14)
lev = input.int(3, title="leverage")
hhVal = input.int(170, title="Highest high period")
llVal = input.int(170, title="Lowest low period")
hh = ta.highest(high, hhVal)
ll = ta.lowest(low, llVal)
//plot(stock)
plot(hh, color=color.new(color.green, 50))
plot(ll, color=color.new(color.red, 50))
var float downtrade = 0
p = input.float(3.0, title="no trade zone")
l = 3
emadistlong = ema200h + ((ema200h/100)*p)
emadistshort = ema200l - ((ema200h/100)*p)
plot(ema55h)
plot(ema55l)
ntl = plot(emadistlong, color=color.new(color.red, 10))
nts = plot(emadistshort, color=color.new(color.red, 10))
fill(ntl, nts, color=color.new(color.red, 90))
//position size
EntryPrice = close
//positionValue = initialCapital
positionSize = (strategy.equity*lev) / EntryPrice
//plot(strategy.equity)
//standard short
if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85
strategy.entry("short", strategy.short, qty=positionSize, comment="short")
downtrade := 1
//reset count
if (ta.crossunder(ema55h, ema200l)) and downtrade == 1
downtrade := 0
//standard long
if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15
strategy.entry("long", strategy.long, qty=positionSize, comment="long")
downtrade := 0
//RESET COUNT ON MA CROSS
if (ta.crossover(ema55l, ema200h)) and downtrade == 0
downtrade := 1
longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)//
shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)//
sl = 3.5
tp = input.float(6.9, title="take profit %")
tp2 = 10
strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))
strategy.close("long", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
//strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("long2", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300)
strategy.close("short", when = shortclose2, comment = "short exit")
//strategy.close("short", when = (downtrade == 0), comment = "short exit")
//strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("short2", when = shortclose2, comment = "short exit")
//strategy.close("short2", when = (downtrade == 0), comment = "short exit")
//if (strategy.exit("long exit", "long"))
//downtrade := 1
//else
// downtrade := 0