TradingVMA Strategi Dagangan Purata Bergerak Berubah

Penulis:ChaoZhang, Tarikh: 2024-02-21 11:47:43
Tag:

img

Ringkasan

Strategi TradingVMA adalah strategi perdagangan kuantitatif berdasarkan garis purata bergerak yang berubah. Ia menggunakan purata bergerak yang berubah untuk menangkap trend pasaran dan menjana isyarat perdagangan dengan sewajarnya.

Logika Strategi

Inti strategi TradingVMA adalah pengiraan purata bergerak panjang berubah-ubah (Variable Moving Average, VMA). purata bergerak adalah penunjuk teknikal yang diketahui secara meluas yang mengira harga purata dalam tempoh tertentu.

Secara khusus, strategi ini mula-mula mengira satu siri kuantiti perantaraan, seperti Indikator Pergerakan Arah Harga (PDM, MDIM), data diluruskan (PDM, MDM). Data ini akhirnya digunakan untuk mendapatkan kekuatan penunjuk (iS).

Kemudian, strategi TradingVMA secara dinamik menyesuaikan tempoh purata bergerak berdasarkan kekuatan penunjuk. Apabila turun naik pasaran meningkat, tempoh purata bergerak menjadi lebih pendek, dan sebaliknya. Ini membolehkan tindak balas yang lebih cepat terhadap perubahan pasaran.

Akhirnya, strategi ini membandingkan harga semasa dengan VMA untuk menjana isyarat perdagangan.

Analisis Kelebihan

Strategi TradingVMA mempunyai kelebihan utama berikut:

  1. Tempoh Berubah Menapis Kebisingan Lebih Tetap Tempoh purata bergerak yang berubah menyesuaikan diri dengan perubahan pasaran untuk menapis bunyi bising dan isyarat trend yang lebih stabil.

  2. Tanggapan yang lebih cepat terhadap perubahan harga meningkatkan daya tanggap Purata bergerak yang berubah dapat bertindak balas dengan cepat terhadap perubahan harga dan menangkap titik pembalikan trend.

  3. Mengurangkan Frekuensi Dagangan Kurang Overtrading - Berbanding dengan penunjuk tempoh tetap, TradingVMA boleh mengurangkan dagangan yang tidak perlu.

  4. Fleksibiliti Parameter yang boleh disesuaikan - Strategi ini membolehkan pengguna memilih parameter berdasarkan pilihan mereka untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.

Analisis Risiko

Strategi TradingVMA juga mempunyai risiko utama berikut:

  1. Kekurangan Pembalikan Cepat Apabila trend berbalik dengan cepat, purata bergerak yang sentiasa menyesuaikan diri mungkin terlambat bertindak balas.

  2. Bias Lagging Semua strategi purata bergerak mempunyai beberapa tahap bias lagging, sama ada panjang atau pendek.

  3. Isyarat yang salah TradingVMA boleh menghasilkan isyarat panjang/pendek yang salah di pasaran sisi yang terhad dalam julat.

  4. Pengoptimuman Parameter yang Sukar Mencari kombinasi parameter yang optimum boleh menjadi cabaran.

Risiko ini boleh dikawal melalui kaedah seperti stop loss, menyesuaikan kombinasi parameter, dll.

Arahan pengoptimuman

Strategi TradingVMA juga boleh ditingkatkan dalam aspek berikut:

  1. Menggabungkan Indikator Lain Menggunakan dengan trend lain, penunjuk trend boleh meningkatkan kualiti isyarat.

  2. Pengoptimuman Parameter Temui parameter optimum melalui pengujian dan pengoptimuman.

  3. Peraturan Dagangan yang Sesuai Gunakan peraturan kemasukan yang berbeza, hentikan kerugian mengikut rejim pasaran.

  4. Sistemisasi Algoritme dan sistemisasi strategi untuk pengoptimuman yang lebih mudah.

Kesimpulan

TradingVMA adalah strategi kuantitatif adaptif. Ia menangkap trend pasaran menggunakan penunjuk VMA yang direka khas, dengan kelebihan menjadi responsif dan menapis bunyi bising. Strategi ini boleh dinaik taraf dalam pelbagai cara untuk prestasi yang lebih baik. Tetapi beberapa masalah yang melekat seperti bias kelewatan mungkin berterusan. Secara keseluruhan, TradingVMA adalah strategi trend yang menjanjikan.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 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/
// © laptevmaxim92

//@version=4
strategy("Variable Moving Average Strategy", overlay=true)

src=close
l =input(5, title="VMA Length") 
std=input(true, title="Show Trend Direction Colors")

utp = input(false, "Use take profit?")
pr = input(100, "Take profit pips")
usl = input(false, "Use stop loss?")
sl = input(100, "Stop loss pips")
fromday = input(01, defval=01, minval=01, maxval=31, title="From Day")
frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month")
fromyear = input(2000, minval=1900, maxval=2100, title="From Year")
today = input(31, defval=01, minval=01, maxval=31, title="To Day")
tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month")
toyear = input(2019, minval=1900, maxval=2100, title="To Year")

use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))

k = 1.0/l
pdm = 0.0
pdm := max((src - src[1]), 0)
mdm = 0.0
mdm := max((src[1] - src), 0)
pdmS = 0.0
pdmS := ((1 - k)*nz(pdmS[1]) + k*pdm)
mdmS = 0.0
mdmS := ((1 - k)*nz(mdmS[1]) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = 0.0
pdiS := ((1 - k)*nz(pdiS[1]) + k*pdi)
mdiS = 0.0
mdiS := ((1 - k)*nz(mdiS[1]) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = 0.0
iS := ((1 - k)*nz(iS[1]) + k*d/s1)
hhv = highest(iS, l) 
llv = lowest(iS, l) 
d1 = hhv - llv
vI = (iS - llv)/d1
vma = 0.0
vma := (1 - k*vI)*nz(vma[1]) + k*vI*src
vmaC=(vma > vma[1]) ? color.lime : (vma<vma[1]) ? color.red : (vma==vma[1]) ? color.yellow : na 
plot(vma, color=std?vmaC:color.white, linewidth=3, title="VMA")

longCondition = vma > vma[1]
if (longCondition)
    strategy.entry("BUY", strategy.long and use_date)

shortCondition = vma < vma[1]
if (shortCondition)
    strategy.entry("SELL", strategy.short and use_date)

if (utp and not usl)
    strategy.exit("TP", "BUY", profit = pr)
    strategy.exit("TP", "SELL", profit = pr)
    
if (usl and not utp)
    strategy.exit("SL", "BUY", loss = sl)
    strategy.exit("SL", "SELL", loss = sl)
    
if (usl and utp)
    strategy.exit("TP/SL", "BUY", loss = sl, profit = pr)
    strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)

Lebih lanjut