Strategi perdagangan kombinasi berdasarkan EMA ganda dan filter bandpass


Tanggal Pembuatan: 2024-01-17 11:22:30 Akhirnya memodifikasi: 2024-01-17 11:22:30
menyalin: 0 Jumlah klik: 602
1
fokus pada
1617
Pengikut

Strategi perdagangan kombinasi berdasarkan EMA ganda dan filter bandpass

Ringkasan

Strategi ini menggunakan kombinasi dua indikator, yaitu Rata-rata Bergerak Eksponensial Ganda (DEMA) dan Filter Pita Pita (BPF), untuk mencapai penyaringan ganda untuk menembus buy dan overbought oversold, membentuk sinyal perdagangan yang stabil, untuk memaksimalkan keuntungan.

Prinsip Strategi

Strategi ini terdiri dari dua substrategi:

  1. Strategi DEMA

Penggunaan rata-rata bergerak indeks ganda pada hari ke-2 dan ke-20 membentuk sinyal jual beli dan jual beli. Indikator ini menyaring sebagian dari kebisingan harga, yang membantu menemukan tren.

  1. Strategi BPF

Indikator BPF menggabungkan transformasi matematis untuk mendeteksi komponen yang berputar-putar dalam harga, membentuk zona overbought dan oversold dalam satu siklus, dan mengirimkan sinyal perdagangan. Strategi ini diatur untuk periode 20 hari, parameter normalisasi 0,5 .

Jika keduanya digunakan dalam kombinasi, sinyal forex multi arah muncul, menunjukkan bahwa faktor tren dan siklus telah diverifikasi, sehingga memiliki kredibilitas yang lebih tinggi, sehingga menghasilkan titik masuk dan keluar yang lebih stabil.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah penyaringan indikator ganda, yang membuat sinyal lebih stabil dan dapat diandalkan. DEMA melonggarkan harga, mengidentifikasi arah tren; BPF mengidentifikasi ciri-ciri siklus, mengidentifikasi area overbought dan oversold. Kedua verifikasi silang dapat secara signifikan mengurangi probabilitas sinyal palsu yang dihasilkan oleh kebisingan harga dan penyesuaian siklus.

Selain itu, strategi itu sendiri tidak terlalu sering diperdagangkan, sehingga menghindari kehilangan dana dan biaya untuk melakukan perdagangan berlebihan. Waktu memegang posisi didominasi oleh garis tengah dan panjang, yang membantu menghindari dampak dari fluktuasi acak.

Analisis risiko

Risiko terbesar dari strategi ini adalah salah menilai kondisi pasar. Dalam situasi yang bergolak, mudah menghasilkan sinyal yang salah; ketika tren berbalik, stop loss mungkin lebih besar. Selain itu, masalah pengaturan parameter juga dapat berdampak besar pada kinerja strategi.

Risiko ini dapat dikontrol dan ditingkatkan dengan mengoptimalkan parameter indikator, mengatur stop loss, dan menggabungkan indikator lainnya. Ketika pasar masuk ke fase getaran dan pergantian tangan, Anda dapat mempertimbangkan strategi penundaan untuk menghindari gangguan dari situasi yang tidak menguntungkan.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalisasi siklus waktu. Uji berbagai pengaturan parameter DEMA dan BPF untuk menentukan kombinasi siklus yang optimal.

  2. Meningkatkan pengaturan stop loss. Menetapkan stop loss yang masuk akal untuk menghindari pertumbuhan kerugian. Menetapkan stop loss yang tepat untuk mengunci sebagian keuntungan.

  3. Tambahkan filter untuk indikator lain, seperti Volume, MACD, dan lain-lain, untuk menghindari sinyal yang disesatkan oleh banyak taruhan pengurangan.

  4. Parameter dapat beradaptasi dan dioptimalkan. Parameter DEMA dan BPF dapat disesuaikan secara dinamis sesuai dengan kondisi pasar terbaru, untuk memastikan bahwa indikator bersifat real-time.

Meringkaskan

Strategi ini mengintegrasikan keuntungan dari dua indikator EMA dan BPF, dua filter meningkatkan kualitas sinyal, mengejar keuntungan jangka panjang yang stabil. Risiko terutama berasal dari kesalahan penilaian keadaan pasar dan parameter yang tidak tepat. Dengan verifikasi multi-indikator, parameter optimasi dinamis, dan lain-lain, strategi dapat dibuat lebih fleksibel dan adaptif, dan biaya lebih tinggi.

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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/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
// The related article is copyrighted material from
// Stocks & Commodities Mar 2010
//
//
// 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


BPF(Length,Delta,SellZone,BuyZone) =>
    pos = 0.0
    xPrice = hl2
    beta = math.cos(3.14 * (360 / Length) / 180)
    gamma = 1 / math.cos(3.14 * (720 * Delta / Length) / 180)
    alpha = gamma - math.sqrt(gamma * gamma - 1)
    BP = 0.0
    BP := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
    pos:= BP > SellZone ? 1 :
    	   BP <= BuyZone? -1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bandpass Filter', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Bandpass Filter  ═════●'
LengthBPF = input.int(20, minval=1, group=I2)
Delta = input(0.5, group=I2)
SellZone = input.float(5, step = 0.01, group=I2)
BuyZone = input.float(-5, step = 0.01, 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)
prePosBPF = BPF(LengthBPF,Delta,SellZone,BuyZone)
iff_1 = posEMA20 == -1 and prePosBPF == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBPF == 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)