Bidirektionale Trendfolgestrategie


Erstellungsdatum: 2023-09-17 18:20:27 zuletzt geändert: 2023-09-17 18:20:27
Kopie: 2 Klicks: 695
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie basiert auf der Identifizierung und Verfolgung von bidirektionalen Trends durch den Aroon-Indikator. Der Aroon-Indikator ist in der Lage, die Richtung der Markttrends zu bestimmen. In Kombination mit dem RSI-Indikator wird die Überkauf-Überverkaufszone beurteilt, was eine relativ vollständige Verfolgungsstrategie darstellt.

Strategieprinzip

  1. Der Aroon-Indikator wird verwendet, um die Richtung der Preisentwicklung zu bestimmen. Ein Indikator über der 0-Linie ist ein Aufwärtstrend, ein Indikator unter der 0-Linie ist ein Abwärtstrend.

  2. Wenn der Aroon-Indikator von unten die Null-Linie durchbricht, wird ein Kauf vorgenommen.

  3. Wenn ein Lager gebaut wurde und der Schlusskurs unter dem Kaufpreis liegt und der RSI unter 30 liegt, wird als Überverkauf angesehen und ein Lager erhöht.

  4. Wenn der Aroon-Indikator von oben unter die Nulllinie fällt, wird alles verkauft.

  5. Setzen Sie einen Stop-Loss-Punkt von 5% und verkaufen Sie Stop-Loss, wenn der Verlust über diesem Punkt liegt.

Analyse der Stärken

  1. Der Aroon-Indikator kann Trends erkennen, um die Wendepunkte des Marktes zu erfassen.

  2. Der RSI hilft bei der Bestimmung von Überkauf- und Überverkaufszonen und verhindert, dass der Markt an den Wendepunkten die Höhen und Tiefen verfolgt.

  3. Es ist ein zweiseitiger Handel, der sowohl in steigenden als auch in fallenden Marktumgebungen profitiert.

  4. Die Einstellung eines Stop-Loss-Punktes hilft bei der Risikokontrolle.

Risikoanalyse

  1. Die Aroon-Indikatoren sind nachlässig und können kurzfristige und abrupte Umkehrungen verpassen.

  2. Es ist nicht möglich, den Markt effizient zu ordnen, was zu unnötigen Transaktionen führt.

  3. Zwei-Wege-Transaktionen erhöhen die Transaktionsfrequenz und die Gebühren.

  4. Die Parameter müssen entsprechend angepasst werden, um sie an die verschiedenen Perioden und Sorten anzupassen.

Optimierungsrichtung

  1. In Kombination mit anderen Indikatoren filtert das Signal, um die Wahrscheinlichkeit von fehlerhaften Transaktionen aufgrund von Verzögerungen zu verringern.

  2. Erweiterte quantitative Untersuchungen, optimierte Parameterkombinationen, um die verschiedenen Sorten zu kombinieren.

  3. Das ist eine gute Idee, um das Problem zu lösen.

  4. Erwägen Sie, nur dann zu handeln, wenn der Trend eindeutig ist, um ungültige Geschäfte zu reduzieren.

Zusammenfassen

Die Strategie integriert die beiden Indikatoren Aroon und RSI zu einer relativ vollständigen binären Trend-Trading-Strategie. Es ist jedoch erforderlich, die Parameter weiter zu optimieren und in Kombination mit anderen Filterindikatoren die Wahrscheinlichkeit eines Fehlhandels zu reduzieren. Nach der Optimierung der Parameter und der Risikokontrolle wird die Strategie einen relativ stabilen Überschuss erzielen.

Strategiequellcode
/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
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="Aroon Oscillator Strategy", overlay=false, pyramiding=2,    initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 

//variables BEGIN
aroonLength=input(169,title="Aroon Length")   //square root of 13
rsiLength=input(13, title="RSI Length")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
//variables  END

//RSI 
rsi13=rsi(close,rsiLength)




// Drawings

//Aroon oscillator

arronUpper = 100 * (highestbars(high, aroonLength+1) + aroonLength)/aroonLength
aroonLower = 100 * (lowestbars(low, aroonLength+1) + aroonLength)/aroonLength

aroonOsc  = arronUpper - aroonLower

aroonMidpoint = 0
oscPlot = plot(aroonOsc, color=color.green)
midLine= plot(aroonMidpoint, color=color.green)
topLine = plot(90,style=plot.style_circles, color=color.green)
bottomLine = plot(-90,style=plot.style_circles, color=color.red)

fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50)
fill(topLine,bottomLine, color=color.blue)


// RSI 
//plot(rsi13, title="RSI", linewidth=2, color=color.purple)
//hline(50, title="Middle Line", linestyle=hline.style_dotted)
//obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted)
//osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
//fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65)  // longTermRSI >=50


//Entry--

strategy.entry(id="Long Entry", comment="LE",  long=true,  when= crossover(aroonOsc,0)   )     //crossover(close,ema34)  //and close>ema34  //crossover(rsi5Val,rsiBuyLine)

//Add
if(strategy.position_size>=1 and close < strategy.position_avg_price and crossover(rsi13,30))
    strategy.order(id="Long Entry", comment="Add", long=true )     //crossover(close,ema34)  //and close>ema34  //crossover(rsi5Val,rsiBuyLine)  --


stopLossVal= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00 


//close partial
strategy.close(id="Long Entry", comment="Partial X",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 90) )   //close<ema55 and rsi5Val<20 //ema34<ema55 


//close All
strategy.close(id="Long Entry", comment="Exit All",  when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) )   //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89

//close All on stop loss
strategy.close(id="Long Entry", comment="Stoploss X",  when=abs(strategy.position_size)>=1 and close < stopLossVal )   //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89