Strategi Purata Bergerak Mala

Penulis:ChaoZhang, Tarikh: 2023-12-07 11:08:18
Tag:

img

Ringkasan

Mala Adaptive Moving Average Strategy adalah strategi perdagangan kuantitatif berdasarkan indikator MESA Adaptive Moving Average yang dibangunkan oleh John Ehlers. Strategi ini menggunakan gelombang sinus untuk membuat keputusan perdagangan, membeli pada paras rendah, menjual pada paras tinggi. Dengan penyesuaian bergeser parameter, gelombang sinus dapat menyesuaikan diri dengan produk dan persekitaran pasaran yang berbeza.

Logika Strategi

Strategi Mala Adaptive Moving Average menggunakan penjana gelombang sinus untuk menghasilkan isyarat perdagangan. Gelombang sinus ditentukan oleh bayangan yang dibuang pada paksi menegak oleh vektor berputar (disebut fasor). Apabila vektor berputar 360 darjah, satu kitaran diselesaikan. Isyarat membeli dihasilkan apabila vektor melewati satu sudut, dan isyarat jual apabila ia melewati sudut lain. Oleh itu, keputusan perdagangan ditakrifkan dari segi sudut dalam domain kekerapan dan bukan ciri bentuk gelombang dalam domain masa, menjadikan strategi lebih mantap di seluruh kontrak niaga hadapan dan keadaan pasaran yang berbeza.

Secara khusus, strategi pertama meluruskan dan menghalang harga, kemudian mengira dua komponen gelombang sinus: komponen dalam fasa I dan komponen kuadratura Q. Kedua-dua komponen ini ditimpakan dan disaring dengan pergeseran fasa untuk mendapatkan Re dan Im akhir. Re dan Im mencerminkan maklumat frekuensi gelombang sinus. Tempoh tempoh boleh diperolehi dari atanIm / Re. Tempoh yang halus ditentukan berdasarkan julat tempoh yang dijangkakan. Maklumat tempoh dan fasa menentukan lengkung MAMA dan FAMA, persilangan yang menghasilkan isyarat perdagangan. Parameter alpha disesuaikan secara dinamik dalam julat tertentu berdasarkan tempoh dan kadar perubahan fasa delta, yang membolehkan penunjuk menyesuaikan diri dengan perubahan dalam keadaan pasaran.

Analisis Kelebihan

Strategi purata bergerak Mala Adaptive mempunyai kelebihan berikut:

  1. Menggunakan gelombang sinus dan fasa sebagai isyarat perdagangan menjadikan strategi lebih kukuh, tidak dipengaruhi oleh ciri bentuk gelombang dalam domain masa.

  2. Kebolehsesuaian tempoh dan parameter membolehkan penyesuaian yang kuat terhadap perubahan pasaran.

  3. Kurva MAMA dan FAMA bergantung semata-mata pada ciri harga tanpa kelewatan, menangkap pembalikan trend dengan cara yang tepat.

  4. Sensitiviti strategi boleh diselaraskan melalui penyesuaian parameter agar sesuai dengan gaya perdagangan yang berbeza.

  5. Logik yang jelas dan mudah memudahkan pemahaman, pengubahsuaian dan penerapan untuk penyelidikan dan pengajaran.

Analisis Risiko

Strategi purata bergerak Mala Adaptive juga membawa risiko berikut:

  1. Bergantung pada tempoh dan fasa kurva sinus, penyelewengan harga yang tidak normal boleh menghasilkan isyarat yang salah.

  2. Batas keras yang ditetapkan dalam anggaran tempoh menyebabkan kelancaran yang tidak mencukupi dalam perubahan tempoh.

  3. Penguncian fasa dan penguncian tempoh di sekitar titik utama membawa kepada goyangan lengkung, berpotensi kehilangan kemasukan dan keluar yang optimum.

  4. Penyesuaian parameter dan lengkung berkurangan semasa turun naik pasaran yang meningkat.

  5. Sebagai penunjuk teknikal, strategi cenderung menghasilkan pecah palsu dan isyarat yang salah di sekitar tahap teknikal yang penting.

Risiko ini boleh dikurangkan melalui parameter yang lebih halus, penapisan isyarat dengan penunjuk lain, pelarasan saiz kedudukan, dll.

Arahan pengoptimuman

