Cette stratégie consiste à négocier sur la base de schémas de prix qui forment les mêmes niveaux haut/bas.
La logique est la suivante:
Identifier la barre haute/basse actuelle ou antérieure égale à la barre haute/basse 2 barres plus tôt
Le double motif de fond déclenche long sur faible rupture
Le double top déclenche le short sur le breakout élevé
Le montant de l'obligation de crédit est calculé en fonction de l'indice d'épargne.
Il vise à capitaliser sur la reprise de la tendance après avoir franchi les mêmes niveaux haut/bas.
Même haut/bas facile à identifier, signaux clairs de rupture
Les bénéfices basés sur l'ATR suivent dynamiquement les tendances
Règles simples, risque défini
Les mêmes schémas haut/bas moins fréquents
S'arrête trop près, il risque d'être arrêté.
Le paramètre ATR doit être réglé
Cette stratégie capte les trades de tendance à partir des mêmes ruptures haute/basse, mais l'ajustement stop/profit et la fréquence inférieure nécessitent une considération.
/*backtest start: 2023-09-06 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m 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/ // © cherepanovvsb //@version=5 strategy("SHL", overlay=true, margin_long=100, margin_short=100,initial_capital=100,default_qty_type = strategy.cash,default_qty_value =40,commission_type = strategy.commission.percent,commission_value =0.04,currency="EUR", process_orders_on_close=true) atr = input.int(title="ATR length for abnormal candles", defval=5) plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup") plotshape(high==high[1], style=shape.triangledown, location=location.abovebar, color=color.blue, title="1 Setup") plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup") plotshape(low==high[1] or low==high[2] or low==high[3] or low==high[4] or low==high[5] or low==high[6], style=shape.triangleup, location=location.belowbar, color=color.green, title="Mirror Setup") plotshape(high==low[1] or high==low[2] or high==low[3] or high==low[4] or high==low[5] or high==low[6], style=shape.triangledown, location=location.abovebar, color=color.green, title="Mirror Setup") barcolor(high-low>2*ta.atr(atr)? color.yellow:na) ATRlenght = input.int(title="ATR length for take profit", defval=14, group="Strategy Settings") rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings") // Get ATR atr1 = ta.atr(ATRlenght) validlow = low[1] == low[2] and not na(atr1) validhigh = high[1]==high[2] and not na(atr1) validlong = validlow and strategy.position_size == 0 and low[1]<low validshort = validhigh and strategy.position_size == 0 and high[1]>high // Calculate Entrance, SL/TP longStopPrice = low[1]-syminfo.mintick longStopDistance = close - longStopPrice longTargetPrice = close + (longStopDistance * rewardMultiplier) shortStopPrice = high[1]+syminfo.mintick shortStopDistance = shortStopPrice - close shortTargetPrice = close - (shortStopDistance * rewardMultiplier) var tradeStopPrice = 0.0 var tradeTargetPrice = 0.0 if validlong tradeStopPrice := longStopPrice tradeTargetPrice := longTargetPrice if validshort tradeStopPrice := shortStopPrice tradeTargetPrice := shortTargetPrice strategy.entry ("Long", strategy.long,1, when=validlong) strategy.entry ("Short", strategy.short,1, when=validshort) strategy.exit(id="Long Exit", from_entry="Long", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0) strategy.exit(id="Short Exit", from_entry="Short", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size < 0) plot(strategy.position_size != 0 or validlong or validshort ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, transp=0) plot(strategy.position_size != 0 or validlong or validshort ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, transp=0)