- Carré
- Stratégie croisée zéro différence moyenne mobile
Stratégie croisée zéro différence moyenne mobile
Auteur:
ChaoZhang est là., Date: 2024-01-26 15h45:03
Les étiquettes:
Résumé
Principe de stratégie
- Calculer la différence entre le prix et la moyenne mobile actuelle
- Lorsque le diff est inférieur à 0, c'est un signal baissier. Lorsque le diff dépasse 0, c'est un signal de divergence inférieure, indiquant une hausse.
- Combinez la valeur numérique de diff pour comparer la baisse maximale au cours de la dernière semaine pour générer des signaux de trading
Analyse des avantages
- L'utilisation du système de moyenne mobile double peut filtrer efficacement les fausses percées
- Appliquer la théorie du prix minimum pour détecter les signaux de bas
- Comparaison numérique pour juger des conditions de survente et de surachat, en évitant de poursuivre les hauts et de tuer les bas
Analyse des risques
- Les stratégies de moyenne mobile doubles sont sujettes aux effets de la scie
- Un réglage raisonnable des paramètres des moyennes mobiles est essentiel
Directions d'optimisation
- Ajustez les paramètres de la moyenne mobile pour s'adapter aux différents cycles
- Combiner l'indicateur stochastique pour éviter les conditions de survente et de surachat
Résumé
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Estratégia diferença menor preço de 8")
// Configuração da Média Móvel
emaPeriod = 8
ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)
// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA
//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0
// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1)
sell_signal = diffUm and diffUnder and crossunder(diff, diff1)
// Executa as operações de compra/venda
if buy_signal
strategy.entry("Buy", strategy.long)
if sell_signal
strategy.exit("Buy")
// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)
plot(diffLow, title="Diferença", color=color.red, linewidth=2)
Plus de