Harga Menembus Moving Average Trend Mengikuti Strategi

Penulis:ChaoZhangTanggal: 2024-01-26 15:18:29
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal beli dan jual berdasarkan penyeberangan harga dengan rata-rata bergerak. Ini menyediakan berbagai jenis rata-rata bergerak dan parameter toleransi untuk menyaring kegagalan palsu. Strategi ini bertujuan untuk menangkap titik balik dalam tren harga untuk mengikuti tren.

Logika Strategi

Strategi ini menghitung panjang N moving average berdasarkan harga penutupan. Jenis rata-rata bergerak khas termasuk Simple Moving Average (SMA), Exponential Moving Average (EMA), Weighted Moving Average (WMA) dll. Kemudian tingkat toleransi ditetapkan, misalnya 5%, dan band atas (1.05 kali rata-rata bergerak) dan band bawah (0.95 kali rata-rata bergerak) dihitung. Ketika harga penutupan melintasi band atas, sinyal beli dihasilkan. Ketika harga penutupan melintasi band bawah, sinyal jual dihasilkan. Ini membantu menyaring beberapa breakout palsu.

Keuntungan

  • Mengikuti tren harga secara efektif dengan menggunakan trend rata-rata bergerak
  • Menyediakan berbagai jenis rata-rata bergerak untuk kombinasi fleksibel
  • Parameter toleransi membantu menyaring kegagalan palsu dan menghindari perdagangan yang tidak perlu
  • Hanya bisa short, cocok untuk menangkap tren menurun

Risiko

  • Rata-rata bergerak memiliki efek keterlambatan, mungkin melewatkan titik balik harga
  • Tidak cocok untuk lingkungan pasar yang terikat rentang
  • Pengaturan parameter toleransi yang tidak benar dapat menyaring sinyal yang valid
  • Berjalan pendek memiliki risiko yang lebih tinggi, perlu operasi yang bijaksana

Arahan Optimasi

  • Mengoptimalkan jenis rata-rata bergerak dan panjang parameter
  • Uji pengaturan parameter toleransi yang berbeda
  • Tambahkan indikator lain ke sinyal filter
  • Menggunakan strategi ukuran posisi

Kesimpulan

Secara keseluruhan ini adalah strategi trend berikut yang khas. Ini menggunakan hubungan antara harga dan moving average untuk menentukan tren, dengan beberapa fleksibilitas. Melalui optimasi parameter dan penyaringan sinyal yang tepat, ini bisa menjadi strategi kuantitas yang layak. Tetapi mengendalikan risiko penurunan saat shorting penting untuk menghindari kerugian yang 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 banyak