Strategi perdagangan berdasarkan penunjuk EMA dan MAMA


Tarikh penciptaan: 2023-10-31 14:20:56 Akhirnya diubah suai: 2023-10-31 14:20:56
Salin: 0 Bilangan klik: 817
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan penunjuk EMA dan MAMA

Gambaran keseluruhan

Strategi ini berdasarkan kepada EMA (Indeks Moving Average) dan MAMA (MESA Adaptive Moving Average) untuk menilai trend pasaran dan menghasilkan isyarat perdagangan berdasarkan keadaan silang mereka. EMA sering digunakan untuk menentukan arah trend pasaran, manakala MAMA dapat menangkap titik-titik perubahan pasaran dengan lebih tepat, kedua-duanya digunakan bersama untuk meningkatkan prestasi strategi.

Prinsip Strategi

  1. Hitung EMA pantas dan EMA perlahan, yang mencerminkan trend pasaran jangka pendek dan jangka panjang
  2. Hitung garis MAMA dan FAMA, yang masing-masing adalah purata bergerak beradaptasi
  3. Apabila EMA pantas melintasi EMA perlahan, ia menghasilkan isyarat beli
  4. Apabila EMA pantas di bawah EMA perlahan, menghasilkan isyarat menjual
  5. Apabila MAMA memakai FAMA, ia menghasilkan isyarat beli
  6. Apabila MAMA melalui FAMA, ia menghasilkan isyarat jual beli
  7. MAMA dan FAMA boleh digunakan untuk mengesahkan isyarat persilangan EMA atau menangkap perubahan trend lebih awal

Khususnya, strategi pertama mengira EMA cepat (fl) dan EMA perlahan (sl), yang mencerminkan trend jangka pendek dan jangka panjang.

MAMA dan FAMA kemudiannya dikira mengikut formula John Ehlers:

  1. Mengira Transform Hilbert harga dan mengambil maklumat fasa isyarat
  2. Tempoh sekejap isyarat berdasarkan maklumat fasa p
  3. Berat α berdasarkan nilai p
  4. MAMA dan FAMA berdasarkan berat α

Akhirnya, strategi menghasilkan isyarat dagangan berdasarkan EMA dan persilangan MAMA/FAMA:

  • EMA melakukan lebih banyak kerja di Gold Forks
  • EMA kosong apabila garpu mati
  • MAMA lebih baik daripada FAMA
  • MAMA dan FAMA berpecah

Analisis kelebihan

Strategi ini menggabungkan kelebihan indikator EMA dan MAMA untuk meningkatkan ketepatan isyarat perdagangan.

Kelebihan EMA:

  • Data harga yang lebih halus dan kurang bising
  • Mengikut trend pasaran dan mempunyai ketinggalan
  • Fleksibiliti parameter yang boleh disesuaikan dengan sensitiviti kepada trend jangka pendek dan jangka panjang

Kelebihan MAMA:

  • Parameter adaptasi, tidak memerlukan kitaran yang ditetapkan oleh manusia
  • Tanggapan pantas untuk menangkap perubahan trend
  • Mengenali dengan tepat kawasan sokongan dan rintangan

Kelebihan menggunakan kedua-dua kaedah ini:

  • EMA menilai arah trend utama
  • MAMA mengesahkan isyarat dan menangkap perubahan lebih awal
  • Peningkatan ketepatan dan kemenangan isyarat

Analisis risiko

Strategi ini mempunyai risiko utama:

  • Kedua-dua EMA dan MAMA adalah penegasan akhir, dengan titik Entry sedikit terlewat, yang mungkin membawa risiko slippage
  • Dalam kes gempa besar, EMA dan MAMA sering bersalin, yang menghasilkan banyak dan kosong.
  • Parameter EMA dan MAMA yang tidak betul, mungkin terlepas trend atau menghasilkan isyarat palsu

Langkah-langkah yang diambil:

  • Menggunakan Hentian Kerugian untuk Mengendalikan Kerugian
  • Pilih parameter yang munasabah dan jangan terlalu sensitif
  • Digunakan dalam kombinasi dengan indikator lain, isyarat pengesahan

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  • Mengoptimumkan parameter kitaran EMA agar lebih sesuai dengan ciri-ciri pelbagai jenis
  • Menyesuaikan sensitiviti parameter MAMA α untuk mengoptimumkan kelajuan tangkapan
  • Tambah penapis untuk indikator lain seperti MACD, RSI dan sebagainya untuk mengelakkan isyarat palsu
  • Meningkatkan strategi henti kerugian untuk mengawal risiko
  • Mengoptimumkan pengulangan dan memilih kombinasi parameter yang terbaik
  • Menambah penangguhan automatik untuk memaksimumkan keuntungan

ringkaskan

Strategi ini mengintegrasikan kelebihan kedua-dua indikator EMA dan MAMA, mampu menangkap perubahan trend secara beransur-ansur dan tepat pada masanya, merupakan strategi jenis trend yang boleh dipercayai. Dengan pengoptimuman parameter dan kawalan risiko, anda dapat meningkatkan kemenangan dan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMAMA strategy", overlay=true)
//This entire strategy is courtesy of LazyBear for programming the original EMAMA system, I simply added a strategy element to everything to round things out. 

src=input(hl2, title="Source")
fl=input(.5, title="Fast Limit")
sl=input(.05, title="Slow Limit")
sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0
dt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54)
q1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54)
i1 = nz(dt[3])
jI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54)
jq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54)
i2_ = i1 - jq
q2_ = q1 + jI
i2 = .2*i2_ + .8*nz(i2[1])
q2 = .2*q2_ + .8*nz(q2[1])
re_ = i2*nz(i2[1]) + q2*nz(q2[1])
im_ = i2*nz(q2[1]) - q2*nz(i2[1])
re = .2*re_ + .8*nz(re[1])
im = .2*im_ + .8*nz(im[1])
p1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1]))
p2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1))
p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2))
p = .2*p3 + .8*nz(p3[1])
spp = .33*p + .67*nz(spp[1])
phase = atan(q1 / i1)
dphase_ = nz(phase[1]) - phase
dphase = iff(dphase_< 1, 1, dphase_)
alpha_ = fl / dphase
alpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_))
mama = alpha*src + (1 - alpha)*nz(mama[1])
fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1])
pa=input(false, title="Mark crossover points")

plotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title="Crossover Markers")

fr=input(false, title="Fill MAMA/FAMA Region")

duml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title="DummyL")

mamal=plot(mama, title="MAMA", color=red, linewidth=2)

famal=plot(fama, title="FAMA", color=green, linewidth=2)

fill(duml, mamal, red, transp=70, title="NegativeFill")

fill(duml, famal, green, transp=70, title="PositiveFill")

ebc=input(false, title="Enable Bar colors")

bc=mama>fama?lime:red

barcolor(ebc?bc:na)

longCondition = crossover(mama, fama)
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(mama, fama)
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)