Cette stratégie est conçue sur la base de la croix d'or et de la croix de la mort des moyennes mobiles doubles. Il va long lorsque la moyenne mobile à court terme traverse au-dessus de la moyenne mobile à long terme, et ferme la position lorsque la moyenne mobile à court terme traverse au-dessous de la moyenne mobile à long terme.
La stratégie est principalement basée sur les indicateurs sma (close, 14) et sma (close, 28).
Définissez d'abord les moyennes mobiles courtes et longues:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Ensuite, déterminez l'entrée et la sortie en fonction de la croix d'or et de la croix de la mort:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Passer à long lorsque la courte MA croise la longue MA:
strategy.entry("Buy", strategy.long, when = longCondition)
Position de clôture lorsque le MA court passe sous le MA long:
strategy.close_all(when = shortCondition)
La logique est simple et claire, en utilisant les croisements de MAs doubles pour déterminer les entrées et les sorties.
La stratégie peut être optimisée dans les aspects suivants:
Testez différentes périodes d'AM courtes et longues, telles que (5, 10), (10, 20), (20, 60) etc. pour trouver la combinaison optimale.
Ajoutez des filtres tels que le volume des transactions, l'écart de prix, etc. près des croisements MA pour éviter des transactions excessives sur différents marchés.
Le prix de l'opération est calculé en fonction de la valeur de l'opération.
Ajoutez des indicateurs auxiliaires tels que MACD, KDJ, etc. pour améliorer les performances de la stratégie.
Trouvez de meilleurs points d'entrée près des MA au lieu d'entrer directement au croisement.
La stratégie de double MA est simple à utiliser pour les débutants. Mais elle est sensible aux fluctuations du marché et présente des risques de pertes. Nous pouvons l'améliorer en optimisant les paramètres, en ajoutant des filtres, en incorporant un stop loss, en combinant d'autres indicateurs, etc. Elle peut bien fonctionner dans des tendances fortes, mais doit être utilisée avec prudence ou un stop loss approprié dans les marchés en évolution.
Je ne sais pas.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25) minGainPercent = input(0.6) gainMultiplier = minGainPercent * 0.01 + 1 longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) avg_protection = input(1) gain_protection = input(1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))