Strategi ini adalah berdasarkan kepada penunjuk Aroon untuk mengenal pasti dan mengesan trend dalam kedua-dua arah.
Gunakan penunjuk Aroon untuk menentukan arah trend harga. Di atas garis 0 menunjukkan trend menaik, manakala di bawah garis 0 menunjukkan trend menurun.
Apabila penunjuk Aroon melintasi di atas garis 0 dari bawah, isyarat beli diaktifkan.
Jika sudah mempunyai kedudukan, dan penutupan adalah lebih rendah daripada harga beli, manakala RSI adalah di bawah 30, ia dianggap oversold, pesanan beli tambahan akan diletakkan.
Apabila penunjuk Aroon melintasi di bawah garis 0 dari atas, isyarat keluar penuh dicetuskan.
Stop loss 5% ditetapkan. Jika kerugian melebihi titik ini, keluar stop loss dicetuskan.
Menggunakan penunjuk Aroon untuk menentukan arah trend dapat menangkap titik putaran pasaran dengan berkesan.
Penunjuk RSI membantu mengenal pasti kawasan overbought dan oversold, mengelakkan mengejar tinggi baru dan menjual rendah semasa perubahan pasaran.
Perdagangan dalam kedua-dua arah membolehkan keuntungan di kedua-dua pasaran menaik dan menurun.
Menetapkan stop loss membantu mengawal risiko.
Penunjuk Aroon mempunyai kesan kelewatan, yang mungkin terlepas pembalikan jangka pendek dan tiba-tiba.
Ia tidak dapat mengendalikan pasaran yang terikat julat dengan berkesan, yang membawa kepada perdagangan yang tidak perlu.
Perdagangan dalam kedua-dua arah meningkatkan kekerapan perdagangan dan kos komisen.
Parameter memerlukan penyesuaian yang betul untuk menyesuaikan diri dengan jangka masa dan produk yang berbeza.
Gabungkan dengan penunjuk lain untuk menapis isyarat dan mengurangkan kesilapan yang disebabkan oleh kelewatan.
Meningkatkan penyelidikan kuantitatif untuk mengoptimumkan parameter untuk produk yang berbeza.
Tambah strategi mengambil keuntungan untuk meningkatkan faktor keuntungan.
Pertimbangkan hanya perdagangan apabila trend jelas untuk mengurangkan perdagangan yang tidak berkesan.
Strategi ini mengintegrasikan penunjuk Aroon dan RSI untuk membentuk sistem perdagangan trend dua arah yang agak lengkap. Tetapi pengoptimuman lebih lanjut parameter dan menggabungkan dengan penapis lain masih diperlukan untuk mengurangkan kesilapan. Dengan penyesuaian parameter yang betul dan kawalan risiko, strategi ini berpotensi untuk mencapai pulangan yang berlebihan yang agak stabil.
/*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