Strategi ini disebut
Strategi ini menggunakan tiga rata-rata bergerak berikut:
Ketika garis cepat melintasi di atas garis menengah dan garis menengah melintasi di atas garis lambat, itu menandakan tren naik. Ketika garis cepat melintasi di bawah garis menengah dan garis menengah melintasi di bawah garis lambat, itu menandakan tren menurun.
Untuk menyaring beberapa industri kebisingan, beberapa kondisi tambahan ditetapkan:
Ketika kriteria ini terpenuhi, sinyal panjang atau pendek akan dipicu. hanya memegang satu posisi setiap saat dan tidak akan masuk lagi sampai posisi yang ada ditutup atau dihentikan.
Target dan berhenti ditempatkan berdasarkan beberapa kali lipat dari nilai ATR.
Keuntungan dari strategi ini meliputi:
Risiko dari strategi ini juga meliputi:
Untuk mengurangi risiko, menyesuaikan parameter rata-rata bergerak dengan benar, mengoptimalkan pengganda ATR, menetapkan periode pemegang maksimum untuk menghindari kerugian perdagangan tunggal yang berlebihan.
Optimasi yang mungkin untuk strategi ini:
Strategi
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m 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/ // © greenmask9 //@version=4 strategy("Dazzling Bolts", overlay=true) //max_bars_back=3000 // 13 SMMA len = input(10, minval=1, title="SMMA Period") src = input(close, title="Source") smma = 0.0 smma := na(smma[1]) ? sma(src, len) : (smma[1] * (len - 1) + src) / len // 55 EMA emalength = input(55, title="EMA Period") ema = ema(close, emalength) // 100 SMA smalength = input(110, title="SMA Period") sma = sma(close, smalength) emaforce = input(title="Force trend with medium EMA", type=input.bool, defval=true) offsetemavalue = input(defval = 6) bullbounce = smma>ema and ema>sma and low[5]>ema and low[2]<ema and close[1]>ema and (ema[offsetemavalue]>sma or (not emaforce)) bearbounce = smma<ema and ema<sma and high[5]<ema and high[2]>ema and close[1]<ema and (ema[offsetemavalue]<sma or (not emaforce)) plotshape(bullbounce, title= "Purple", location=location.belowbar, color=#ff33cc, transp=0, style=shape.triangleup, size=size.tiny, text="Bolts") plotshape(bearbounce, title= "Purple", location=location.abovebar, color=#ff33cc, transp=0, style=shape.triangledown, size=size.tiny, text="Bolts") strategy.initial_capital = 50000 ordersize=floor(strategy.initial_capital/close) longs = input(title="Test longs", type=input.bool, defval=true) shorts = input(title="Test shorts", type=input.bool, defval=true) atrlength = input(title="ATR length", defval=12) atrm = input(title="ATR muliplier",type=input.float, defval=2) atr = atr(atrlength) target = close + atr*atrm antitarget = close - (atr*atrm) //limits and stop do not move, no need to count bars from since bullbuy = bullbounce and longs and strategy.opentrades==0 bb = barssince(bullbuy) bearsell = bearbounce and shorts and strategy.opentrades==0 bs = barssince(bearsell) if (bullbuy) strategy.entry("Boltsup", strategy.long, ordersize) strategy.exit ("Bolts.close", from_entry="Boltsup", limit=target, stop=antitarget) if (crossover(smma, sma)) strategy.close("Boltsup", qty_percent = 100, comment = "Bolts.crossover") if (bearsell) strategy.entry("Boltsdown", strategy.short, ordersize) strategy.exit("Bolts.close", from_entry="Boltsdown", limit=antitarget, stop=target) if (crossunder(smma, sma)) strategy.close("Boltsdown", qty_percent = 100, comment = "Bolts.crossover") // if (bb<5) // bulltarget = line.new(bar_index[bb], target[bb], bar_index[0], target[bb], color=color.blue, width=2) // bullclose = line.new(bar_index[bb], close[bb], bar_index[0], close[bb], color=color.blue, width=2) // bullstop = line.new(bar_index[bb], antitarget[bb], bar_index[0], antitarget[bb], color=color.blue, width=2) // if (bs<5) // bulltarget = line.new(bar_index[bs], antitarget[bs], bar_index[0], antitarget[bs], color=color.purple, width=2) // bullclose = line.new(bar_index[bs], close[bs], bar_index[0], close[bs], color=color.purple, width=2) // bullstop = line.new(bar_index[bs], target[bs], bar_index[0], target[bs], color=color.purple, width=2)