Strategi Mengikuti Trend Persilangan Purata Pergerakan


Tarikh penciptaan: 2024-02-05 14:12:27 Akhirnya diubah suai: 2024-02-05 14:12:27
Salin: 1 Bilangan klik: 543
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Persilangan Purata Pergerakan

Gambaran keseluruhan

Strategi penelusuran tren persilangan rata-rata bergerak adalah strategi perdagangan kuantitatif yang menjejaki trend pasaran. Strategi ini menghasilkan isyarat perdagangan dengan mengira rata-rata bergerak cepat dan rata-rata bergerak perlahan dan menangkap titik-titik perubahan trend pasaran apabila mereka bersilang.

Prinsip Strategi

Prinsip utama strategi ini adalah menggunakan parameter yang berbeza untuk menilai trend pasaran melalui EMA. Strategi ini mentakrifkan satu EMA cepat dan satu EMA perlahan. Apabila EMA cepat melintasi EMA perlahan dari bawah, ia menunjukkan trend pasaran bertukar menjadi bull; apabila EMA cepat melintasi EMA perlahan dari atas ke bawah, ia menunjukkan trend pasaran bertukar menjadi bear.

Apabila dipakai, strategi akan membuka lebih banyak kad, dan apabila dipakai, strategi akan membuka kad kosong. Strategi akan terus memegang kedudukan sehingga stop loss stop trigger atau isyarat pembalikan silang berlaku lagi.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Strategi logiknya mudah difahami, mudah diimplementasikan, dan sesuai untuk pelajar pemula;
  2. Menggunakan EMA untuk melonggarkan harga, anda boleh menyaring bunyi pasaran dengan berkesan dan mengenal pasti trend;
  3. Ia boleh menyesuaikan parameter secara fleksibel untuk menyesuaikan diri dengan pasaran yang berbeza mengikut kitaran.
  4. Strategi ini boleh diperluaskan kepada versi jangka masa yang berbilang untuk meningkatkan kestabilan.

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Dalam kes-kes yang tidak menentu, mungkin terdapat banyak halangan yang boleh menjejaskan keuntungan;
  2. Tidak dapat mengenal pasti jenis trend dengan berkesan (bull and bear) dan boleh menyebabkan kerugian yang besar;
  3. Tetapan parameter EMA yang tidak betul boleh menyebabkan frekuensi dagangan yang terlalu tinggi atau pengiktirafan yang terlewat.

Untuk mengurangkan risiko, anda boleh mempertimbangkan untuk menentukan jenis trend dengan menggunakan indikator lain, atau menetapkan nisbah stop loss yang lebih longgar.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dalam beberapa aspek:

  1. Menambah penilaian mengenai jenis trend dan mengelakkan kedudukan terbalik;
  2. Menambah penilaian kitaran masa dan meningkatkan kualiti isyarat;
  3. Secara dinamik menyesuaikan nisbah stop loss dan optimumkan titik keluar;
  4. Berkongsi dengan indikator lain untuk memfilter isyarat, mengurangkan kesilapan perdagangan.

ringkaskan

Strategi pengesanan tren silang rata-rata bergerak secara keseluruhan adalah strategi perdagangan tren yang mudah dan praktikal. Idea teras strategi ini jelas, mudah dipraktikkan, tetapi terdapat ruang untuk pengoptimuman. Dengan cara menyesuaikan parameter, penghakiman pelbagai kitaran, dan hentian dinamik, anda boleh terus meningkatkan kestabilan dan tahap keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Zhukov trade', overlay=true, calc_on_every_tick=true, currency=currency.USD)

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title='Fast EMA', defval=10, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=20, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both')

// Options that configure the backtest date range
startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00'))
endDate = input(title='End Date', defval=timestamp('31 Dec 2030 23:59'))

// Set take profit and stop loss percentages
take_profit_percent = input(1.0, title ="Take Profit Percent") / 100.0
stop_loss_percent = input(1.0, title ="Stop Loss Percent") / 100.0

// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
emapos = ta.ema(close, 200)

// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2)
plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2)
plot(series=emapos, color=color.new(color.red, 0), linewidth=2)

// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK = tradeDirection == 'Long' or tradeDirection == 'Both'
shortOK = tradeDirection == 'Short' or tradeDirection == 'Both'

// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA) and inDateRange
shortCondition = ta.crossunder(fastEMA, slowEMA) and inDateRange

// ORDERS:

// Submit entry (or reverse) orders
if longCondition and longOK
    strategy.entry(id='long', direction=strategy.long)

if shortCondition and shortOK
    strategy.entry(id='short', direction=strategy.short)

// Exit orders
if strategy.position_size > 0 and longOK
    strategy.exit(id='exit long', from_entry='long', limit=strategy.position_avg_price * (1 + take_profit_percent), stop=strategy.position_avg_price * (1 - stop_loss_percent))

if strategy.position_size < 0 and shortOK
    strategy.exit(id='exit short', from_entry='short', limit=strategy.position_avg_price * (1 - take_profit_percent), stop=strategy.position_avg_price * (1 + stop_loss_percent))