Strategi ini menghasilkan sinyal beli dengan crossover antara EMA cepat untuk membeli rata-rata dan SMA lambat untuk menjual rata-rata, dan menggunakan stop loss pelacakan dinamis ATR untuk mengendalikan risiko, yang bertujuan untuk melampaui strategi beli dan pegang dengan sedikit perdagangan.
Perhitungan EMA cepat untuk membeli rata-rata dan SMA lambat untuk membeli rata-rata, menghasilkan sinyal beli ketika garis cepat melewati garis lambat dan mencapai intensitas pembelian tertentu.
Perhitungan EMA cepat menjual rata-rata dan SMA lambat menjual rata-rata, menghasilkan sinyal jual ketika garis cepat melewati garis lambat.
Menggunakan N-avg harian dengan ATR sebagai indikator stop loss untuk mengontrol risiko.
Memulai strategi, melakukan pembelian dan penjualan selama pengamatan ulang.
Setiap saham mengoptimalkan kombinasi parameter yang berbeda, mencari parameter terbaik.
Strategi ini menggabungkan keuntungan dari indikator moving average untuk menilai tren dan sinyal silang dan stop loss pelacakan dinamis ATR, dengan mengoptimalkan parameter untuk menyesuaikan karakteristik setiap varietas, dengan tujuan untuk mendapatkan keuntungan tambahan dari pembelian dan kepemilikan melalui sedikit perdagangan presisi.
EMA cepat dan SMA lambat bersilang menghasilkan sinyal perdagangan yang dapat mengidentifikasi tren.
Stop loss ATR menyesuaikan posisi stop loss sesuai dengan fluktuasi pasar, untuk mengontrol risiko secara efektif.
Optimalisasi parameter untuk setiap saham dapat meningkatkan tingkat keuntungan.
Logika dan aturan transaksi yang sederhana, mudah diterapkan dan diverifikasi.
Fungsi pengembalian lengkap untuk memverifikasi keberhasilan strategi.
Mencari stabilitas di luar keuntungan tambahan yang dimiliki.
Parameter yang dioptimalkan tidak selalu berlaku untuk masa depan dan mungkin perlu dioptimalkan kembali secara berkala.
EMA dan SMA yang bersilang dapat menghasilkan sinyal yang salah atau sinyal yang tertinggal.
ATR stop loss mungkin terlalu radikal, dan dapat dengan tepat memperluas area stop loss.
Terlalu sering bertransaksi, dan mungkin kehilangan kesempatan untuk bertransaksi.
Konsekuensi dari biaya transaksi harus dipertimbangkan.
Terus menguji kombinasi parameter yang berbeda untuk mencari parameter yang optimal.
Cobalah untuk memasukkan indikator lain untuk filter sinyal.
Mengoptimalkan parameter periodik ATR, menyeimbangkan sensitivitas stop loss.
Evaluasi efek dari pelepasan yang tepat dari ambang kerugian.
Pertimbangkan metode yang menggabungkan pembelajaran mesin dan lain-lain untuk mencari parameter optimasi otomatis.
Studi tentang efek peningkatan frekuensi pembukaan gudang.
Ini bergerak rata-rata melacak strategi stop loss, menggabungkan keuntungan dari cross-line yang menghasilkan sinyal dan ATR stop loss pengendalian risiko, dengan parameter yang dioptimalkan untuk menyesuaikan dengan karakteristik masing-masing saham, adalah sederhana dan praktis overbought strategi ide. Meskipun parameter yang dioptimalkan tidak menjamin efek masa depan, tetapi strategi ini secara keseluruhan perdagangan logika jelas, operasional yang kuat, layak untuk perbaikan lebih lanjut dan pengujian, memiliki inspirasi yang baik.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//created by XPloRR 04-03-2018
strategy("XPloRR MA-Trailing-Stop Strategy",overlay=true, initial_capital=1000,default_qty_type=strategy.percent_of_equity,default_qty_value=100)
testStartYear = input(2005, "Start Year")
testStartMonth = input(1, "Start Month")
testStartDay = input(1, "Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2050, "Stop Year")
testStopMonth = input(12, "Stop Month")
testStopDay = input(31, "Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Background", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
ema1Period = input(12, "Fast EMA Buy")
sma1Period = input(54, "Slow SMA Buy")
strength1 = input(52, "Minimum Buy Strength")
ema2Period = input(18, "Fast EMA Sell")
sma2Period = input(55, "Slow SMA Sell")
strength2 = input(100, "Minimum Sell Strength")
delta = input(8, "Trailing Stop (#ATR)")
testPeriod() => true
ema1val=ema(close,ema1Period)
sma1val=sma(close,sma1Period)
ema1strength=10000*(ema1val-ema1val[1])/ema1val[1]
ema2val=ema(close,ema2Period)
sma2val=sma(close,sma2Period)
ema2strength=10000*(ema2val-ema2val[1])/ema2val[1]
plot(ema1val,color=blue,linewidth=1)
plot(sma1val,color=orange,linewidth=1)
plot(ema2val,color=navy,linewidth=1)
plot(sma2val,color=red,linewidth=1)
long=crossover(ema1val,sma1val) and (ema1strength > strength1)
short=crossunder(ema2val,sma2val) and (ema2strength < -strength2)
stopval=ema(close,6)
atr=sma((high-low),15)
inlong=0
buy=0
stop=0
if testPeriod()
if (inlong[1])
inlong:=inlong[1]
buy:=close
stop:=iff((stopval>(stop[1]+delta*atr)),stopval-delta*atr,stop[1])
if (long) and (not inlong[1])
strategy.entry("buy",strategy.long)
inlong:=close
buy:=close
stop:=stopval-delta*atr
plot(buy,color=iff(close<inlong,red,lime),style=columns,transp=90,linewidth=1)
plot(stop,color=iff((short or (stopval<stop)) and (close<inlong),red,lime),style=columns,transp=60,linewidth=1)
if testPeriod()
if (short or (stopval<stop)) and (inlong[1])
strategy.close("buy")
inlong:=0
stop:=0
buy:=0