Strategi Perdagangan Perbezaan Purata Pergerakan Berganda


Tarikh penciptaan: 2023-10-17 13:54:05 Akhirnya diubah suai: 2023-10-17 13:54:05
Salin: 0 Bilangan klik: 706
1
fokus pada
1617
Pengikut

Strategi Perdagangan Perbezaan Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi ini menghasilkan isyarat dagangan berdasarkan perbezaan purata bergerak dua garis rata. Ia mengira dua garis rata dengan kitaran cepat dan kitaran perlahan, menghasilkan isyarat beli apabila garis cepat menembusi garis perlahan dari arah bawah; menghasilkan isyarat jual apabila garis cepat jatuh dari arah atas dan menembusi garis perlahan.

Pembahasan asal

Logik teras strategi ini adalah untuk mengira dua purata bergerak SMA ((len1) dan SMA ((len2)), dan perbezaan mereka. Di mana len1 mewakili kitaran purata jangka pendek dan len2 mewakili kitaran purata jangka panjang. Purata jangka pendek dapat bertindak balas lebih cepat terhadap perubahan harga dan purata jangka panjang dapat mencerminkan trend jangka panjang.

Apabila garis purata jangka pendek dari bawah melintasi garis purata jangka panjang, menunjukkan harga jangka pendek mula naik melebihi trend jangka panjang, anda boleh membeli; apabila garis purata jangka panjang dari atas melintasi garis purata jangka panjang, menunjukkan harga jangka pendek mula turun di bawah trend jangka panjang, anda boleh menjual.

Untuk menyaring kesilapan, strategi ini juga memperkenalkan out3 sebagai garis isyarat dagangan. Out3 adalah hasil daripada pengolahan rata-rata masa pendek dengan nilai rata-rata harga. Isyarat dagangan hanya dihasilkan apabila out3 melintasi dif.

Khususnya, pembolehubah panjang adalah positif apabila out3 melintasi dif ke atas, sebagai isyarat membeli; pembolehubah pendek adalah negatif apabila out3 melintasi dif ke bawah, sebagai isyarat menjual.

Analisis kelebihan

Ini adalah strategi yang sangat mudah dan intuitif untuk menjejaki trend. Ia menggunakan kitaran garis lurus dua yang berbeza untuk menangkap titik peralihan trend yang lebih dipercayai daripada sistem garis lurus tunggal. Dan memperkenalkan penapis pada garis isyarat perdagangan dapat mengelakkan beberapa isyarat palsu yang dihasilkan dalam pasaran yang bergolak.

Berbanding dengan cara seperti berhenti bergerak, ia menggunakan konsep mengikuti trend, dapat memaksimumkan keuntungan, tidak akan dihentikan apabila trend lebih lama. Ia juga dapat mengawal kerugian, dan menutup posisi tepat pada masanya apabila trend berbalik.

Strategi ini mempunyai sedikit parameter, mudah dikuasai dan disesuaikan, dan sesuai untuk pemula yang mempelajari strategi permulaan perdagangan algoritma.

Risiko dan penambahbaikan

Risiko terbesar dalam strategi ini adalah bahawa parameter kitaran yang tidak wajar dalam garis rata-rata ganda menyebabkan kesilapan isyarat perdagangan. Jika jangka masa pendek adalah terlalu panjang, peluang untuk memulakan tahap trend akan hilang; jika terlalu pendek akan meningkatkan kemungkinan isyarat palsu. Jika jangka panjang adalah terlalu panjang, penyesuaian kedudukan akan ditangguhkan; jika terlalu pendek, ia mudah diganggu oleh gegaran pasaran.

Anda boleh mendapatkan kombinasi yang terbaik dengan menyesuaikan parameter len1 dan len2, atau anda boleh mencuba memperkenalkan kitaran penyesuaian dinamik untuk menyesuaikan diri. Selain itu, anda boleh mengurangkan isyarat palsu dengan mengoptimumkan parameter penapis.

Strategi pengesanan trend juga memerlukan perhatian untuk mengawal saiz kerugian tunggal, yang boleh ditetapkan sebagai titik berhenti atau memperkenalkan pengurusan kedudukan untuk mengoptimumkannya.

ringkaskan

Strategi selisih dua garis rata-rata adalah wakil strategi pengesanan trend yang sangat tipikal. Sistem silang dua garis rata-rata yang mudah membawa sumber isyarat yang stabil, dengan penapis yang berkesan dapat mengelakkan gangguan oleh gejolak pasaran. Prestasi strategi yang lebih baik dapat diperoleh dengan mengoptimumkan parameter kitaran rata-rata.

Kod sumber strategi
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//by afrazium
//@version=3
strategy(title="SMA Diff strat", shorttitle="SMAD STR", overlay=false, initial_capital=1, precision=8, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills= false, calc_on_every_tick=false, pyramiding=0)
len1 = input(50, minval=1, title="Length1"), len2 = input(100, minval=1, title="Length2"), smo = input(1, minval=1, title="Smoothing")
src = input(ohlc4, title="Source")

mid = src
expr1 = sma(src, len1), expr2 = sma(src, len2)
dif = (expr1 - expr2), out1 = (mid - expr1), out2 = (mid - expr2), out3 = sma(out1, smo)

long = crossover(out3, dif) ? out3 : na, short = crossunder(out3, dif) ? out3 : na

plot(out3, color=black, linewidth=2), hline(0)
clr = out2 >= out1 ? lime : red, plot(dif, color=clr, linewidth=2)
plot(long, title = 'Crossover', color = green, style = circles, linewidth=4), plot(short, title = 'Crossunder', color = red, style = circles, linewidth=4)

strategy.entry("buy", strategy.long, when=crossover(out1, dif))
strategy.close("buy", when=crossunder(out1, dif))

//plot(out2, color=blue, linewidth=2)
//A = plot(mid/10, color=red, linewidth=1, transp=100), B = plot(mid/20, color=red, linewidth=1, transp=100)
//C = plot(-mid/10, color=green, linewidth=1, transp=100), D = plot(-mid/20, color=green, linewidth=1, transp=100)
//fill(A, B, color=red), fill(C, D, color=green)