
Il s’agit d’une stratégie de trading auto-adaptative basée sur des signaux de croisement bi-homogénéisés. La stratégie utilise une moyenne mobile simple (SMA) de 14 cycles et 28 cycles pour générer des signaux de trading, et combine des mécanismes de stop loss et de stop loss réglables, permettant une gestion équilibrée des risques et des gains. La stratégie utilise une méthode de gestion de fonds fixes, avec un capital initial de 2000 et un investissement de 200 par transaction.
La logique centrale de la stratégie est basée sur la relation croisée entre deux moyennes mobiles simples de différentes périodes. Un signal de multiplication est généré lorsque la moyenne à court terme (de 14 cycles) traverse la moyenne à long terme (de 28 cycles) vers le haut; un signal de rupture est généré lorsque la moyenne à court terme (de 14 cycles) traverse la moyenne à long terme vers le bas.
Il s’agit d’une stratégie de négociation structurée avec clarté et rigueur logique. La fourniture de signaux de négociation par croisement bi-homogène, associée à un mécanisme d’arrêt-stop adaptatif, permet la capture d’opportunités de négociation et la maîtrise des risques. Bien qu’il existe un certain espace d’optimisation de la stratégie, la conception globale est conforme aux principes fondamentaux du trading quantifié.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('My Custom Strategy', overlay = true)
// Parámetros de las SMAs (Medias Móviles Simples)
sma14 = ta.sma(close, 14)
sma28 = ta.sma(close, 28)
// Stop Loss y Take Profit configurables
stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1)
take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1)
// Cálculo de stop loss y take profit
stop_loss = close * (1 - stop_loss_percent / 100)
take_profit = close * (1 + take_profit_percent / 100)
// Condiciones de entrada para compra (long)
longCondition = ta.crossover(sma14, sma28)
if (longCondition)
strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit)
plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY")
// Condiciones de entrada para venta (short)
shortCondition = ta.crossunder(sma14, sma28)
if (shortCondition)
strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit)
plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL")
// Visualización de las SMAs en el gráfico
plot(sma14, color=color.blue, title="SMA 14")
plot(sma28, color=color.red, title="SMA 28")