Strategi dagangan purata dwi bergerak pantas dan perlahan


Tarikh penciptaan: 2023-10-27 16:41:24 Akhirnya diubah suai: 2023-10-27 16:41:24
Salin: 0 Bilangan klik: 691
1
fokus pada
1617
Pengikut

Strategi dagangan purata dwi bergerak pantas dan perlahan

Gambaran keseluruhan

Strategi dagangan dua baris dengan mengira purata bergerak cepat dan purata bergerak perlahan, dan menghasilkan isyarat perdagangan berdasarkan persilangan dua purata bergerak. Apabila bergerak perlahan merentasi rata-rata bergerak cepat, ambil strategi multihead; apabila bergerak perlahan merentasi rata-rata bergerak di bawah rata-rata bergerak cepat, ambil strategi kosong.

Prinsip Strategi

Strategi ini mula-mula menetapkan panjang rata-rata bergerak cepat (maFastLength) dan panjang rata-rata bergerak perlahan (maSlowLength). Kemudian menghitung rata-rata bergerak cepat (fastMA) dan rata-rata bergerak perlahan (slowMA). Rata-rata bergerak cepat bertindak balas terhadap perubahan harga yang lebih sensitif dan boleh digunakan untuk menentukan trend semasa; rata-rata bergerak perlahan bertindak balas terhadap perubahan harga yang lebih perlahan dan boleh digunakan untuk menentukan arah trend.

Apabila bergerak cepat di atas rata-rata bergerak bergerak perlahan, mengambil strategi untuk melakukan banyak, menghasilkan goLong () isyarat. Apabila bergerak perlahan di bawah rata-rata bergerak cepat, melakukan banyak, menghasilkan killLong () isyarat.

Anda boleh memilih untuk melakukan longonly, shorting, atau swapping.

Apabila melakukan strategi berbilang, buka lebih banyak apabila isyarat goLong ((() dikeluarkan; tutup apabila isyarat killLong ((() dikeluarkan.

Apabila membuat strategi kosong, buka kedudukan kosong apabila isyarat killLong () dikeluarkan; tutup kedudukan apabila isyarat goLong () dikeluarkan.

Apabila berdagang dua arah, buka lebih banyak kedudukan apabila isyarat goLong () dikeluarkan; tutup lebih banyak kedudukan dan buka kosong apabila isyarat killLong () dikeluarkan.

Selain itu, strategi juga menyediakan fungsi seperti berhenti, menjejaki berhenti, dan pemberitahuan perdagangan, yang membolehkan pilihan fleksibel untuk digunakan.

Kelebihan Strategik

  1. Strategi mudah difahami dan mudah dilaksanakan.

  2. Anda boleh memilih untuk berdagang dalam mata wang, berdagang dalam mata wang kosong atau berdagang dalam mata wang dua hala.

  3. Fleksibiliti untuk memilih sama ada untuk menggunakan fungsi pengurusan risiko seperti Stop Loss dan Tracking Stop Loss.

  4. Anda boleh menyesuaikan mesej urus niaga anda dan memberi isyarat kepada anda secara langsung mengenai tindakan urus niaga.

  5. Strategi garis rata-rata perlahan-lahan sensitif terhadap perubahan trend pasaran dan dapat menangkap trend yang lebih kuat.

  6. Parameter strategi boleh disesuaikan, parameter boleh disesuaikan untuk pasaran yang berbeza, beradaptasi kuat.

Risiko Strategik

  1. Apabila pasaran tidak mempunyai trend yang jelas, lebih banyak isyarat palsu mungkin muncul, yang menyebabkan perdagangan berlebihan.

  2. Sistem garis rata tidak sensitif terhadap tindak balas kejadian yang mengejutkan, dan mungkin terlepas peluang yang mengejutkan.

  3. Perlu memilih parameter garis rata yang munasabah, pilihan parameter yang tidak betul boleh mempengaruhi kesan strategi.

  4. Ia perlu mematuhi isyarat strategi dengan ketat untuk mengelakkan perdagangan bebas.

  5. Perlu memberi perhatian kepada kesan kos urus niaga terhadap keuntungan strategi.

Arah pengoptimuman strategi

  1. Indikator lain seperti RSI boleh diperkenalkan untuk mengesahkan isyarat dagangan dan mengelakkan isyarat yang salah.

  2. Anda boleh menetapkan fungsi pengoptimuman parameter untuk mencari kombinasi parameter terbaik secara automatik.

  3. Anda boleh menetapkan Hentian Bergerak untuk mengunci keuntungan dan menyesuaikan Hentian Berhenti apabila anda mahu.

  4. Model pembelajaran mesin boleh dimasukkan untuk membantu menentukan arah trend.

  5. Anda boleh mengoptimumkan fungsi isyarat mesej agar lebih sesuai dengan tabiat dagangan anda.

ringkaskan

Strategi perdagangan dua hala secara keseluruhan lebih mudah dan lebih sensitif terhadap perubahan trend pasaran, dan dapat menangkap peluang perdagangan yang dibawa oleh trend yang lebih kuat. Tetapi juga perlu berhati-hati untuk mengelakkan perdagangan yang salah di pasaran tanpa trend, dan menyesuaikan parameter dengan betul untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Selain itu, penambahan indikator teknologi pembantu dan fungsi pengoptimuman yang sesuai dapat meningkatkan kestabilan dan kemampuan penyesuaian strategi.

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

//@version=4

strategy("SMA Strategy", shorttitle="SMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Inputs ===
// short ma
maFastSource = input(defval=close, title="Fast MA Source")
maFastLength = input(defval=3, title="Fast MA Period", minval=1)

// long ma
maSlowSource = input(defval=close, title="Slow MA Source")
maSlowLength = input(defval=9, title="Slow MA Period", minval=1)

// Trade direction
shorting = input(defval=false, title="Short only?")
longonly = input(defval=true, title="Long only?")
swapping = input(defval=false, title="Swap orders?")
// risk management
useStop = input(defval=false, title="Use Initial Stop Loss?")
slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1)
useTS = input(defval=false, title="Use Trailing Stop?")
tslPoints = input(defval=120, title="Trail Points", minval=1)
useTSO = input(defval=false, title="Use Offset For Trailing Stop?")
tslOffset = input(defval=20, title="Trail Offset Points", minval=1)

// Messages for buy and sell
message_long_entry  = input("Long entry message", title="Long entry message")
message_long_exit   = input("Long exit message", title="Long exit message")
message_short_entry = input("Short entry message", title="Short entry message")
message_short_exit  = input("Short exit message", title="Short exit message")

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)
 
time_cond  = true
// === Vars and Series ===
fastMA = sma(maFastSource, maFastLength)
slowMA = sma(maSlowSource, maSlowLength)

plot(fastMA, color=color.blue)
plot(slowMA, color=color.purple)

goLong() =>
    crossover(fastMA, slowMA)
killLong() =>
    crossunder(fastMA, slowMA)
    
// Long only
if longonly
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.close("Buy", when=killLong() and time_cond, alert_message = message_long_exit)

// Short only
if shorting
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)
    strategy.close("Sell", when=goLong() and time_cond, alert_message = message_short_exit)
    
// Order Swapping
if swapping
    strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry)
    strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry)

if useStop
    strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08, alert_message = message_long_exit)
    strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08, alert_message = message_short_exit)