
Strategi ini adalah sistem dagangan kuantiti adaptif yang menggabungkan purata bergerak sederhana (SMA) bersalin dan indikator super trend (SuperTrend). Ia beroperasi pada jangka masa 5 minit, menggunakan persilangan dua SMA untuk menangkap perubahan trend, sambil menggunakan indikator SuperTrend untuk mengesahkan arah trend dan menghasilkan isyarat perdagangan.
SMA silang: purata bergerak mudah menggunakan dua kitaran yang berbeza ((default 20 dan 50). Apabila SMA jangka pendek memakai SMA jangka panjang, ia dianggap sebagai isyarat melakukan lebih berpotensi; Apabila SMA jangka pendek memakai SMA jangka panjang, ia dianggap sebagai isyarat melakukan lebih berpotensi.
Indikator SuperTrend: berdasarkan ATR (rangkaian purata sebenar) mengira tren naik dan tren turun. Apabila harga menembusi tren naik, trend dianggap naik; apabila harga jatuh dari tren turun, trend dianggap turun. Ini membantu menyaring isyarat lemah dan mengesahkan tren kuat.
Logik urus niaga:
Tetapan Stop: Tetapan Stop berdasarkan peratusan tetap harga masuk (default 1%) yang membantu mengunci keuntungan sebelum trend berbalik.
Visualisasi: Strategi memetakan garis SMA, petunjuk SuperTrend, dan penanda isyarat beli dan jual di carta untuk memahami keadaan pasaran dan logik perdagangan secara langsung.
Pengesanan trend digabungkan dengan momentum: Dengan menggabungkan penunjuk SMA dan SuperTrend, strategi ini dapat menangkap trend pasaran dengan berkesan dan mengikuti momentum yang kuat.
Adaptif: Indikator SuperTrend adalah berdasarkan pengiraan ATR dan dapat menyesuaikan diri secara automatik mengikut turun naik pasaran, menjadikan strategi tetap stabil dalam keadaan pasaran yang berbeza.
Mekanisme pengesahan isyarat: Syarat yang memerlukan penyambungan SMA dan petunjuk SuperTrend untuk memenuhi syarat untuk mencetuskan perdagangan, secara berkesan mengurangkan risiko penembusan palsu.
Pengurusan risiko: Peratusan yang terbina dalam membantu untuk mengunci keuntungan tepat pada masanya dan mengelakkan penarikan balik yang berlebihan.
Kesan visual yang baik: Strategi menandai pelbagai petunjuk dan isyarat dengan jelas pada carta, memudahkan peniaga memahami keadaan pasaran dan logik strategi secara langsung.
Fleksibiliti parameter: Strategi menyediakan pelbagai parameter yang boleh disesuaikan, seperti kitaran SMA, kitaran ATR, pengganda ATR, dan lain-lain, yang boleh dioptimumkan oleh pengguna mengikut pasaran yang berbeza dan keutamaan peribadi.
Tidak baik dalam pasaran goyah: Dalam pasaran yang terbalik atau goyah, strategi mungkin menghasilkan isyarat palsu yang kerap, yang menyebabkan perdagangan berlebihan dan kerugian.
Lagging: SMA dan SuperTrend adalah indikator lag, yang mungkin tidak bertindak balas dalam pasaran yang berbalik dengan cepat, menyebabkan kelewatan masuk atau keluar.
Hentian tetap mungkin terlepas trend besar: Walaupun peratusan pegangan tetap membantu mengawal risiko, ia boleh menyebabkan keluar awal dalam trend yang kuat dan kehilangan peluang keuntungan yang lebih besar.
Sensitiviti parameter: Prestasi strategi mungkin lebih sensitif kepada tetapan parameter, dan kombinasi parameter yang berbeza menunjukkan perbezaan yang besar dalam keadaan pasaran yang berbeza.
Kekurangan mekanisme penangguhan kerugian: Strategi semasa tidak mempunyai tetapan penangguhan kerugian yang jelas, dan mungkin menghadapi risiko yang lebih besar jika pasaran berubah secara tiba-tiba.
Memperkenalkan parameter penyesuaian: Anda boleh mempertimbangkan untuk menyesuaikan kitaran SMA dan parameter SuperTrend secara dinamik menggunakan mekanisme penyesuaian untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Menambah penapisan keadaan pasaran: memperkenalkan penunjuk kadar turun naik (seperti ATR) atau penunjuk kekuatan trend (seperti ADX), mengurangkan frekuensi perdagangan dalam pasaran turun naik atau lemah.
Optimumkan mekanisme hentian: anda boleh mempertimbangkan untuk menggunakan hentian pengesanan atau hentian dinamik berasaskan ATR untuk keluar dari trend yang kuat tanpa terlalu awal sambil melindungi keuntungan.
Tambah tetapan hentian: memperkenalkan hentian dinamik atau hentian nisbah risiko tetap berdasarkan ATR untuk mengawal risiko dengan lebih baik.
Analisis jangka masa berbilang: menggabungkan maklumat trend dari jangka masa yang lebih tinggi untuk meningkatkan kebolehpercayaan isyarat perdagangan.
Menambah analisis kuantiti transaksi: memperkenalkan penunjuk kuantiti transaksi, mempertimbangkan faktor kuantiti transaksi semasa mengesahkan isyarat perdagangan, meningkatkan kualiti isyarat.
Mengoptimumkan frekuensi dagangan: Anda boleh mempertimbangkan untuk menambah sekatan selang dagangan atau mekanisme pengesahan isyarat untuk mengurangkan perdagangan berlebihan.
Pemantauan dan pengoptimuman: melakukan pemantauan sejarah yang komprehensif terhadap strategi dan mengoptimumkan kombinasi parameter menggunakan algoritma genetik atau kaedah pencarian grid.
Strategi perdagangan kuantitatif yang beradaptasi dengan penyambung SMA berpasangan dengan hypertrend adalah sistem perdagangan kuantitatif yang menggabungkan trend tracking dan konsep perdagangan berpasangan. Dengan menggabungkan penyambung SMA dan indikator SuperTrend, strategi ini dapat menangkap tren pasaran dengan berkesan dan menghasilkan isyarat perdagangan. Ciri-ciri yang beradaptasi dan mekanisme pengesahan isyarat membantu meningkatkan kebolehpercayaan dan kestabilan perdagangan.
Walau bagaimanapun, strategi ini juga mempunyai beberapa risiko yang berpotensi, seperti prestasi yang kurang baik dalam pasaran yang bergolak dan kepekaan terhadap tetapan parameter. Untuk meningkatkan lagi ketangguhan dan prestasi strategi, langkah-langkah pengoptimuman seperti memperkenalkan mekanisme parameter yang menyesuaikan diri, mengoptimumkan tetapan stop-loss, dan menambah penapisan persekitaran pasaran boleh dipertimbangkan.
Secara keseluruhannya, ini adalah kerangka strategi yang mempunyai asas yang baik, dengan pengoptimuman dan pengulangan berterusan, ia mempunyai potensi untuk menjadi sistem perdagangan yang boleh dipercayai. Apabila digunakan, peniaga harus berhati-hati untuk menyesuaikan parameter mengikut jenis perdagangan dan keadaan pasaran tertentu, dan sentiasa berjaga-jaga terhadap risiko.
/*backtest
start: 2024-06-01 00:00:00
end: 2024-06-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA Crossover with Supertrend", overlay=true, format=format.price, precision=2)
// Input parameters for SMAs
SMA1Length = input.int(20, title="SMA1 Length")
SMA2Length = input.int(50, title="SMA2 Length")
// Input parameters for Supertrend
Periods = input.int(10, title="ATR Period")
src = input(hl2, title="Source")
Multiplier = input.float(3.0, title="ATR Multiplier")
changeATR = input.bool(true, title="Change ATR Calculation Method?")
showsignals = input.bool(true, title="Show Buy/Sell Signals?")
highlighting = input.bool(true, title="Highlighter On/Off?")
// Calculate EMAs
SMA1 = ta.sma(close, SMA1Length)
SMA2 = ta.sma(close, SMA2Length)
// Plot SMAs
plot(SMA1, color=color.green, title="SMA1")
plot(SMA2, color=color.red, title="SMA2")
// Calculate Supertrend
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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 Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)
alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")
// Entry Conditions
longCondition = ta.crossover(SMA1, SMA2) and trend == 1
shortCondition = ta.crossunder(SMA1, SMA2) and trend == -1
// Execute Trades
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
// Exit Conditions
takeProfitPercent = input.float(1.0, title="Take Profit (%)") / 100
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)
strategy.exit("Take Profit Long", from_entry="Long", limit=longTakeProfit)
strategy.exit("Take Profit Short", from_entry="Short", limit=shortTakeProfit)
// Plot Entry Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")