Strategi ini menggabungkan penunjuk purata bergerak dalam pelbagai jangka masa untuk menentukan konsistensi trend dan mengambil tindakan scalping pada siang hari untuk mengikuti trend dan membuat keuntungan.
Strategi ini menggunakan purata bergerak 8 tempoh dan 20 tempoh pada jangka masa 5 minit, 15 minit, 30 minit dan 60 minit untuk menjana isyarat perdagangan. Isyarat beli dihasilkan apabila MA 8 tempoh melintasi di atas MA 20 tempoh. Isyarat jual dihasilkan apabila MA 8 tempoh melintasi di bawah MA 20 tempoh.
Strategi ini memerlukan isyarat yang konsisten di empat bingkai masa sebelum mengeluarkan pesanan perdagangan.
Setelah memasuki kedudukan, strategi menetapkan sasaran keuntungan tetap untuk mengambil keuntungan intraday.
Khususnya, strategi ini menggunakan fungsi keselamatan untuk mendapatkan nilai MA dari bingkai masa yang berbeza. Ia mengira perbezaan antara MA 8-periode dan 20-periode pada carta 5-minit, 15-minit, 30-minit dan 60-minit.
Sinyal beli dan jual ditentukan oleh sama ada garis perbezaan melintasi di atas / di bawah garis sifar. Pelbagai bendera islong dan isshort digunakan untuk merakam isyarat pada setiap jangka masa. Perintah diletakkan apabila syarat islong dan isshort dipenuhi.
Selepas memasuki perdagangan, strategi menggunakanstrategy.exit() untuk menetapkan sasaran keuntungan tetap untuk scalping.
Kelebihan strategi ini termasuk:
Reka bentuk pelbagai jangka masa menapis bunyi bising dan mengurangkan kekerapan perdagangan.
Scalping intraday dengan optimum keuntungan mengumpul keuntungan kecil secara konsisten.
Struktur kod yang jelas, mudah difahami dan dioptimumkan.
Keadaan yang munasabah membantu mengawal risiko.
Risiko berpotensi strategi ini:
Pelbagai jangka masa mungkin terlepas perubahan trend yang halus.
Perdagangan scalping yang kerap meningkatkan kos.
Sasaran keuntungan tetap tidak fleksibel.
Bergantung pada petunjuk, risiko ditipu.
Kemungkinan pengoptimuman:
Tambah lebih banyak jangka masa untuk isyarat yang lebih kuat.
Sasaran keuntungan dinamik berdasarkan ATR.
Penapis tambahan seperti peningkatan jumlah atau sejarah ekstrem.
Mengoptimumkan tempoh MA untuk parameter terbaik.
Tambah pembelajaran mesin untuk menilai kebolehpercayaan isyarat.
Secara keseluruhan, ini adalah strategi pengesanan trend pelbagai jangka masa yang biasa menggunakan scalping intraday. Logiknya jelas dan kodnya berstruktur dengan baik. Dengan pengoptimuman yang betul, ia boleh menjadi templat strategi scalping yang sangat praktikal.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="PeBAS $JPY Scalper 15m ",overlay=true) zeigeallebars= input(false, title="Zeige alle (Show all) Candles/Bars?") profitwert=input(52, title="Profit") myatr= input(title="ATR", type=float, defval=0.00002, minval=0.00001,step=0.00001) //Plot EMA-Differenz Aktueller Timeframe dif=(ema(close,8)+ema(close,20))/2 mcolor=ema(close,8) > ema(close,20) ? green : red bs = ema(close,8) > ema(close,20) ? true : false ThisATR=atr(16) //trans = zeigeallebars == true ? 00 : 100 //plot(dif,"dif",color=mcolor,linewidth=6,transp=trans) //1M EMA htf_ma1Mema8 = ema(close, 5) htf_ma1Mema20 = ema(close, 20) ema81m=request.security(syminfo.tickerid, "1", htf_ma1Mema8) ema201m=request.security(syminfo.tickerid, "1", htf_ma1Mema20) dif1M = (ema81m + ema201m) / 2 Close1M = request.security(syminfo.tickerid, "1", close) color1=ema81m > ema201m ? green : red //plot(dif1M,"dif",color1,linewidth=6) //plotshape(1, style=shape.cross, color=color1,location=location.top) ls1 = ema81m > ema201m ? 1 : 0 //5M EMA htf_ma5Mema8 = ema(close, 8) htf_ma5Mema20 = ema(close, 20) ema85m=request.security(syminfo.tickerid, "5", htf_ma5Mema8) ema205m=request.security(syminfo.tickerid, "5", htf_ma5Mema20) dif5M = (ema85m + ema205m) / 2 color5=ema85m > ema205m ? green : red plot(dif5M,"dif",color5,linewidth=5) ls5 = ema85m > ema205m ? 1 : 0 alert1= ema85m > ema205m and ema85m[1] < ema205m[1] ? 1 : 0 islong5 = ema85m > ema205m ? 1 : 0 isshort5 = ema85m < ema205m ? 1 : 0 //15M EMA htf_ma15Mema8 = ema(close, 8) htf_ma15Mema20 = ema(close, 20) ema815m=request.security(syminfo.tickerid, "15", htf_ma15Mema8) ema2015m=request.security(syminfo.tickerid, "15", htf_ma15Mema20) dif15M = (ema815m + ema2015m) / 2 color15=ema815m > ema2015m ? green : red plot(dif15M,"dif",color15,linewidth=3) ls15= ema815m > ema2015m ? 1 : 0 alert2= ema815m > ema2015m and ema815m[1] < ema2015m[1] ? 1 : 0 islong15 = ema815m > ema2015m ? 1 : 0 isshort15 = ema815m < ema2015m ? 1 : 0 //30M EMA htf_ma30Mema8 = ema(close, 8) htf_ma30Mema20 = ema(close, 20) ema830m=request.security(syminfo.tickerid, "30", htf_ma30Mema8) ema2030m=request.security(syminfo.tickerid, "30", htf_ma30Mema20) dif30M = (ema830m + ema2030m) / 2 color30=ema830m > ema2030m ? green : red ls30= ema830m > ema2030m ?1 : 0 islong30 = ema830m > ema2030m ? 1 : 0 isshort30 = ema830m < ema2030m ? 1 : 0 //60M EMA htf_ma60Mema8 = ema(close, 8) htf_ma60Mema20 = ema(close, 20) ema860m=request.security(syminfo.tickerid, "60", htf_ma60Mema8) ema2060m=request.security(syminfo.tickerid, "60", htf_ma60Mema20) dif60M = (ema860m + ema2060m) / 2 color60=ema860m > ema2060m ? green : red ls60= ema860m > ema2060m ?1 : 0 islong60 = ema860m > ema2060m ? 1 : 0 isshort60 = ema860m < ema2060m ? 1 : 0 plot(dif60M,"dif",color60,linewidth=3,transp=70) islong = islong5 ==1 and islong15 ==1 and islong60 ==1 and year > 2017 ? 1 : 0 isshort = isshort5 ==1 and isshort15 ==1 and isshort60 ==1 and year > 2017 ? 1 : 0 condition2l= 0 condition2s = 0 c= alert1 == alert2 and alert1[1] != alert2[1] ? 1 : 0 alertcondition(c, title='Da tat sich was ', message='Da tat sich was!') strategy.entry("enter long", strategy.long,1,when = islong ==1 and islong[1] == 0 ) strategy.entry("enter short", strategy.short,1,when = isshort == 1 and isshort [1] == 0) strategy.exit("close",profit=profitwert) strategy.exit("close",profit=profitwert)