Strategi mengikut arah aliran berdasarkan garisan MA


Tarikh penciptaan: 2024-02-22 17:24:02 Akhirnya diubah suai: 2024-02-22 17:24:02
Salin: 0 Bilangan klik: 589
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan garisan MA

Gambaran keseluruhan

Strategi ini menilai arah trend pasaran dengan mengira purata bergerak MA dari pelbagai kitaran, melakukan over apabila trend naik, melakukan blanja apabila trend turun, dan mencapai trend tracking.

Prinsip Strategi

  1. Hitung garis MA 20 kitaran, 60 kitaran dan 120 kitaran
  2. Bandingkan hubungan saiz MA20, MA60 dan MA120 untuk menentukan arah trend semasa
    • Jika MA20>MA60>MA120, maka ia adalah trend ke atas.
    • Jika MA20
  3. Melabur lebih banyak apabila memakai MA60 pada MA20 dan berkurangan apabila memakai MA60 di bawah MA20
  4. Dengan MA60 sebagai rujukan stop loss
    • 3 kali ganda daripada MA60
    • 0.9 kali lebih besar daripada MA60

Analisis kelebihan

  1. Menggunakan kombinasi MA dari pelbagai kitaran untuk menilai trend, mengelakkan whipsaws
  2. Hanya masuk pada titik perubahan trend, meningkatkan peluang kemenangan
  3. Terdapat peraturan yang jelas untuk mengurangkan risiko.

Analisis risiko

  1. Dalam keadaan yang tidak menentu, garis MA mungkin sering bercampur, menyebabkan perdagangan yang terlalu kerap
  2. Parameter hentian hentian perlu dioptimumkan, jika tidak, mungkin hentian terlalu awal atau tidak mencukupi

Arah pengoptimuman

  1. Meningkatkan Indeks Keadaan Bergolak, Mengelakkan Perdagangan Bergolak
  2. Mengoptimumkan kombinasi parameter kitaran MA untuk mencari parameter terbaik
  3. Uji dan optimumkan faktor stop loss untuk memastikan keseimbangan antara pengoptimuman keuntungan dan pengurangan risiko

ringkaskan

Strategi ini mempunyai pemikiran yang jelas, menggunakan MA untuk menilai trend sangat klasik, dan selepas pengoptimuman parameter dan pengoptimuman indikator, ia boleh menjadi strategi pengesanan trend yang sangat praktikal.

Kod 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")