Strategi Pengesanan Trend Berganda

Penulis:ChaoZhang, Tarikh: 2023-09-17 18:20:27
Tag:

Ringkasan

Strategi ini adalah berdasarkan kepada penunjuk Aroon untuk mengenal pasti dan mengesan trend dalam kedua-dua arah.

Prinsip Strategi

  1. Gunakan penunjuk Aroon untuk menentukan arah trend harga. Di atas garis 0 menunjukkan trend menaik, manakala di bawah garis 0 menunjukkan trend menurun.

  2. Apabila penunjuk Aroon melintasi di atas garis 0 dari bawah, isyarat beli diaktifkan.

  3. 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.

  4. Apabila penunjuk Aroon melintasi di bawah garis 0 dari atas, isyarat keluar penuh dicetuskan.

  5. Stop loss 5% ditetapkan. Jika kerugian melebihi titik ini, keluar stop loss dicetuskan.

Analisis Kelebihan

  1. Menggunakan penunjuk Aroon untuk menentukan arah trend dapat menangkap titik putaran pasaran dengan berkesan.

  2. Penunjuk RSI membantu mengenal pasti kawasan overbought dan oversold, mengelakkan mengejar tinggi baru dan menjual rendah semasa perubahan pasaran.

  3. Perdagangan dalam kedua-dua arah membolehkan keuntungan di kedua-dua pasaran menaik dan menurun.

  4. Menetapkan stop loss membantu mengawal risiko.

Analisis Risiko

  1. Penunjuk Aroon mempunyai kesan kelewatan, yang mungkin terlepas pembalikan jangka pendek dan tiba-tiba.

  2. Ia tidak dapat mengendalikan pasaran yang terikat julat dengan berkesan, yang membawa kepada perdagangan yang tidak perlu.

  3. Perdagangan dalam kedua-dua arah meningkatkan kekerapan perdagangan dan kos komisen.

  4. Parameter memerlukan penyesuaian yang betul untuk menyesuaikan diri dengan jangka masa dan produk yang berbeza.

Arahan pengoptimuman

  1. Gabungkan dengan penunjuk lain untuk menapis isyarat dan mengurangkan kesilapan yang disebabkan oleh kelewatan.

  2. Meningkatkan penyelidikan kuantitatif untuk mengoptimumkan parameter untuk produk yang berbeza.

  3. Tambah strategi mengambil keuntungan untuk meningkatkan faktor keuntungan.

  4. Pertimbangkan hanya perdagangan apabila trend jelas untuk mengurangkan perdagangan yang tidak berkesan.

Ringkasan

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


Lebih lanjut