Cette stratégie est un système de négociation adaptatif basé sur les écarts et les mouvements de prix, permettant d'obtenir des rendements stables grâce à des points d'entrée flexibles et des paramètres dynamiques de prise de profit / stop-loss.
La stratégie fonctionne à travers plusieurs mécanismes de base: 1. Mécanisme de négociation des écarts: identifie les écarts vers le haut et vers le bas, en plaçant des ordres d'arrêt aux niveaux des écarts Suivi de tendance: Détermine la direction de la tendance en fonction de la relation entre les prix d'ouverture et de clôture 3. Pyramide: autorise jusqu'à 100 commandes dans la même direction 4. TP/SL dynamique: définit dynamiquement les niveaux de prise de profit et de stop-loss en fonction du prix moyen de la position 5. Gestion des ordres OCA: utilise des groupes d'ordres OCA pour assurer l'exclusivité mutuelle des ordres TP et SL Limites de négociation intraday: contrôle du risque par la définition des ordres maximaux exécutés intraday
Il s'agit d'une stratégie de trading bien conçue avec une logique rigoureuse, garantissant la stabilité et la sécurité des transactions grâce à de multiples mécanismes. Les principaux avantages résident dans sa capacité d'adaptation et de contrôle des risques, tout en accordant une attention particulière aux risques liés à la volatilité du marché.
/*backtest start: 2024-12-04 00:00:00 end: 2024-12-11 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) backtestStartDate = input(timestamp("1 Jan 1990"), title="Start Date", group="Backtest Time Period", tooltip="This start date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") backtestEndDate = input(timestamp("1 Jan 2023"), title="End Date", group="Backtest Time Period", tooltip="This end date is in the time zone of the exchange " + "where the chart's instrument trades. It doesn't use the time " + "zone of the chart or of your computer.") inTradeWindow = true tp = input(10) sl = input(10) maxidf = input(title="Max Intraday Filled Orders", defval=5) // strategy.risk.max_intraday_filled_orders(maxidf) upGap = open > high[1] dnGap = open < low[1] dn = strategy.position_size < 0 and open > close up = strategy.position_size > 0 and open < close if inTradeWindow and upGap strategy.entry("GapUp", strategy.long, stop = high[1]) else strategy.cancel("GapUp") if inTradeWindow and dn strategy.entry("Dn", strategy.short, stop = close) else strategy.cancel("Dn") if inTradeWindow and dnGap strategy.entry("GapDn", strategy.short, stop = low[1]) else strategy.cancel("GapDn") if inTradeWindow and up strategy.entry("Up", strategy.long, stop = close) else strategy.cancel("Up") XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size dir = strategy.position_size < 0 ? -1 : 1 lmP = strategy.position_avg_price + dir*tp*syminfo.mintick slP = strategy.position_avg_price - dir*sl*syminfo.mintick float nav = na revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false) if inTradeWindow and not revCond and XQty > 0 strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL", "TPSL") strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL") if XQty == 0 or revCond strategy.cancel("TP") strategy.cancel("SL") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)