Strategi berdasarkan Harga Purata Volume dan EMA Tangga


Tarikh penciptaan: 2023-11-07 17:03:57 Akhirnya diubah suai: 2023-11-07 17:03:57
Salin: 0 Bilangan klik: 688
1
fokus pada
1617
Pengikut

Strategi berdasarkan Harga Purata Volume dan EMA Tangga

Gambaran keseluruhan

Ini adalah strategi perdagangan emas forex jangka pendek (kira-kira 1-5 minit) yang menggunakan hubungan kuantiti dan harga dalam teori pasang surut dan EMA Stairstep berganda untuk meramalkan titik perubahan trend dan melakukan perdagangan mengikut trend jangka pendek. Strategi ini sesuai untuk perdagangan frekuensi tinggi.

Prinsip

Isyarat perdagangan untuk strategi ini berasal dari dua bahagian:

  1. Berdasarkan jumlah perdagangan harga kuantiti hubungan. Khususnya, strategi dengan mengira tempoh yang berbeza ((boleh dikonfigurasi) jumlah perdagangan harga purata EMA, untuk menilai perubahan dalam trend kosong. Jika EMA jangka pendek melalui tempoh yang lebih lama, dianggap sebagai isyarat bullish; jika EMA jangka pendek melalui tempoh yang lebih lama, dianggap sebagai isyarat bullish.

  2. Stairstep EMA merujuk kepada pelbagai EMA rata-rata yang menetapkan parameter yang berbeza, seperti garis 10, 20, 50 hari, dan lain-lain, untuk menilai pembalikan trend berdasarkan urutan mereka. Jika EMA jangka pendek sebelum EMA jangka panjang berbalik, menunjukkan bahawa trend sedang berbalik.

Strategi akan menggabungkan kedua-dua isyarat ini untuk memutuskan masuk. Secara khusus, jika hubungan kuantiti dinilai sebagai bullish, dan Stairstep EMA menunjukkan bahawa pelbagai EMA telah bertukar menjadi bullish, maka masuk akan dilakukan; sebaliknya, jika hubungan kuantiti dinilai sebagai bearish, dan Stairstep EMA menunjukkan bahawa pelbagai EMA telah bertukar menjadi bearish, maka masuk akan dihentikan.

Kelebihan

Strategi ini menggabungkan kelebihan harga purata jumlah dagangan dan EMA berganda untuk meningkatkan ketepatan dan kestabilan isyarat:

  1. Berdasarkan jumlah urus niaga, harga purata untuk menentukan hubungan kuantiti-harga boleh lebih tepat daripada EMA harga semata-mata, dan mengelakkan kekeliruan oleh pergerakan harga yang dipertingkatkan.

  2. Stairstep EMA dapat meningkatkan dimensi penghakiman dengan menyusun urutan EMA dengan parameter yang berbeza, dan mengelakkan kebisingan yang disebabkan oleh EMA tunggal.

  3. Gabungan kedua-dua isyarat ini dapat mengesahkan satu sama lain dan mengurangkan isyarat palsu.

  4. Sesuai untuk perdagangan kitaran pendek frekuensi tinggi, peluang pembalikan dalam julat kecil dapat diambil dengan cepat.

  5. Parameter strategi boleh dikonfigurasi secara fleksibel untuk menyesuaikan diri dengan pelbagai jenis dan pengoptimuman kitaran.

Risiko

Strategi ini mempunyai beberapa risiko:

  1. Bergantung kepada petunjuk teknikal, anda mungkin tertipu oleh tindakan pasif.

  2. Operasi kitaran pendek lebih sensitif terhadap kos urus niaga dan memerlukan kawalan terhadap slippage dan yuran.

  3. Parameter EMA kitaran pendek perlu dioptimumkan secara kerap, jika tidak, ia mungkin tidak berkesan.

  4. Tidak semestinya ia akan berbalik dan ada risiko salah faham.

  5. Keputusan dalam urutan EMA berganda tidak boleh dipercayai sepenuhnya dan boleh menyebabkan kesalahan.

Langkah-langkah yang diambil:

  1. Ini adalah satu-satunya cara untuk membuat keputusan berdasarkan faktor-faktor asas.

  2. Menyesuaikan kedudukan untuk memastikan bahawa satu-satunya stop loss tidak terlalu besar.

  3. Uji ulang dan optimumkan parameter secara berkala.

  4. Meningkatkan kadar kejayaan perdagangan berhampiran kawasan sokongan dan rintangan yang kritikal.

  5. Ia digunakan bersama-sama dengan penunjuk lain untuk mengesahkan pelbagai dimensi.

Arah pengoptimuman

Strategi ini juga boleh dioptimumkan dengan:

  1. Uji cara yang berbeza untuk mengira hubungan kuantiti dan harga untuk mencari parameter yang lebih stabil.

  2. Menambah tahap penilaian Stairstep EMA.

  3. Penapisan digabungkan dengan isyarat penunjuk lain, seperti RSI, MACD dan sebagainya.

  4. Mengoptimumkan mekanisme penangguhan kerugian, seperti penangguhan bergerak, penangguhan tunggal dan sebagainya.

  5. Mengoptimumkan parameter mengikut ciri-ciri pelbagai jenis, membuat set parameter yang sesuai untuk jenis tersebut.

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

  7. Meneroka strategi keluar yang berbeza, seperti keluar tetap, keluar mengikut trend, dan sebagainya.

  8. Memperkenalkan mekanisme parameter yang menyesuaikan diri, menyesuaikan parameter secara automatik mengikut perubahan pasaran.

ringkaskan

Strategi ini menggabungkan penggunaan nilai purata jumlah dagangan dan Stairstep EMA untuk perdagangan trend jangka pendek. Strategi ini mempunyai kestabilan dan ketepatan yang tinggi, tetapi juga memerlukan perhatian terhadap kawalan risiko dan pengoptimuman parameter.

Kod 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  )