Strategi Rata-rata Pergerakan Adaptif


Tanggal Pembuatan: 2023-12-07 11:08:18 Akhirnya memodifikasi: 2023-12-07 11:08:18
menyalin: 1 Jumlah klik: 450
1
fokus pada
1219
Pengikut

Strategi Rata-rata Pergerakan Adaptif

Ringkasan

Adaptive Moving Average Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada indikator MESA Adaptive Moving Average dari John Ehlers. Strategi ini menggunakan gelombang sinkron untuk membuat keputusan perdagangan, membeli di titik rendah dan menjual di titik tinggi, dengan parameter penyesuaian geser yang memungkinkan gelombang sinkron untuk beradaptasi dengan varietas dan lingkungan pasar yang berbeda.

Prinsip Strategi

Strategi Moving Average Adaptive menggunakan generator gelombang sinkron untuk menghasilkan sinyal perdagangan. Gelombang sinkron ditentukan oleh bayangan yang dilemparkan oleh vektor yang berputar (yang disebut faktor) pada sumbu vertikal. Ketika vektor berputar 360 derajat, siklus selesai.

Secara khusus, strategi ini pertama-tama melakukan smooth and de-trending pada harga, kemudian menghitung dua frekuensi gelombang positif: frekuensi identik I dan frekuensi transversal Q. Kedua frekuensi ini ditumpuk dan dilompati dengan pergeseran fase. Re dan Im. Re dan Im mencerminkan informasi frekuensi gelombang positif, yang dapat diekstraksi melalui period period.

Analisis Keunggulan

Adaptasi strategi moving average memiliki keuntungan sebagai berikut:

  1. Menggunakan gelombang sinusoidal dan fase sebagai sinyal perdagangan, membuat strategi lebih robust dan tidak terpengaruh oleh bentuk gelombang zona waktu.

  2. Siklus dan parameter dapat secara dinamis disesuaikan dengan perubahan pasar, memiliki kemampuan beradaptasi yang sangat kuat.

  3. Kurva MAMA dan FAMA hanya bergantung pada karakteristik harga itu sendiri, tanpa lag, dan dapat menangkap konversi tren tepat waktu.

  4. Dengan pengaturan parameter, sensitivitas strategi dapat disesuaikan untuk pedagang dengan gaya yang berbeda.

  5. Strategi logis yang jelas dan sederhana, mudah dipahami dan dimodifikasi, cocok untuk penelitian dan pengajaran.

Analisis risiko

Ada juga risiko dari strategi moving average adaptif:

  1. Karena bergantung pada siklus dan fase kurva sinkron, sinyal yang salah akan dihasilkan ketika harga mengalami distorsi yang tidak normal.

  2. Pada perhitungan siklus, batas-batas kekakuan ditetapkan, yang membuat perubahan siklus tidak cukup halus.

  3. Efek cellular dari posisi dan siklus membuat kurva bergoyang di dekat titik-titik penting, dan mungkin melewatkan Entries dan Exits terbaik.

  4. Ketika pasar bergejolak, parameter dan kemampuan kurva untuk beradaptasi menurun.

  5. Sebagai indikator teknis, strategi ini mudah untuk membuat terobosan palsu dan sinyal yang salah di lokasi teknis yang penting.

Risiko-risiko ini dapat diatasi dengan pengaturan parameter yang lebih halus, penyaringan dalam kombinasi dengan indikator lain, dan penyesuaian skala kepemilikan.

Arah optimasi

Adaptasi strategi moving average dapat dioptimalkan dalam beberapa hal:

  1. Peningkatan metode perhitungan siklus dan parameter, sehingga perubahannya lebih halus dan alami. Misalnya, metode statistik dapat diperkenalkan untuk pemodelan harga yang lebih baik.

  2. Filter sinyal dengan indikator seperti oscillasi, lalu lintas, dan lain-lain untuk meningkatkan akurasi. Anda juga dapat menggabungkan keandalan sinyal dengan pemahaman dasar.

  3. Optimalkan pengaturan parameter dan kontrol titik geser, mengurangi biaya transaksi, dan meningkatkan stabilitas sistem.

  4. Memperkenalkan metode seperti pembelajaran mesin dan algoritma genetik untuk mengoptimalkan parameter secara dinamis, sehingga parameter sistem terus berevolusi dan diperbarui.

  5. Mengatur Entries dan Exits yang berbeda, menggabungkan tren dan sistem reversal, membangun portofolio, meningkatkan profitabilitas berkelanjutan.

Meringkaskan

Adaptive Moving Average Strategi menggunakan analisa gelombang sinkron untuk menghasilkan sinyal perdagangan, dengan parameter penyesuaian dinamis yang memungkinkan sistem untuk beradaptasi secara mandiri dengan perubahan lingkungan pasar, memiliki robustitas yang lebih kuat dan penerapan yang lebih luas. Dibandingkan dengan strategi Adaptive Moving Average lainnya, ini memiliki realisme dan stabilitas yang lebih tinggi.

Kode Sumber Strategi
/*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)