Cette stratégie est un système de trading global de suivi des tendances qui combine plusieurs mécanismes de confirmation de signal, y compris l'indicateur Alligator, l'oscillateur Awesome (AO) et l'oscillateur Accelerator (AC).
La logique de base est basée sur trois composantes principales: 1. Système d'alligator: utilise des moyennes mobiles de différentes périodes (13/8/5), confirmant la direction de la tendance à travers les croisements de la ligne des lèvres et des dents. Système de confirmation de l'élan: Combine les indicateurs AO et AC, confirmant la force de la tendance à travers leurs valeurs positives/négatives. 3. Système de gestion des risques: utilise des paramètres de stop-loss dynamiques basés sur des points hauts / bas de 5 périodes, avec un rapport risque-rendement de 1: 2 pour les niveaux de prise de profit.
Conditions de déclenchement du signal multiple: - Entrée longue: lèvres croisées au-dessus des dents + AO positif + AC positif - Entrée courte: lèvres croisées sous les dents + AO négatif + AC négatif
Cette stratégie établit un système de négociation complet grâce à l'utilisation complète de plusieurs indicateurs techniques. Le système met l'accent non seulement sur l'exactitude du signal, mais aussi sur une gestion stricte des risques pour la protection du capital. Bien qu'il existe certains risques de retard, la stratégie promet de meilleures performances grâce aux directions d'optimisation suggérées.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-04 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Alligator with AO and AC Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // ---------------------------- Индикатор Аллигатор ---------------------------- // Параметры Аллигатора jawLength = input.int(13, title="Jaw Length") teethLength = input.int(8, title="Teeth Length") lipsLength = input.int(5, title="Lips Length") jawOffset = input.int(8, title="Jaw Offset") teethOffset = input.int(5, title="Teeth Offset") lipsOffset = input.int(3, title="Lips Offset") // Расчёт скользящих средних jawLine = ta.sma(close, jawLength) teethLine = ta.sma(close, teethLength) lipsLine = ta.sma(close, lipsLength) // Сдвиг линий jaw = jawLine[jawOffset] teeth = teethLine[teethOffset] lips = lipsLine[lipsOffset] // Отображение линий Аллигатора plot(jaw, color=color.blue, linewidth=2, title="Jaw (13,8)") plot(teeth, color=color.red, linewidth=2, title="Teeth (8,5)") plot(lips, color=color.green, linewidth=2, title="Lips (5,3)") // ---------------------------- Awesome Oscillator (AO) ---------------------------- // Расчёт AO medianPrice = (high + low) / 2 ao = ta.sma(medianPrice, 5) - ta.sma(medianPrice, 34) // Отображение AO hline(0, "Zero Line", color=color.gray) plot(ao, title="Awesome Oscillator", color=(ao >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2) // ---------------------------- Accelerator Oscillator (AC) ---------------------------- // Расчёт AC ac = ao - ta.sma(ao, 5) // Отображение AC plot(ac, title="Accelerator Oscillator", color=(ac >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2) // ---------------------------- Логика сигналов и управление позицией ---------------------------- // Условия для открытия длинной позиции longCondition = ta.crossover(lips, teeth) and ao > 0 and ac > 0 if (longCondition) // Определение уровней stop-loss и take-profit stopLevel = ta.lowest(low, 5) // Минимум за последние 5 свечей takeProfit = close + (close - stopLevel) * 2 // Соотношение риска к прибыли 1:2 // Открытие длинной позиции strategy.entry("Long", strategy.long) strategy.exit("Take Profit", "Long", limit=takeProfit, stop=stopLevel) // Условия для открытия короткой позиции shortCondition = ta.crossunder(lips, teeth) and ao < 0 and ac < 0 if (shortCondition) // Определение уровней stop-loss и take-profit stopLevelShort = ta.highest(high, 5) // Максимум за последние 5 свечей takeProfitShort = close - (stopLevelShort - close) * 2 // Соотношение риска к прибыли 1:2 // Открытие короткой позиции strategy.entry("Short", strategy.short) strategy.exit("Take Profit Short", "Short", limit=takeProfitShort, stop=stopLevelShort) // Отображение уровней на графике plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")