Эта стратегия использует индикатор абсолютного ценового осциллятора (APO) для генерации торговых сигналов и отслеживания тенденций.
APO состоит из более быстрой и более медленной EMA, принимая разницу между ними.
Когда APO пересекает зону покупки (по умолчанию 3), перейдите в длинную зону. Когда он пересекает зону продажи (по умолчанию -3), перейдите в короткую.
Опция обратного сигнала - пересечение выше продает, пересечение ниже покупает.
Кривая показывает импульс цены, может найти отклонения на дивергенции.
Оптимизированные параметры могут отслеживать среднесрочные тенденции.
Простая реализация с использованием базовой комбинации скользящих средних.
APO измеряет динамику и направление цены.
Параметры по умолчанию генерируют среднесрочные устойчивые сигналы, избегая чрезмерной торговли.
Может обнаруживать изменение тренда на основе дивергенции цены/показателя.
Склонны к ложным сигналам и провалам на различных рынках.
Сигналы задержки могут пропустить быстрые обратные действия.
Нет стоп-лосса или размеров позиций, неполный риск-менеджмент.
Уменьшение последствий:
Оптимизировать параметры и испытывать различные комбинации по каждому инструменту.
Добавьте фильтры, чтобы избежать торговли в нестабильных условиях.
Внедрять стоп-лосс, например, стоп-остановку.
Оптимизация параметров для каждого инструмента для поиска идеальных пар.
Дополнительные фильтры на движение цены или объем для уменьшения ложных сигналов.
Динамическое размещение позиций на основе волатильности или процента счета.
Оптимизированы для получения прибыли, такие как отслеживание остановки, чтобы следовать тенденциям.
ML для оценки вероятности успешных сигналов дивергенции.
Эта кроссоверная система EMA с использованием APO обеспечивает прочную основу для следования трендам. Благодаря оптимизации параметров, управления рисками и фильтров она может стать эффективной количественной стратегией.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/09/2018 // The Absolute Price Oscillator displays the difference between two exponential // moving averages of a security's price and is expressed as an absolute value. // How this indicator works // APO crossing above zero is considered bullish, while crossing below zero is bearish. // A positive indicator value indicates an upward movement, while negative readings // signal a downward trend. // Divergences form when a new high or low in price is not confirmed by the Absolute Price // Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO // forms a higher low. This indicates less downward momentum that could foreshadow a bullish // reversal. A bearish divergence forms when price makes a higher high, but the APO forms a // lower high. This shows less upward momentum that could foreshadow a bearish reversal. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Absolute Price Oscillator (APO) Backtest 2.0", shorttitle="APO") LengthShortEMA = input(10, minval=1) LengthLongEMA = input(20, minval=1) BuyZone = input(3, step = 0.01) SellZone = input(-3, step = 0.01) reverse = input(false, title="Trade reverse") hline(BuyZone, color=green, linestyle=line) hline(SellZone, color=red, linestyle=line) hline(0, color=gray, linestyle=line) xPrice = close xShortEMA = ema(xPrice, LengthShortEMA) xLongEMA = ema(xPrice, LengthLongEMA) xAPO = xShortEMA - xLongEMA pos = iff(xAPO > BuyZone, 1, iff(xAPO < SellZone, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xAPO, color=blue, title="APO")