
Strategi ini adalah strategi terobosan yang menggunakan indikator ATR untuk membina isyarat perdagangan. Strategi ini menggunakan sistem garis rata untuk menghasilkan isyarat perdagangan, membina kedudukan kosong yang lebih tinggi di atas dan di bawah indikator ATR yang diperbesar dengan pembahagian emas. Ia dapat memperoleh keuntungan besar dalam trend dan memperoleh keuntungan kecil yang stabil dalam keadaan goyah.
Kod ini membina sistem perdagangan penembusan laluan Brin dengan mengambil indikator kitaran ATR harga penutupan, dan membesarkan 1.618 kali ganda sebagai tren atas, membesarkan 2.618 kali ganda sebagai tren bawah, digabungkan dengan eema garis rata. Apabila harga menembus ke atas dari tren bawah, buat lebih banyak, dan buka dari tren atas ke bawah, dan dapatkan keuntungan dari trend.
Strategi ini menggunakan penapisan linear seragam, pengesanan saluran ATR dan prinsip pemisahan emas. Ia dapat mengesan trend garis panjang dengan berkesan, dan mempunyai kestabilan yang baik. Ia boleh disesuaikan dengan aplikasi yang berbeza untuk pelbagai jenis dengan perubahan parameter.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ATR Long Only Strategy lower band buy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(52, type=input.integer, minval=1, title="Length")
mul = input(1.618, type=input.float, minval=0, title="Length")
mullow = input(2.618, type=input.float, minval=0, title="Length")
price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow
bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)
FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2019)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
startTimeOk() => true
if (startTimeOk())
strategy.entry("KOP", strategy.long, when=bull_cross)
strategy.close("KOP", when=bear_cross) //strategy.entry("Sell", strategy.short, when=bear_cross)
plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)