Tendance suivant la stratégie basée sur les lignes MA

Auteur:ChaoZhang est là., Date: 2024-02-22 17:24:02 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie calcule les moyennes mobiles (MA) de différentes périodes pour déterminer la direction de la tendance du marché.

Principe de stratégie

  1. Calculer les MAs à 20 périodes, à 60 périodes et à 120 périodes
  2. Comparez la relation de grandeur entre MA20, MA60 et MA120 pour déterminer la direction actuelle de la tendance
    • Si MA20>MA60>MA120, jugez la tendance à la hausse
    • Si MA20
  3. Passer à long lorsque le MA20 dépasse le MA60 et à court lorsque le MA20 dépasse le MA60
  4. Utiliser le MA60 comme ligne de référence pour les prises de bénéfices et les arrêts de pertes
    • La ligne de prise de profit pour la position longue est 3 fois la MA60
    • La ligne de prise de profit pour la position courte est de 0,9 fois MA60

Analyse des avantages

  1. Utilisez des combinaisons de MA de différentes périodes pour déterminer la tendance afin d'éviter les fléchettes
  2. N' entrez qu' à des moments de renversement de tendance pour augmenter le taux de gain.
  3. Avoir des règles claires pour prendre des bénéfices et arrêter les pertes pour réduire les risques

Analyse des risques

  1. Dans les marchés à plage, les croisements de MA peuvent se produire fréquemment, ce qui entraîne une négociation trop fréquente
  2. Les paramètres de prise de profit et de stop loss doivent être optimisés, sinon la position peut être arrêtée prématurément ou la prise de profit n'est pas suffisante

Directions d'optimisation

  1. Ajout d'indicateurs pour identifier les marchés à fourchette afin d'éviter une survente
  2. Optimiser les combinaisons de périodes de MA pour trouver les meilleurs paramètres
  3. Testez et optimisez les coefficients de prise de profit et de stop loss pour équilibrer la maximisation des rendements et la minimisation des risques

Résumé

La stratégie a une logique claire de l'utilisation de MAs pour déterminer les tendances.


/*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")


Plus de