Strategie für Trendfänger

Schriftsteller:ChaoZhang, Datum: 2024-04-26 11:48:28
Tags:- Nein.SMA

img

Übersicht

Die Trend-Catcher-Strategie ist eine Strategie, die Trendformationen mit ihrer eigenen einzigartigen Methode erkennt und Positionen in Richtung des Trends öffnet. Sie berechnet einen prozentualen Wert namens limit, indem sie die Differenz zwischen den höchsten und niedrigsten Preisen in einem bestimmten Bereich durch die Summe der Längen der Kerzen in diesem Bereich dividiert. Je näher dieser Wert an 100 liegt, desto stärker ist der Trend. Wenn dieser Wert eine festgelegte Grenze überschreitet und der gleitende Durchschnitt steigt, eröffnet die Strategie eine Long-Position; wenn dieser Wert eine festgelegte Grenze überschreitet und der gleitende Durchschnitt sinkt, eröffnet die Strategie eine Short-Position. Nach dem Öffnen einer Position schließt die Strategie einen Teil der Position, wenn der Preis ein bestimmtes Niveau erreicht und bewegt die verbleibende Position zu einem Punkt, an dem sie glaubt, dass der Trend vorbei ist.

Strategieprinzip

  1. Berechnen Sie die Differenz zwischen dem höchsten und dem niedrigsten Preis in einem bestimmten Bereich sowie die Summe der Längen aller Kerzen in diesem Bereich.
  2. Teilen Sie die Differenz durch die Summe der Kerzenlängen und multiplizieren Sie mit 100, um einen Prozentwert zu erhalten, der limit genannt wird.
  3. Wenn die Grenze einen festgelegten Wert überschreitet und der gleitende Durchschnitt steigt, wird eine Long-Position eröffnet; wenn die Grenze einen festgelegten Wert überschreitet und der gleitende Durchschnitt sinkt, wird eine Short-Position eröffnet.
  4. Nach Eröffnung einer Position schließt man einen Teil der Position, wenn der Preis das Take-Profit-Niveau erreicht, und bewegt die verbleibende Position auf das Stop-Loss-Niveau.
  5. Wenn der gleitende Durchschnitt nach unten geht, schließt man die Longposition; wenn der gleitende Durchschnitt nach oben geht, schließt man die Shortposition.

Strategische Vorteile

  1. Die Strategie verwendet eine einzigartige Methode, um Trendbildungen zu erkennen. Durch die Berechnung des Grenzwertes zur Bestimmung der Stärke des Trends hilft sie, Positionen zu Beginn des Trends zu eröffnen.
  2. Nach Eröffnung einer Position kontrolliert die Strategie das Risiko, indem sie einen Teil der Position schließt und die Stop-Loss-Level der restlichen Position verschiebt.
  3. Die Strategie verwendet die Aufwärts- und Abwärtskreuze des gleitenden Durchschnitts, um das Ende des Trends zu bestimmen, was dazu beiträgt, Positionen rechtzeitig zu schließen.

Strategische Risiken

  1. Die Strategie eröffnet Positionen zu Beginn des Trends, und wenn der Trend nicht aufrechterhalten werden kann, kann dies zu Verlusten führen.
  2. Die Strategie verwendet feste Gewinn- und Stop-Loss-Niveaus, die in einigen Fällen möglicherweise nicht flexibel genug sind.
  3. Die Strategie verwendet nur den gleitenden Durchschnitt, um Trends zu bestimmen, die einige Trendchancen verpassen können.

Strategieoptimierung

  1. Es sollte in Betracht gezogen werden, andere Indikatoren wie MACD und RSI zu verwenden, um Trends zu bestimmen und die Genauigkeit der Eröffnungspositionen zu verbessern.
  2. Dynamische Anpassung der Gewinn- und Stop-Loss-Niveaus anhand der Marktvolatilität zur besseren Risikokontrolle.
  3. Erwägen Sie, Positionen erst nach Bestätigung des Trends zu eröffnen, um Risiken zu Beginn des Trends zu reduzieren.

Zusammenfassung

Die Trend-Catcher-Strategie verwendet eine einzigartige Methode, um Trendformationen zu erkennen und Positionen in Richtung des Trends zu eröffnen. Sie berechnet den Grenzwert, um die Stärke des Trends zu bestimmen, und verwendet die Kreuzung des gleitenden Durchschnitts, um das Ende des Trends zu bestimmen. Die Strategie steuert das Risiko, indem sie einen Teil der Position schließt und den Stop-Loss-Level nach der Eröffnung einer Position bewegt. Die Strategie kann jedoch bei der Eröffnung von Positionen zu Beginn des Trends bestimmten Risiken ausgesetzt sein, wobei die Verwendung von festen Take-Profit- und Stop-Loss-Leveln möglicherweise nicht flexibel genug ist und nur der Verwendung des gleitenden Durchschnitts zur Bestimmung von Trends einige Chancen verpassen kann. In Zukunft können wir in Betracht ziehen, andere Indikatoren einzuführen, die Take-Profit- und Stop-Loss-Level dynamisch anzupassen und nur nach Bestätigung des Trends Positionen zu eröffnen, um die Strategie


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro

//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
    sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)

if (s)
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)

if (cl)
    strategy.close("My Long Entry Id")
if (cs)
    strategy.close("My Short Entry Id")

l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))

spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)

ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)

stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))

Verwandt

Mehr