Ini adalah strategi perdagangan berdasarkan dua rata-rata bergerak. Ia akan menilai trend pasaran dan menghasilkan isyarat perdagangan berdasarkan hubungan silang antara rata-rata bergerak cepat dan rata-rata bergerak perlahan. Ia menghasilkan isyarat beli apabila ia melintasi rata-rata bergerak perlahan di atas rata-rata bergerak cepat; ia menghasilkan isyarat jual apabila ia melintasi rata-rata bergerak perlahan di bawah rata-rata bergerak cepat.
Strategi ini menggunakan ciri trend pengesanan rata-rata bergerak. Rata-rata bergerak adalah harga purata yang dikira berdasarkan harga penutupan sejarah dalam satu tempoh tertentu, yang dapat memanaskan turun naik kecil dalam satu hari, mencerminkan trend harga dalam tempoh masa yang lebih lama. Rata-rata cepat menggunakan tempoh yang lebih pendek, dapat bertindak balas dengan lebih cepat terhadap perubahan harga; Rata-rata perlahan menggunakan tempoh yang lebih lama, mewakili trend jangka panjang.
Strategi ini membentuk isyarat perdagangan dengan menetapkan garis rata-rata bergerak dengan panjang kitaran yang berbeza, menggunakan persilangan antara garis rata-rata. Apabila garis rata-rata kitaran pendek melintasi garis rata-rata kitaran panjang, ia menunjukkan pergerakan jangka pendek yang baik, menghasilkan isyarat membeli; Apabila garis rata-rata kitaran pendek melintasi garis rata-rata kitaran panjang, ia menunjukkan pergerakan jangka pendek yang lemah, menghasilkan isyarat menjual.
Strategi persilangan binari menggunakan ciri trend pengesanan garis rata-rata bergerak untuk menentukan arah pasaran dan menghasilkan isyarat perdagangan melalui persilangan garis rata-rata yang cepat dan perlahan. Strategi ini mudah dan mudah, tetapi ada beberapa masalah. Dengan cara menyesuaikan parameter, bekerjasama dengan petunjuk lain, dan pengoptimuman algoritma, kekurangan dapat diatasi, menjadikannya sistem perdagangan yang stabil dan boleh dipercayai.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © KivancOzbilgic
//@version=4
strategy("pomila", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
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 = 9999, title = "To Year", minval = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)