
Strategi ini, yang diberi nama Rising Lightning Ridge, adalah strategi mengikuti tren yang didasarkan pada tiga rata-rata bergerak. Strategi ini menilai tren harga dengan menghitung persilangan garis cepat, garis tengah, dan garis lambat, dan menetapkan harga target dan harga stop loss dengan nilai ATR.
Strategi ini menggunakan tiga rata-rata bergerak berikut:
Ketika garis cepat melewati garis tengah, garis tengah melewati garis lambat, dinilai sebagai melihat tren; ketika garis cepat melewati garis tengah, garis tengah melewati garis lambat, dinilai sebagai tren kosong.
Untuk menyaring sebagian dari perdagangan yang berisik, strategi ini juga menyertakan beberapa kondisi tambahan:
Bila kondisi tersebut terpenuhi, maka akan dikeluarkan sinyal untuk melakukan over atau short. Setiap kali hanya memegang satu posisi, maka posisi bisa dibuka lagi setelah posisi kosong atau stop loss.
Target harga dan harga stop loss diatur berdasarkan nilai ATR.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki risiko sebagai berikut:
Untuk mengendalikan risiko, disarankan untuk menyesuaikan parameter moving average, mengoptimalkan ATR, dan mengatur waktu maksimum untuk menghindari kerugian tunggal yang terlalu besar.
Strategi ini dapat dioptimalkan dengan:
Strategi ini secara keseluruhan adalah strategi mengikuti tren yang stabil. Ini terutama bergantung pada arah tren yang ditentukan oleh rata-rata bergerak, dan ada beberapa indikator teknis yang bekerja sama untuk membantu, yang dapat menyaring sebagian dari kebisingan. Meskipun masih ada ruang untuk pengoptimalan lebih lanjut, risiko keseluruhan dapat dikontrol, cocok untuk mengikuti tren garis tengah.
/*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)