Strategi ini dinamakan
Strategi ini menggunakan tiga purata bergerak berikut:
Apabila garisan pantas melintasi di atas garisan sederhana dan garisan sederhana melintasi di atas garisan perlahan, ia menandakan aliran menaik. Apabila garisan pantas melintasi di bawah garisan sederhana dan garisan sederhana melintasi di bawah garisan perlahan, ia menandakan aliran menurun.
Untuk menapis beberapa perdagangan bunyi bising, beberapa syarat tambahan ditetapkan:
Apabila kriteria ini dipenuhi, isyarat panjang atau pendek akan dicetuskan. Ia hanya memegang satu kedudukan setiap kali dan tidak akan masuk lagi sehingga kedudukan sedia ada ditutup atau dihentikan.
Sasaran dan berhenti diletakkan berdasarkan kelipatan tertentu nilai ATR.
Kelebihan strategi ini termasuk:
Risiko strategi ini juga termasuk:
Untuk mengurangkan risiko, menyesuaikan parameter purata bergerak dengan betul, mengoptimumkan pengganda ATR, menetapkan tempoh pemegang maksimum untuk mengelakkan kerugian perdagangan tunggal yang berlebihan.
Kemungkinan pengoptimuman 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)