
Cette stratégie s’appelle la stratégie d’arrêt de perte orientée vers l’achat d’un stop-loss à basse volatilité. Elle utilise le croisement d’une moyenne mobile comme signal d’achat, combiné à un stop-loss pour verrouiller les gains, et s’applique aux devises de basse volatilité.
La stratégie utilise des moyennes mobiles de 3 périodes différentes: 50 périodes, 100 périodes et 200 périodes. La logique de l’achat est la suivante: lorsque la ligne de 50 périodes traverse la ligne de 100 périodes et que la ligne de 100 périodes traverse la ligne de 200 périodes, faites une entrée supplémentaire.
Ce signal indique que le marché est en train de franchir la zone de basse volatilité et de commencer à entrer dans un état de tendance. Une hausse rapide de 50 cycles représente une augmentation soudaine des forces internes à court terme et commence à entraîner la ligne moyenne longue vers le haut; La ligne de 100 cycles commence également à monter pour indiquer que les forces intermédiaires se joignent et se stabilisent à la hausse.
Après l’entrée, la stratégie utilise un stop-loss pour bloquer les bénéfices. Le stop-loss est fixé à 8% du prix d’entrée et la ligne de stop-loss à 4% du prix d’entrée. La mise en place d’un stop-loss plus grand que le stop-loss favorise le profit sur les pertes et assure la rentabilité globale de la stratégie.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
La réponse:
Cette stratégie peut être optimisée dans les domaines suivants:
Dans l’ensemble, la stratégie fonctionne de manière logique, avec une configuration de cycles de moyenne mobile et de stop loss pour obtenir des gains à faible risque. Elle peut être appliquée de manière flexible pour les transactions quantifiées.
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))
//Entry
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)
//Exit
longStopPrice = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)
strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())
//PLOT
plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)