Tren Mengikuti Strategi Berdasarkan Garis MA

Penulis:ChaoZhang, Tanggal: 2024-02-22 17:24:02
Tag:

img

Gambaran umum

Strategi ini menghitung moving average (MA) dari periode yang berbeda untuk menentukan arah tren pasar.

Prinsip Strategi

  1. Menghitung PEM 20 periode, 60 periode dan 120 periode
  2. Bandingkan hubungan besar antara MA20, MA60 dan MA120 untuk menentukan arah tren saat ini
    • Jika MA20>MA60>MA120, menilai tren naik
    • Jika MA20
  3. Pergi panjang ketika MA20 melintasi MA60, dan pergi pendek ketika MA20 melintasi di bawah MA60
  4. Menggunakan MA60 sebagai garis referensi untuk mengambil keuntungan dan stop loss
    • Ambil garis keuntungan untuk posisi panjang adalah 3 kali dari MA60
    • Ambil garis keuntungan untuk posisi pendek adalah 0,9 kali MA60

Analisis Keuntungan

  1. Gunakan kombinasi MA dari periode yang berbeda untuk menentukan tren untuk menghindari whipsaws
  2. Hanya masuk pada titik pembalikan tren untuk meningkatkan tingkat kemenangan
  3. Memiliki aturan yang jelas untuk mengambil keuntungan dan menghentikan kerugian untuk mengurangi risiko

Analisis Risiko

  1. Di pasar yang terikat rentang, MA crossover dapat terjadi sering, menyebabkan perdagangan yang terlalu sering
  2. Parameter untuk mengambil keuntungan dan stop loss perlu dioptimalkan, jika tidak posisi dapat dihentikan terlalu dini atau mengambil keuntungan tidak cukup

Arahan Optimasi

  1. Menambahkan indikator untuk mengidentifikasi pasar yang terikat jangkauan untuk menghindari overtrading
  2. Mengoptimalkan kombinasi periode MA untuk menemukan parameter terbaik
  3. Uji dan optimalkan mengambil keuntungan dan stop loss koefisien untuk menyeimbangkan memaksimalkan pengembalian dan meminimalkan risiko

Ringkasan

Strategi ini memiliki logika yang jelas menggunakan MAs untuk menentukan tren. Setelah optimasi parameter dan optimasi indikator, itu bisa menjadi tren yang sangat praktis mengikuti strategi.


/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MA60上多下空", overlay=true)

// 计算MA20/60/120
ma20 = ta.sma(close, 20)
ma60 = ta.sma(close, 60)
ma120 = ta.sma(close, 120)

// 判断MA的趋势
maUpTrend = ma20 > ma60 and ma60 > ma120
maDownTrend = ma20 < ma60 and ma60 < ma120

// 画竖直线标记MA趋势转折点
plotshape(maUpTrend and ta.crossover(ma20, ma60), style=shape.triangledown, location=location.abovebar, color=color.green, size=size.small)
plotshape(maDownTrend and ta.crossunder(ma20, ma60), style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)

// 画背景标记MA趋势
bgcolor(maUpTrend ? color.new(color.green, 90) : na)
bgcolor(maDownTrend ? color.new(color.red, 90) : na)

// 建立多头仓位的条件
longCondition = ta.crossover(close, ma60)

// 建立空头仓位的条件
shortCondition = ta.crossunder(close, ma60)

// 在穿过MA60时,根据条件建立相应的多头或空头仓位
if (longCondition)
    strategy.entry("Long", strategy.long)

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

// 止盈止损规则
calculateReturns() =>
    close / strategy.position_avg_price - 1

takeProfitCondition = calculateReturns() >= 3  // 仓位盈利达到300%
stopLossCondition = calculateReturns() <= -0.1  // 仓位亏损达到10%

if (takeProfitCondition)
    strategy.close("Long", comment="Take Profit")
    strategy.close("Short", comment="Take Profit")

if (stopLossCondition)
    strategy.close("Long", comment="Stop Loss")
    strategy.close("Short", comment="Stop Loss")


Lebih banyak