Strategi berdasarkan Volume Harga Rata-rata dan Stairstep EMA


Tanggal Pembuatan: 2023-11-07 17:03:57 Akhirnya memodifikasi: 2023-11-07 17:03:57
menyalin: 0 Jumlah klik: 688
1
fokus pada
1617
Pengikut

Strategi berdasarkan Volume Harga Rata-rata dan Stairstep EMA

Ringkasan

Ini adalah strategi perdagangan emas forex dengan periode pendek (<1-5 menit) yang terutama menggunakan hubungan kuantitatif dalam teori pasang surut dan EMA Stairstep ganda untuk memprediksi titik balik tren, melakukan perdagangan mengikuti tren dalam periode pendek. Strategi ini cocok untuk perdagangan frekuensi tinggi.

Prinsip

Sinyal perdagangan dari strategi ini berasal dari dua bagian:

  1. Berdasarkan volume perdagangan harga rata-rata hubungan kuantitas. Secara khusus, strategi dengan menghitung siklus yang berbeda (configurable) volume perdagangan rata-rata harga EMA, untuk menilai perubahan dalam tren bullish. Jika EMA periode pendek melewati periode yang lebih lama, dianggap sebagai sinyal bullish; Jika EMA periode pendek melewati periode yang lebih lama, dianggap sebagai sinyal bullish.

  2. Stairstep EMA mengacu pada beberapa EMA rata-rata dengan parameter yang berbeda, seperti 10th line, 20th line, 50th line, dan lain-lain, berdasarkan urutan mereka untuk menilai trend reversal. Jika EMA jangka pendek sebelum EMA jangka panjang berbalik, menunjukkan bahwa tren berbalik.

Strategi akan menggabungkan kedua sinyal ini untuk memutuskan masuk. Secara khusus, jika hubungan kuantitas dinilai sebagai bullish dan Stairstep EMA menunjukkan bahwa EMA ganda telah berbalik bullish, maka masuk akan dilakukan; sebaliknya, jika hubungan kuantitas dinilai sebagai bearish dan Stairstep EMA menunjukkan bahwa EMA ganda telah berbalik bearish, maka masuk akan dilakukan.

Keunggulan

Strategi ini menggabungkan keuntungan dari volume transaksi rata-rata dan EMA ganda untuk meningkatkan akurasi dan stabilitas sinyal:

  1. Berdasarkan volume transaksi, harga rata-rata untuk menentukan hubungan volume-harga dapat lebih akurat daripada harga EMA semata-mata, untuk menghindari kesalahan yang diperkuat oleh getaran harga.

  2. Stairstep EMA dapat meningkatkan dimensi penilaian dengan mengurutkan urutan EMA dari parameter yang berbeda, menghindari kebisingan yang ditimbulkan oleh EMA tunggal.

  3. Kombinasi dua sinyal dapat saling diverifikasi dan mengurangi sinyal palsu.

  4. Cocok untuk perdagangan frekuensi tinggi dan siklus pendek, untuk mengambil peluang reversal dalam kisaran kecil dengan cepat.

  5. Parameter kebijakan dapat dikonfigurasi secara fleksibel untuk mengoptimalkan varietas dan siklus yang berbeda.

Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Terlalu mengandalkan indikator teknis, ada kemungkinan tertipu oleh perilaku pasif.

  2. Operasi siklus pendek lebih sensitif terhadap biaya transaksi dan perlu mengendalikan slippage dan biaya.

  3. Parameter EMA periode pendek perlu dioptimalkan secara teratur, jika tidak, mungkin tidak berlaku.

  4. Perbedaan harga tidak selalu terjadi, dan ada risiko kesalahan penilaian.

  5. Penghakiman dalam urutan urutan EMA ganda tidak sepenuhnya dapat diandalkan dan dapat menyebabkan kesalahan.

Tindakan yang disesuaikan:

  1. Ini adalah salah satu faktor yang paling mendasar.

  2. Mengatur posisi untuk memastikan bahwa stop loss tidak terlalu besar.

  3. Parameter harus diuji ulang dan dioptimalkan secara teratur.

  4. Meningkatkan tingkat keberhasilan perdagangan di dekat area dukungan dan resistensi yang penting.

  5. Ini digunakan dalam kombinasi dengan indikator lain untuk melakukan verifikasi multi-dimensi.

Arah optimasi

Strategi ini juga dapat dioptimalkan dengan:

  1. Uji berbagai metode perhitungan hubungan kuantitatif-kuantitatif untuk mencari parameter yang lebih stabil.

  2. Menambahkan lebih banyak tingkatan penilaian pada Stairstep EMA.

  3. Filter dalam kombinasi dengan sinyal indikator lain, seperti RSI, MACD, dll.

  4. Mengoptimalkan mekanisme stop loss, seperti stop loss bergerak, stop loss tergantung, dan lain sebagainya.

  5. Mengoptimalkan parameter berdasarkan karakteristik varietas yang berbeda, membuat set parameter yang sesuai untuk varietas tersebut.

  6. Menambahkan algoritma pembelajaran mesin, menggunakan data besar untuk melatih model penilaian.

  7. Menjelajahi strategi keluar yang berbeda, seperti keluar tetap, keluar mengikuti tren, dan sebagainya.

  8. Memperkenalkan mekanisme parameter yang dapat disesuaikan secara otomatis sesuai dengan perubahan pasar.

Meringkaskan

Strategi ini menggabungkan keuntungan dari volume perdagangan rata-rata dan Stairstep EMA untuk melakukan perdagangan jangka pendek. Strategi ini memiliki stabilitas dan akurasi yang tinggi, tetapi juga perlu memperhatikan pengendalian risiko dan pengoptimalan parameter. Jika tes terus dioptimalkan, dan digunakan bersama dengan indikator teknis lainnya, dapat menjadi strategi perdagangan jangka pendek yang efisien.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5

strategy("Forex Fractal EMA Scalper", overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Period Fractals", defval=2, minval=2, group="Optimization Parameters")

src = input(hl2, title="Source for EMA's", group="Optimization Parameters")
len1 = input.int(10, minval=1, title="Length EMA 1", group="Optimization Parameters")
out1 = ta.ema(src, len1)
len2 = input.int(20, minval=1, title="Length EMA 2", group="Optimization Parameters")
out2 = ta.ema(src, len2)
len3 = input.int(100, minval=1, title="Length EMA 3", group="Optimization Parameters")
out3 = ta.ema(src, len3)



// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

// plotshape(downFractal, style=shape.triangledown, location=location.belowbar, offset=-n, color=#F44336, size = size.small)
// plotshape(upFractal, style=shape.triangleup,   location=location.abovebar, offset=-n, color=#009688, size = size.small)


long= out1 > out2 and out2>out3 and upFractal
short= out1 < out2 and out2<out3 and downFractal


strategy.entry("long",strategy.long,when= short)
strategy.entry("short",strategy.short,when=long)

tp=input(25, title="TP in PIPS", group="Risk Management")*10
sl=input(25, title="SL in PIPS", group="Risk Management")*10


strategy.exit("X_long", "long", profit=tp,  loss=sl  )
strategy.exit("x_short", "short",profit=tp, loss=sl  )