
Strategi persilangan dua rata-rata adalah strategi penjejakan trend klasik. Strategi ini menggunakan purata bergerak dari dua tempoh yang berbeza untuk menangkap trend pasaran, menghasilkan isyarat lebih banyak apabila ia melintasi rata-rata perlahan pada rata-rata cepat, dan menghasilkan isyarat kosong apabila ia melintasi rata-rata perlahan di bawah rata-rata cepat.
Dua purata bergerak digunakan dalam kod strategi, satu adalah purata bergerak cepat (default 14th period) dan satu adalah purata bergerak perlahan (default 28th period). Jenis purata bergerak boleh dipilih sebagai purata bergerak sederhana (SMA), purata bergerak indeks (EMA), purata bergerak bertimbangan (WMA) dan purata bergerak relatif (RMA).
Logik utama strategi ini ialah:
Dengan logik seperti itu, strategi dapat mengesan trend utama pasaran, memegang kedudukan berganda dalam trend menaik, memegang kedudukan kosong atau menunggu posisi kosong dalam trend menurun. Periode dan jenis garis rata dapat disesuaikan dan dioptimumkan mengikut pasaran dan jenis perdagangan yang berbeza.
Langkah-langkah berikut boleh diambil untuk menangani risiko ini:
Pengoptimuman ini dapat meningkatkan kebolehan beradaptasi dan kestabilan strategi, lebih baik menyesuaikan diri dengan keadaan pasaran yang berbeza. Namun, perlu diingat bahawa pengoptimuman berlebihan boleh menyebabkan strategi terlalu sesuai dan tidak berfungsi dengan baik di dunia nyata.
Strategi persilangan dua garis sejajar adalah strategi penjejakan trend klasik yang menghasilkan isyarat perdagangan melalui persilangan purata bergerak melalui dua kitaran yang berbeza. Logikanya mudah, mudah dilaksanakan, dan sesuai untuk pasaran yang sedang tren. Tetapi dalam pasaran yang bergolak, mungkin terdapat keadaan perdagangan yang kerap dan kerugian berturut-turut. Oleh itu, apabila menggunakan strategi ini, anda perlu mengoptimumkan parameter kitaran sejajar mengikut ciri-ciri pasaran, dan menetapkan stop loss yang munasabah.
/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011
//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
float fastMA = switch fastMAType
"Simple" => ta.sma(close, fastMALength)
"Exponential" => ta.ema(close, fastMALength)
"Weighted" => ta.wma(close, fastMALength)
"Relative" => ta.rma(close, fastMALength)
plot(fastMA, color = color.aqua, linewidth = 2)
float slowMA = switch slowMAType
"Simple" => ta.sma(close, slowMALength)
"Exponential" => ta.ema(close, slowMALength)
"Weighted" => ta.wma(close, slowMALength)
"Relative" => ta.rma(close, slowMALength)
plot(slowMA, color = color.blue, linewidth = 2)
longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
strategy.entry("Short", strategy.short)
closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
strategy.close("Long", "Close")