Strategi mengikuti tren berdasarkan garis MA


Tanggal Pembuatan: 2024-02-22 17:24:02 Akhirnya memodifikasi: 2024-02-22 17:24:02
menyalin: 0 Jumlah klik: 589
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan garis MA

Ringkasan

Strategi ini digunakan untuk menentukan arah tren pasar dengan menghitung moving average MA dari berbagai periode, melakukan over jika tren naik, melakukan shorting jika tren turun, dan melakukan pelacakan tren.

Prinsip Strategi

  1. Hitung garis MA 20 siklus, 60 siklus, dan 120 siklus
  2. Bandingkan hubungan ukuran MA20, MA60 dan MA120 untuk menentukan arah tren saat ini
    • Jika MA20>MA60>MA120, pertimbangkan sebagai tren naik
    • Jika MA20
  3. Investasi di atas MA20 dengan MA60 dan investasi di bawah MA20 dengan MA60
  4. Dengan MA60 sebagai referensi stop loss
    • 3 kali lipat dari MA60
    • Baterai bertiup 0,9 kali lipat dari MA60

Analisis Keunggulan

  1. Menggunakan kombinasi MA dari periode yang berbeda untuk menilai tren, menghindari whipsaws
  2. Hanya masuk di titik balik tren, meningkatkan peluang menang
  3. Ada aturan stop loss yang jelas untuk mengurangi risiko

Analisis risiko

  1. Dalam situasi yang bergejolak, garis-garis MA dapat sering berselisih, yang menyebabkan perdagangan yang terlalu sering
  2. Parameter stop loss perlu dioptimalkan, jika tidak, mungkin stop loss terlalu dini atau stop loss tidak mencukupi

Arah optimasi

  1. Meningkatkan Indikator untuk menilai Kondisi Guncangan, Menghindari Seringnya Perdagangan di Pasar Guncangan
  2. Mengoptimalkan kombinasi parameter siklus MA untuk menemukan parameter optimal
  3. Uji dan optimalkan stop loss untuk memastikan keseimbangan antara memaksimalkan keuntungan dan mengurangi risiko

Meringkaskan

Strategi ini memiliki ide yang jelas, menggunakan MA untuk menilai tren yang sangat klasik, setelah optimasi parameter dan optimasi indikator, dapat menjadi strategi pelacakan tren yang sangat praktis.

Kode Sumber 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")