Strategi Mengikuti Tren Crossover Rata-rata Bergerak Dinamis


Tanggal Pembuatan: 2023-12-08 15:45:47 Akhirnya memodifikasi: 2023-12-08 15:45:47
menyalin: 0 Jumlah klik: 673
1
fokus pada
1621
Pengikut

Strategi Mengikuti Tren Crossover Rata-rata Bergerak Dinamis

Ringkasan

Strategi ini memungkinkan untuk melacak tren dengan menghitung dua garis DEMA dan TEMA yang bergerak searah, dan membangun posisi plus atau minus ketika mereka terjadi di Goldfork atau Deadfork. Selain itu, strategi ini juga mengatur sejumlah posisi untuk menghindari stop loss yang tidak perlu.

Prinsip Strategi

Strategi ini terutama didasarkan pada dua garis rata-rata dinamis yang bersilang DEMA dan TEMA untuk menilai arah tren.

DEMA mewakili rata-rata bergerak dua indeks, yang menggabungkan fitur-fitur EMA yang dipertanggungjawabkan, dan mengoptimalkan masalah lag yang ada di EMA. Rumusnya adalah:

DEMA = 2*EMA(CLOSE,N) - EMA(EMA(CLOSE,N),N)

N di sini adalah Demalength.

TEMA adalah tiga indeks rata-rata bergerak, yang mengurangi keterlambatan rata-rata dengan tiga kali indeks smoothing. Rumusnya adalah:

EMA1 = EMA(CLOSE,Temalength)
EMA2 = EMA(EMA1,Temalength)
EMA3 = EMA(EMA2,Temalength)
TEMA = 3*EMA1 - 3*EMA2 + EMA3

Ketika TEMA naik melewati DEMA, dianggap sebagai sinyal garpu emas, lakukan lebih banyak; ketika TEMA turun melewati DEMA, dianggap sebagai sinyal garpu mati, lakukan kosong.

Selain itu, kebijakan ini juga mengatur delayBars untuk memastikan keabsahan sinyal dan menghindari munculnya sinyal palsu. Hal ini membutuhkan siklus yang terus berlanjut setelah garpu emas atau garpu mati untuk memicu masuk.

Akhirnya, strategi ini menambahkan logika double-check. Ini berarti bahwa sebelum membuka posisi, Anda harus menilai apakah Anda perlu melunasi posisi terbalik saat ini, yang dapat menghindari risiko arbitrage dua arah.

Analisis Keunggulan

  1. Menggunakan dua garis dinamis untuk menilai tren lebih akurat

DEMA dan TEMA, dua garis rata dinamis, lebih sensitif daripada EMA dan SMA tradisional, dapat menangkap perubahan tren lebih cepat, sehingga meningkatkan akurasi penilaian tren pasar.

  1. Setel periode penundaan tertentu untuk memfilter sinyal palsu

Pengaturan parameter delayBars, membuat harus menunggu sinyal berlanjut untuk beberapa waktu sebelum membuka posisi, sehingga dapat memfilter beberapa sinyal palsu, dan menghindari ditargetkan.

  1. Pemeriksaan ganda dapat mengurangi risiko

Strategi ini akan memprioritaskan apakah perlu untuk melunasi posisi terbalik sebelum membuka posisi, dapat menghindari risiko memegang posisi dua arah sekaligus, dan meminimalkan kerugian dari arbitrage.

  1. Memiliki Universalitas yang Kuat

Strategi ini terutama bergantung pada indikator teknis umum yang disebut crossover linear untuk menilai tren dan sinyal, tidak bergantung pada varietas tertentu, dan berlaku untuk sebagian besar varietas dengan tren yang jelas.

Analisis risiko

  1. Investor mudah terjebak dalam pasar yang bergejolak

Ketika pasar berada dalam zona getaran yang sangat besar, garis rata-rata dapat sering berselisih, mudah untuk membentuk sinyal palsu yang menyebabkan terselubung. Saat ini, pengaturan periode penundaan juga mungkin tidak dapat memfilter sinyal sepenuhnya.

Solusinya adalah dengan mengidentifikasi situasi yang bergoyang dan menerapkan strategi penundaan, atau dengan menyesuaikan parameter garis rata-rata dan periode keterlambatan.

  1. Ketidakmampuan untuk mengidentifikasi jebakan atau kejutan

Strategi ini hanya melacak tren harga dan tidak dapat memprediksi perangkap jangka pendek atau pembalikan yang dipicu oleh kejutan besar. Strategi ini dapat mengalami kerugian besar.

Solusinya adalah dengan menggunakan indikator lain untuk menilai latar belakang risiko, atau dengan mengurangi ukuran posisi secara tepat.

Arah optimasi

  1. Uji lebih banyak jenis rata-rata

Selain DEMA dan TEMA, Anda juga dapat menguji kombinasi SMA, EMA, dan rata-rata lainnya untuk menemukan rata-rata yang lebih sesuai dengan pasar.

  1. Optimalkan parameter MA dan siklus delay

Optimalkan parameter untuk menemukan parameter panjang garis rata-rata dan periode penundaan sinyal yang optimal untuk mendapatkan sinyal perdagangan yang lebih akurat.

  1. Varietas yang berbeda untuk berbagai parameter

Bergantung pada karakteristik varietas, masing-masing menemukan kombinasi parameter rata-rata dan siklus penundaan yang sesuai dengan rentang fluktuasi dan kecenderungan mereka.

  1. Evaluasi risiko dalam kombinasi dengan indikator lainnya

Indikator Bollinger Bands, misalnya, menilai volatilitas dan posisi harga, menghindari jatuh ke dalam perangkap guncangan; menggabungkan kebijaksanaan indikator kelas energi, menilai keandalan tren.

Meringkaskan

Strategi ini melacak tren besar melalui persilangan DEMA dan TEMA rata-rata dinamis, dan merupakan strategi pelacakan tren sederhana. Keunggulan adalah stabilitas, keandalan, dan universalitas yang tinggi, cocok untuk digunakan sebagai strategi dasar; tetapi juga memiliki keterbelakangan dan kemampuan identifikasi reversal yang lemah.

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

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jacobdickson255

strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0)

//Dema Scripting
Demalength = input.int(230, minval=1)
src = close
e1 = ta.ema(src, Demalength)
e2 = ta.ema(e1, Demalength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)

//Tema Scripting
Temalength = input.int(210, minval=1)
ema1 = ta.ema(close, Temalength)
ema2 = ta.ema(ema1, Temalength)
ema3 = ta.ema(ema2, Temalength)
tema = 3 * (ema1 - ema2) + ema3
plot(tema, "TEMA", color=#2962FF)

delayBars = input(5, title="Bar Delay")
var int lastTradeBar = na

longCondition = ta.crossover(tema, dema) 
longExit = ta.crossunder(tema, dema)
shortCondition = ta.crossunder(tema, dema)
shortExit = ta.crossover(tema, dema)

// Exit conditions should be checked before entry conditions
// Close short position if a long condition is present
if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short
    strategy.close("Short")
   

// Close long position if a short condition is present
if ((longExit and strategy.position_size > 0))
    strategy.close("Long")
   
// Now check for entry conditions
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastTradeBar := bar_index

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastTradeBar := bar_index