
Cette stratégie utilise des signaux de forme de prix de rupture de résistance et un mécanisme de contrôle du risque de rupture de la boucle. Il fait plus de positions après la rupture de la résistance et vide les positions après la rupture du support.
La stratégie est basée sur les points suivants:
Utilisez la moyenne pour déterminer la direction de la tendance. La stratégie consiste à définir une moyenne rapide et lente, une courbe lente sur la courbe rapide représentant une hausse sur la longue et une baisse sur la longue.
Le signal de rupture de la résistance est un signal de rupture de la résistance. Lorsque la hausse des prix dépasse le sommet récent, il est considéré comme un signal de rupture de la résistance et fait une entrée supplémentaire.
Le support est considéré comme un signal de rupture du support lorsque la baisse du prix atteint un niveau plus bas que celui du cours récent.
Il est possible de mettre en place un stop loss circulaire. Il est possible de mettre en place un stop loss après l’entrée et de l’ajuster en fonction de la fluctuation des prix pour que le stop loss fonctionne autour du prix.
Le stop loss et le stop exit permettent de contrôler efficacement le risque et le stop stop exit permet de verrouiller le profit.
Plus précisément, la stratégie utilise la moyenne des prix élevés et bas comme source de prix, calculant l’EMA rapide pour juger de la direction de la tendance. Faire plus lorsque la ligne rapide traverse la ligne lente et un signal de rupture de résistance, faire moins lorsque la ligne rapide traverse la ligne lente et un signal de rupture de soutien.
Cette stratégie présente les avantages suivants:
La stabilité des bénéfices. Opération de suivi de la tendance, permettant de réaliser des bénéfices dans les tendances de longue ligne au niveau de l’indice.
Le risque est bien maîtrisé. Le cycle de suspension et d’arrêt est mis en place, ce qui permet d’arrêter les pertes en temps opportun.
Le signal est précis. Le point de résistance est dépassé et le point de support est dépassé. Le signal est précis et fiable.
L’utilisation est simple. Les règles de l’indicateur et du signal sont simples et claires, et la configuration des paramètres est simple.
Adapté au marché. Il peut fonctionner avec différentes variétés et dans toutes les conditions du marché.
Cette stratégie comporte également des risques à prendre en compte:
Risque d’échec de la rupture. Après la rupture du support de résistance, il peut y avoir un réajustement et une nouvelle tentative, entraînant un arrêt.
Risque d’optimisation des paramètres. Une mauvaise configuration des paramètres peut entraîner des signaux fréquents ou insuffisants. Le processus d’optimisation doit être prudent.
Risque de défaillance de l’indicateur. Dans des circonstances exceptionnelles, l’indicateur EMA peut être défaillant ou retardé.
Le risque de renversement de la tendance. Les pertes peuvent être accrues lorsque le cours du courtage est différent du marché.
Ces risques peuvent être largement maîtrisés et atténués par des méthodes telles que l’optimisation des paramètres, la tolérance appropriée et le strict respect des signaux.
Cette stratégie peut être optimisée dans les domaines suivants:
Optimisation des cycles temporels. Ajustement des paramètres des cycles temporels pour calculer la moyenne et la forme des prix, afin de trouver la combinaison optimale.
Optimisation de l’adaptation des variétés. Adaptation des paramètres en fonction des caractéristiques des différentes variétés.
Optimisation de la stratégie de stop loss. Utilisation de méthodes de stop loss plus stables et précises, telles que le stop loss mobile, le stop loss oscillant, etc.
Optimisation de la stratégie de stop-loss. Configurer un stop-loss mobile ou un stop-loss indexé pour maximiser les profits.
Ajout de conditions de filtrage telles que le volume de transactions, la volatilité et l’exclusion des fausses ruptures.
Renforcer le signal d’entrée. Ajouter plus d’indicateurs ou de formes comme confirmation du signal d’entrée.
La stratégie fonctionne globalement sans heurts, les idées centrales sont claires, avec une forte stabilité et la capacité de rentabilité. Le contrôle des risques et l’application des indicateurs sont également appropriés, c’est une stratégie de catégorisation de rupture qui vaut la peine d’être utilisée. L’optimisation ultérieure des paramètres et des modules peut rendre la stratégie plus complète et s’adapter à plus de variétés et à un environnement de marché complexe.
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje
//@version=4
strategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)
src = input(hl2, "Price source")
order_direction = input("Both", "Order direction", options=["Both", "Long", "Short"])
// EMA calculation and plot
ema_long_period = input(80, "EMA long period")
ema_short_period = input(8, "EMA short period")
ema_long = ema(src, ema_long_period)
ema_short = ema(src, ema_short_period)
ema_bull = ema_short > ema_long
ema_bear = ema_short < ema_long
plot(ema_long, "EMA long", ema_bull ? color.green : color.red, 3)
plot(ema_short, "EMA short", ema_bull ? color.green : color.red, 3)
// Settings
risk_reward_ratio = input(2.0, "Risk to reward ratio", minval=1.0, step=0.1)
stop_lookback = input(3, "Stoploss candle lookback", minval=1)
ema_cross_stop = input(true, "Close if EMA crosses in oposite direction")
allow_retracing = input(true, "Allow price retracing")
// RCP calculation
rcp_bull = low[0] < low[1] and low[0] < low[2] and close[0] > close[1]
rcp_bear = high[0] > high[1] and high[0] > high[2] and close[0] < close[1]
// Order placement
in_market = strategy.position_size != 0
long_condition = rcp_bull and ema_bull and not in_market and order_direction != "Short"
short_condition = rcp_bear and ema_bear and not in_market and order_direction != "Long"
bought = strategy.position_size[0] > strategy.position_size[1] and strategy.position_size[1] == 0
sold = strategy.position_size[0] < strategy.position_size[1] and strategy.position_size[1] == 0
closed = not in_market and in_market[1]
long_position = strategy.position_size > 0
short_position = strategy.position_size < 0
buy_price = high + syminfo.mintick
sell_price = low - syminfo.mintick
if long_condition
strategy.entry("Long", true, stop=buy_price)
if short_condition
strategy.entry("Short", false, stop=sell_price)
if allow_retracing
better_price_long = barssince(closed) > barssince(long_condition) and barssince(long_condition) >= 1 and not in_market and ema_bull and buy_price < valuewhen(long_condition, buy_price, 0) and buy_price[0] < buy_price[1]
if better_price_long
strategy.cancel("Long")
strategy.entry("Long", true, stop=buy_price)
better_price_short = barssince(closed) > barssince(short_condition) and barssince(short_condition) >= 1 and not in_market and ema_bear and sell_price > valuewhen(short_condition, sell_price, 0) and sell_price[0] > sell_price[1]
if better_price_short
strategy.cancel("Short")
strategy.entry("Short", false, stop=sell_price)
// Stoploss orders
stop_price = long_position ? valuewhen(bought, lowest(stop_lookback)[1] - syminfo.mintick, 0) : short_position ? valuewhen(sold, highest(3)[1] + syminfo.mintick, 0) : na
stop_comment = "Stoploss triggered"
strategy.close("Long", low <= stop_price, stop_comment)
strategy.close("Short", high >= stop_price, stop_comment)
plot(stop_price, "Stop price", color.red, 2, plot.style_linebr)
// EMA cross close orders
if ema_cross_stop
if long_position and ema_bear
strategy.close("Long", comment=stop_comment)
if short_position and ema_bull
strategy.close("Short", comment=stop_comment)
// Take profit orders
stop_ticks = abs(strategy.position_avg_price - stop_price)
take_profit_price = long_position ? valuewhen(bought, strategy.position_avg_price + stop_ticks * risk_reward_ratio, 0) : short_position ? valuewhen(sold, strategy.position_avg_price - (stop_ticks * risk_reward_ratio), 0) : na
target_comment = "Take profit"
strategy.close("Long", high >= take_profit_price, target_comment)
strategy.close("Short", low <= take_profit_price, target_comment)
plot(take_profit_price, "Target price", color.green, 2, plot.style_linebr)