Harga Melalui Moving Average Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-26 15:18:29
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat beli dan jual berdasarkan penyeberangan harga dengan purata bergerak. Ia menyediakan pelbagai jenis purata bergerak dan parameter toleransi untuk menapis pecah palsu. Strategi ini bertujuan untuk menangkap titik perubahan dalam trend harga untuk trend berikut.

Logika Strategi

Strategi ini mengira purata bergerak panjang N berdasarkan harga penutupan. Jenis purata bergerak biasa termasuk purata bergerak mudah (SMA), purata bergerak eksponen (EMA), purata bergerak bertimbang (WMA) dan lain-lain. Kemudian tahap toleransi ditetapkan, contohnya 5%, dan jalur atas (1.05 kali purata bergerak) dan jalur bawah (0.95 kali purata bergerak) dikira. Apabila harga penutupan melintasi jalur atas, isyarat beli dihasilkan. Apabila harga penutupan melintasi jalur bawah, isyarat jual dihasilkan. Ini membantu menapis beberapa pecah palsu. Juga, parameter Boolean Short Only disediakan. Apabila diaktifkan, hanya isyarat jual dihasilkan untuk memendekkan pasaran.

Kelebihan

  • Mengikuti trend harga dengan berkesan menggunakan trend purata bergeraks berikut ciri
  • Menyediakan pelbagai jenis purata bergerak untuk kombinasi fleksibel
  • Parameter toleransi membantu menapis pecah palsu dan mengelakkan perdagangan yang tidak perlu
  • Boleh pergi pendek sahaja, sesuai untuk menangkap trend ke bawah

Risiko

  • Purata bergerak mempunyai kesan kelewatan, mungkin terlepas titik perubahan harga
  • Tidak sesuai untuk persekitaran pasaran yang terhad kepada julat
  • Tetapan parameter toleransi yang tidak betul boleh menapis isyarat yang sah
  • Membeli-belah mempunyai risiko yang lebih tinggi, memerlukan operasi yang berhati-hati

Arahan pengoptimuman

  • Mengoptimumkan parameter jenis dan panjang purata bergerak
  • Uji tetapan parameter toleransi yang berbeza
  • Tambah penunjuk lain kepada isyarat penapis
  • Menggunakan strategi saiz kedudukan

Kesimpulan

Secara keseluruhan, ini adalah strategi trend berikut yang tipikal. Ia menggunakan hubungan antara harga dan purata bergerak untuk menentukan trend, dengan beberapa fleksibiliti. Melalui pengoptimuman parameter dan penapisan isyarat yang betul, ia boleh menjadi strategi kuant yang baik. Tetapi mengawal risiko penurunan semasa pendek adalah penting untuk mengelakkan kerugian berlebihan.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
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/
// © RafaelPiccolo

//@version=4
strategy("Price X MA Cross", overlay=true)

typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len = input(100, minval=1, title="Length")
src = input(close, "Source", type=input.source)
tol = input(0, minval=0, title="Tolerance (%)", type=input.float)
shortOnly = input(false, "Short only")

tema(src, len)=>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    ema3 = ema(ema2, len)
    return = 3 * (ema1 - ema2) + ema3

getMAPoint(type, len, src)=>
    return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)

ma = getMAPoint(typ, len, src)
upperTol = ma * (1 + tol/100)
lowerTol = ma * (1 - tol/100)

longCondition = crossover(close, upperTol)
shortCondition = crossunder(close, lowerTol)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longCondition)
    if (shortOnly)
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long)

plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2)
t1 = plot(tol > 0 ? upperTol : na, transp = 70)
t2 = plot(tol > 0 ? lowerTol : na, transp = 70)
fill(t1, t2, color = tol > 0 ? color.blue : na)


Lebih lanjut