Strategi ini menghasilkan isyarat beli melalui persilangan EMA cepat untuk membeli rata-rata dan SMA perlahan untuk menjual rata-rata, dan menggunakan ATR untuk mengawal risiko, bertujuan untuk melampaui strategi beli dan pegang dengan jumlah perdagangan yang sedikit.
Hitung EMA cepat untuk membeli rata-rata dan EMA lambat untuk membeli rata-rata, menghasilkan isyarat beli apabila garis cepat melintasi garis perlahan dan mencapai kekuatan pembelian tertentu.
Hitung EMA pantas untuk menjual garis rata-rata dan SMA perlahan untuk menjual garis rata-rata, menghasilkan isyarat jual apabila garis pantas melintasi garis perlahan.
N nilai purata harian yang digunakan dalam indikator ATR dikalikan dengan kelipatan sebagai stop loss yang dinamik untuk mengawal risiko.
Memulakan strategi, membeli dan menjual semasa pengkajian semula.
Setiap saham mengoptimumkan kombinasi parameter yang berbeza untuk mencari parameter terbaik.
Strategi ini menggabungkan kelebihan trend penghakiman indikator purata bergerak dan stop loss pemantauan dinamik ATR dan isyarat silang, dengan parameter yang dioptimumkan untuk menyesuaikan diri dengan ciri-ciri setiap jenis, dengan tujuan untuk mendapatkan keuntungan tambahan yang melebihi pembelian dan pegangan dengan sedikit perdagangan tepat.
EMA pantas dan SMA perlahan yang bersilang menghasilkan isyarat perdagangan yang dapat mengenal pasti trend.
Hentikan ATR menyesuaikan kedudukan hentikan mengikut turun naik pasaran, mengawal risiko dengan berkesan.
Dengan optimasi parameter untuk setiap saham, anda boleh meningkatkan kadar keuntungan.
Logik dan peraturan perdagangan yang mudah, mudah dilaksanakan dan disahkan.
Fungsi pengesanan lengkap untuk mengesahkan keberkesanan strategi.
Mencari kestabilan melebihi keuntungan tambahan yang dimiliki.
Parameter yang dioptimumkan tidak semestinya sesuai untuk masa depan dan mungkin perlu dioptimumkan semula secara berkala.
EMA dan SMA yang bersilang boleh menghasilkan isyarat yang salah atau isyarat yang terlewat.
Penangguhan ATR mungkin terlalu radikal, dan ia boleh dilonggarkan dengan baik.
Terlalu jarang berdagang, anda mungkin terlepas peluang yang lebih baik.
Kesan kos transaksi perlu dipertimbangkan.
Teruskan menguji kombinasi parameter yang berbeza untuk mencari parameter yang optimum.
Cuba masukkan penapis isyarat untuk penunjuk lain.
Optimumkan parameter kitaran ATR, keseimbangan sensitiviti stop loss.
Menilai kesan pelepasan markah kerugian yang sesuai.
Pertimbangkan kaedah yang menggabungkan pembelajaran mesin untuk mencari parameter keunggulan secara automatik.
Kajian mengenai kesan peningkatan frekuensi pembukaan.
Strategi pergerakan purata yang mengesan hentian, menggabungkan kelebihan sinyal penjanaan silang linear dan risiko kawalan hentian ATR, menyesuaikan diri dengan ciri-ciri setiap saham melalui pengoptimuman parameter, adalah strategi strategi overbought yang mudah dan praktikal. Walaupun parameter yang dioptimumkan tidak menjamin keberkesanan masa depan, strategi ini secara keseluruhan logik perdagangan jelas, operasi yang boleh dilaksanakan, layak untuk diperbaiki dan diuji lebih lanjut, dan mempunyai 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