
La stratégie de croisement bi-équilibré est une stratégie de trading classique de suivi de la tendance. La stratégie utilise deux moyennes mobiles, l’une étant une moyenne mobile rapide et l’autre une moyenne mobile lente. Lorsqu’une moyenne mobile rapide traverse la moyenne mobile lente de haut en bas, elle est appelée “cross-gold”, indiquant qu’une tendance à la hausse peut se former, au cours de laquelle de plus grandes positions sont ouvertes.
Le cœur de la stratégie est d’utiliser les caractéristiques de tendance et les signaux de croisement des moyennes mobiles pour déterminer la direction de la tendance et le moment d’ouvrir une position. Tout d’abord, définissez les périodes de moyennes mobiles rapides (par défaut 50) et de moyennes mobiles lentes (par défaut 200) par paramètres, et choisissez d’utiliser une SMA ou une EMA.
La stratégie de croisement bi-équilibré est une stratégie de suivi de tendance simple et classique qui permet de déterminer la direction de la tendance et le moment de la clôture d’une position en croisant deux moyennes mobiles de différentes périodes. Cependant, les paramètres fixes peuvent être instables dans un environnement de marché changeant et nécessitent des améliorations supplémentaires, telles que l’optimisation des paramètres, l’amélioration des arrêts de perte, l’introduction de signaux, etc.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)
//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length")
maSlowLength = input(200, title="Quick MA Length")
useSma = input(true, title="Use SMA? If false, EMA is used.")
maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)
stop_loss_percentage = input(2.0, title="Stop Loss (%)")
var float longStopLevel = na
var float shortStopLevel = na
bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross = ta.crossunder(maQuick, maSlow)
//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------
if(strategy.position_size == 0)
// Golden cross, enter a long position
if(isGoldenCross)
strategy.entry("Buy", strategy.long)
longStopLevel := close - close * stop_loss_percentage/100.0
strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
// Death cross, enter short position
else if(isDeathCross)
strategy.entry("Sell", strategy.short)
shortStopLevel := close + close * stop_loss_percentage/100.0
strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)
//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
// Close long position on death cross
if(strategy.position_size > 0 and isDeathCross)
strategy.close("Buy")
// Close short position on golden cross
else if(strategy.position_size < 0 and isGoldenCross)
strategy.close("Sell")
//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)