Strategi Mengikuti Tren Crossover Rata-rata Bergerak


Tanggal Pembuatan: 2023-12-12 12:24:11 Akhirnya memodifikasi: 2023-12-12 12:24:11
menyalin: 0 Jumlah klik: 347
1
fokus pada
1212
Pengikut

Strategi Mengikuti Tren Crossover Rata-rata Bergerak

Ringkasan

Strategi ini didasarkan pada persilangan rata-rata bergerak dan indikator ATR untuk mencapai otomatisasi perdagangan pelacakan tren. Bila EMA cepat melewati EMA lambat, maka dilakukan posisi overhead; Bila EMA cepat melewati EMA lambat, maka dilakukan posisi overhead.

Prinsip Strategi

Strategi ini didasarkan pada dua indikator teknis:

  1. EMA rata-rata: EMA rata-rata dengan dua parameter yang berbeda, dianggap sebagai sinyal multihead saat melewati garis lambat pada garis cepat, dan dianggap sebagai sinyal kosong saat melewati garis bawah.

  2. Indikator ATR: Indikator ATR dapat menilai amplitudo dan intensitas fluktuasi harga, sehingga menilai tren tren saat ini. Ketika nilai ATR lebih kecil menunjukkan saat ini berada dalam penataan, saat ini tidak baik untuk membangun posisi; Ketika nilai ATR lebih besar dan arah ke atas, berarti saat ini berada di pasar tren, saat ini menunggu EMA Gold Forks melakukan lebih banyak; Ketika nilai ATR lebih besar dan arah ke bawah, berarti saat ini berada di pasar tren, saat ini menunggu EMA dead forks kosong.

Melalui persimpangan EMA rata-rata untuk mencari peluang jual beli, sementara digabungkan dengan indikator ATR untuk menyaring sinyal perdagangan yang tidak kuat dan menghindari terkurung dalam konsolidasi pasar yang bergoyang.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Perdagangan hanya ketika indikator ATR mendeteksi tren, yang membantu menghindari kelelahan ketika tidak jelas apa yang akan terjadi.

  2. Ini adalah metode yang sederhana dan efektif untuk menemukan titik jual beli dengan menggunakan prinsip persilangan garis rata-rata.

  3. Sensitivitas dan kelancaran garis rata-rata EMA dapat disesuaikan dengan preferensi pribadi melalui pengaturan parameter.

  4. Hanya dengan menggunakan dua indikator sederhana, sistem perdagangan otomatis yang lengkap dapat dengan mudah dikembangkan dan dioptimalkan melalui editor Pine.

  5. Tidak perlu sering menyesuaikan parameter, untuk menerapkan kebijakan ParameterSet dan Forget yang sederhana.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. EMA cross mudah menghasilkan sinyal palsu yang dapat menyebabkan kerugian yang tidak perlu. Beberapa indikator dapat diluruskan dengan menyesuaikan parameter EMA.

  2. Indikator ATR kadang-kadang dapat salah dalam penilaian konsolidasi dan tren, sehingga menyebabkan kehilangan peluang perdagangan.

  3. Strategi itu sendiri tidak mempertimbangkan analisis faktor skala besar, dan jika terjadi pembalikan pasar di sisi berita yang signifikan, akan sulit untuk menilai dengan cepat dan rata-rata, yang membutuhkan intervensi buatan untuk melarikan diri dari puncak.

Ada beberapa cara yang dapat dilakukan untuk mengurangi dampak dari risiko ini.

Arah optimasi

Strategi ini juga memiliki beberapa optimasi utama:

  1. Anda dapat mempertimbangkan untuk menambahkan penilaian indikator lain, membentuk sistem kombinasi indikator, meningkatkan akurasi sinyal. Misalnya, kombinasi dengan indikator RSI untuk menghindari risiko overbought dan oversold.

  2. Parameter yang lebih cocok dapat dipilih sesuai dengan berbagai jenis perdagangan, berbagai zona perdagangan, sehingga parameter EMA dan ATR lebih sesuai dengan karakteristik pasar saat ini.

  3. Optimasi parameter dinamis dapat dilakukan melalui metode seperti pembelajaran mesin. Dengan demikian parameter indikator dapat disesuaikan dengan kondisi pasar secara real-time, daripada menggunakan nilai statis yang tetap.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi pelacakan tren yang sangat praktis. Hanya membutuhkan kombinasi dua indikator sederhana untuk mencapai sistem perdagangan yang relatif lengkap. Dengan penyesuaian parameter, dapat disesuaikan dengan preferensi pedagang yang berbeda.

Kode Sumber Strategi
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This strategy has been created for GMT trade 4h by Zhukov


//@version=5
strategy('ZhukovTrade', 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=100, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=200, 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 2023 23:59'))


// 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) 
shortCondition = ta.crossunder(fastEMA, slowEMA) 
// ORDERS:
// Set take profit and stop loss percentages
take_profit_percent = input(0, title="Take Profit Percent")
stop_loss_percent = input(0, title="Stop Loss Percent")
// Submit entry (or reverse) orders


atrPeriod = input(12, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

if longCondition and inDateRange 
    if longOK and direction<0

        strategy.entry(id='long', direction=strategy.long, alert_message = "LONG")
if shortCondition and inDateRange 
    if shortOK and direction>0
        strategy.entry(id='short', direction=strategy.short, alert_message = "SHORT")

// Submit exit orders in the cases where we trade only long or only short

if strategy.position_size > 0 and take_profit_percent
    strategy.exit(id='tp long',from_entry ="long",profit = take_profit_percent)
if strategy.position_size > 0 and stop_loss_percent
    strategy.exit(id='sl long',from_entry="long",loss=stop_loss_percent)

if strategy.position_size < 0 and stop_loss_percent
    strategy.exit(id='sl short',from_entry="short",loss=stop_loss_percent)
if strategy.position_size < 0 and take_profit_percent
    strategy.exit(id='tp short',from_entry="short",profit = take_profit_percent)