Strategi Kombinasi Rata-rata Pergerakan Ganda dan Rata-rata Pergerakan Williams


Tanggal Pembuatan: 2024-01-26 16:36:27 Akhirnya memodifikasi: 2024-01-26 16:36:27
menyalin: 0 Jumlah klik: 566
1
fokus pada
1617
Pengikut

Strategi Kombinasi Rata-rata Pergerakan Ganda dan Rata-rata Pergerakan Williams

Ringkasan

Strategi ini menggunakan kombinasi dari moving averages dua indeks dan tiga rata-rata Williams, untuk membentuk sebuah sistem yang terintegrasi untuk melacak tren dan menghasilkan sinyal reversal tren. Strategi ini memiliki efisiensi memegang posisi yang sangat baik, yang dapat secara efektif menyaring sinyal palsu.

Prinsip Strategi

Strategi ini terdiri dari dua substrategi:

  1. Double Exponential Moving Average (DEMA). Indikator ini menggabungkan kinerja trend tracking dari moving average single-index, dan keterbelakangan dari moving average dua-index. Ketika harga naik, ia dapat melakukan lebih banyak lebih cepat; ketika harga turun, ia juga dapat melakukan lebih cepat.

  2. Williams Triple Average. Indikator ini terdiri dari garis panjang, garis tengah, dan garis pendek. Ini menggunakan persilangan rata-rata periode yang berbeda untuk menilai perubahan tren untuk menghasilkan sinyal perdagangan.

Sinyal perdagangan dari strategi ini adalah untuk melakukan operasi penarikan dan penarikan hasil dari kedua strategi anak di atas. Artinya, strategi ini hanya akan mengirim pesanan ketika kedua strategi anak mengirimkan sinyal pada saat yang sama. Ini dapat secara efektif mengurangi sinyal palsu dan meningkatkan stabilitas kepemilikan.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah dapat secara efektif memfilter sinyal palsu, yang ditentukan oleh struktur strategi. Meskipun rata-rata bergerak ganda dan rata-rata Williams masing-masing memiliki kelemahan, kombinasi keduanya dapat memanfaatkan keuntungan masing-masing dan saling mengimbangi. Hal ini memungkinkan strategi ini untuk mencapai posisi yang efisien dalam situasi tren, dan dapat menghentikan kerugian secara tepat waktu dalam situasi yang terus berlanjut.

Selain itu, ada ruang yang luas untuk mengoptimalkan parameter strategi ini, yang dapat disesuaikan dengan karakteristik pasar yang berbeda dari varietas dan periode dengan menyesuaikan parameter dari rata-rata bergerak ganda dan parameter dari rata-rata tiga garis Williams.

Analisis risiko

Risiko utama dari strategi ini adalah ketika pasar mengalami fluktuasi yang kuat, titik-titik stop loss dapat ditembus dan menyebabkan kerugian yang lebih besar. Ini adalah masalah yang umum dengan strategi moving average. Selain itu, dalam situasi yang bergolak, strategi ini dapat sering membuka posisi kosong, meningkatkan kerugian biaya perdagangan.

Untuk mengontrol risiko ini, dianjurkan untuk mengoptimalkan parameter dengan menggunakan metode Walk Forward Analysis dan mengatur titik-titik stop loss yang masuk akal. Selain itu, dapat juga diperkenalkan indikator tambahan untuk menilai keadaan pasar, untuk menghentikan perdagangan dalam situasi yang bergolak.

Arah optimasi

Strategi ini memiliki beberapa optimasi:

  1. Menyesuaikan parameter dari rata-rata bergerak ganda untuk varietas dan periode yang berbeda.

  2. Menyesuaikan siklus tiga garis rata-rata Williams dengan frekuensi fluktuasi pasar.

  3. Menambahkan kondisi untuk membuka posisi, memfilter sinyal perdagangan pada tahap tertentu. Misalnya, tidak berdagang dalam fluktuasi yang kuat.

  4. Menambahkan indikator stop loss untuk mengendalikan kerugian. Metode seperti stop loss tracking, average stop loss, dan lain-lain dapat diuji.

  5. Masukkan algoritma pembelajaran mesin untuk mengoptimalkan parameter otomatis.

Meringkaskan

Strategi ini dengan menggabungkan keuntungan dari moving averages ganda dan rata-rata Williams, memungkinkan penyaringan sinyal perdagangan yang efektif, dapat mengurangi sinyal palsu, meningkatkan efisiensi memegang posisi. Ini dapat mendapatkan kinerja yang lebih baik melalui optimasi parameter sesuai dengan kondisi pasar, dan memiliki potensi aplikasi yang besar.

Kode Sumber Strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This indicator calculates 3 Moving Averages for default values of
// 13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2).
// The most popular method of interpreting a moving average is to compare 
// the relationship between a moving average of the security's price with 
// the security's price itself (or between several moving averages).
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset) =>
    pos = 0.0
    xLSma = ta.sma(hl2, LLength)[LOffset]
    xMSma = ta.sma(hl2, MLength)[MOffset]
    xSSma = ta.sma(hl2, SLength)[SOffset]
    pos := close < xSSma and xSSma < xMSma and xMSma < xLSma ? -1 :
    	     close > xSSma and xSSma > xMSma and xMSma > xLSma ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bill Williams Averages. 3Lines', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ 3Lines ═════●'
LLength = input.int(13, minval=1, group=I2)
MLength = input.int(8,minval=1, group=I2)
SLength = input.int(5,minval=1, group=I2)
LOffset = input.int(8,minval=1, group=I2)
MOffset = input.int(5,minval=1, group=I2)
SOffset = input.int(3,minval=1, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBWA3Lines = BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset)
iff_1 = posEMA20 == -1 and prePosBWA3Lines == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBWA3Lines == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)