Strategi Purata Bergerak Mala Adaptive boleh ditingkatkan dalam aspek berikut:

  1. Meningkatkan pengiraan tempoh dan parameter untuk kelancaran semula jadi, contohnya, memperkenalkan kaedah statistik untuk pemodelan harga yang lebih baik.

  2. Menapis isyarat dengan turun naik, jumlah dan asas untuk meningkatkan ketepatan.

  3. Mengoptimumkan tetapan parameter dan kawalan slippage untuk mengurangkan kos dagangan dan meningkatkan ketahanan.

  4. Memperkenalkan pembelajaran mesin dan algoritma genetik untuk optimalisasi parameter dinamik.

  5. Membangunkan kombinasi dengan sistem trend dan pembalikan purata berdasarkan entri dan keluar yang berbeza untuk meningkatkan keuntungan.

Kesimpulan

Mala Adaptive Moving Average Strategy menggunakan analisis gelombang sinus untuk menjana isyarat perdagangan, secara automatik menyesuaikan diri dengan perubahan pasaran melalui penyesuaian parameter dinamik, menjadikannya cukup kukuh dan boleh digunakan secara meluas. Berbanding dengan strategi purata bergerak adaptif lain, ia menunjukkan kebolehpraktisan dan kestabilan yang lebih tinggi. Tetapi sebagai strategi teknikal, ia terdedah kepada isyarat yang salah di sekitar tahap teknikal yang penting, yang memerlukan penapisan dan pengoptimuman dengan alat tambahan. Dengan peningkatan berterusan, strategi ini berpotensi menjadi sistem perdagangan adaptif yang disyorkan.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun

//@version=4
strategy("自适应移动平均的MESA系统", overlay=true)

fastlimit = input(0.5,'')
slowlimit = input(0.05,'')

smooth = 0.0
detrender = 0.0
I1 = 0.0
Q1 = 0.0
JI = 0.0
JQ = 0.0
I2 = 0.0
Q2 = 0.0
Re = 0.0
Im = 0.0
period = 0.0
smoothperiod = 0.0
phase = 0.0
deltaphase = 0.0
alpha = 0.0
MAMA = 0.0
FAMA = 0.0
price = 0.0

price := (high + low)/2
PI = 2 * asin(1)

if (bar_index > 5)
	smooth := (4*price + 3*price[1] + 2*price[2] + price[3])/10
	detrender := (.0962*smooth + .5769*nz(smooth[2]) - .5769*nz(smooth[4]) - .0962*nz(smooth[6]))*(.075*nz(period[1]) + .54)

	// compute InPhase and Quadrature components
	Q1 := (.0962*detrender + .5769*nz(detrender[2]) - .5769*nz(detrender[4]) - .0962*nz(detrender[6]))*(.075*nz(period[1]) + .54)

	I1 := nz(detrender[3])

	// advance the pulse of i1 and q1 by 90 degrees
	JI := (.0962*I1 + .5769*nz(I1[2]) - .5769*nz(I1[4]) - .0962*nz(I1[6]))*(.075*nz(period[1]) + .54)
	JQ := (.0962*Q1 + .5769*nz(Q1[2]) - .5769*nz(Q1[4]) - .0962*nz(Q1[6]))*(.075*nz(period[1]) + .54)

	//phase addition for 3-bar averaging 
	I2 := I1 - JQ
	Q2 := Q1 + JI

	//smooth the i and q components before applying
	I2 := .2*I2 + .8*nz(I2[1])
	Q2 := .2*Q2 + .8*nz(Q2[1])

	// hymodyne discriminator
	Re := I2*I2[1] + Q2*nz(Q2[1])
	Im := I2*Q2[1] + Q2*nz(I2[1])
	Re := .2*Re + .8*nz(Re[1])
	Im := .2*Im + .8*nz(Im[1])

	if (Im != 0 and Re != 0)
		period := 2 * PI/atan(Im/Re)

	if (period > 1.5 * nz(period[1]))
		period := 1.5*nz(period[1])

	if (period < .67*nz(period[1]))
		period := .67*nz(period[1])

	if (period < 6)
		period := 6

	if (period > 50)
		period := 50

	period := .2*period + .8*nz(period[1])
	smoothperiod := .33*period + .67*nz(smoothperiod[1])

	if (I1 != 0)
		phase := (180/PI) * atan(Q1/I1)

	deltaphase := nz(phase[1]) - phase

	if (deltaphase < 1)
		deltaphase := 1

	alpha := fastlimit/deltaphase
	if(alpha < slowlimit)
		alpha := slowlimit

	MAMA := alpha*price + (1 - alpha)*nz(MAMA[1])
	FAMA := .5*alpha*MAMA + (1 - .5*alpha)*nz(FAMA[1])

	if (FAMA < MAMA)
		strategy.entry("Long", strategy.long)
	else
		if (FAMA > MAMA)
			strategy.entry("Short", strategy.short)


Lebih lanjut