Эта стратегия использует индикатор абсолютного ценового колебателя (APO) для генерации торговых сигналов, позволяющих отслеживать тренд. Индикатор APO рассчитывает разницу между двумя различными периодами времени, получает осциллятор, проникает вверх или вниз в зависимости от его значения и делает дополнительные пробелы.
Показатель APO состоит из краткосрочной и долгосрочной ЭМА, которые рассчитываются на разницу между ними.
При входе в зону покупки (по умолчанию 3) на APO делается больше, а при входе в зону продажи (по умолчанию 3) на APO делается меньше.
Можно выбрать обратный сигнал, APO пустое при ношении, большее при ношении.
Показательная кривая показывает динамику цен, и можно искать обратные сигналы, отклоняющиеся от формируемого тренда.
Эта стратегия относится к стратегии отслеживания тенденций, используя показатель APO для определения направления ценового тренда, создавая постоянный сигнал о многократном коротком замыкании. После оптимизации параметров показателя можно отслеживать среднее движение большого тренда.
Это легко реализовать с помощью простого сочетания показателей скользящих средних.
Используйте показатель APO для определения движения и направления цен.
По умолчанию параметры генерируют среднесрочный непрерывный сигнал, чтобы избежать чрезмерной торговли.
Поиск возможностей для изменения тенденции, которая отклоняет цены от АПО.
В результате, в результате сбоев на рынке могут возникнуть ложные сигналы и випсавы.
Например, если бы мы не смогли быстрее развернуться, мы могли бы пропустить быстрый поворот.
Недостаточное управление стоп-лоссами и позициями, несовершенный контроль рисками.
Меры по снижению риска:
Оптимизация параметров, тестирование комбинаций параметров, подходящих для разных сортов.
Добавьте дополнительные фильтры, чтобы избежать торговли в бурных рынках.
Установите стратегию по прекращению убытков, например, путем отслеживания убытков.
Параметры оптимизируются для каждой торговой разновидности в отдельности, чтобы найти оптимальные параметры.
Повышение фильтрующих условий, таких как движение цен или объем сделок, уменьшает количество ложных сигналов.
Динамическое управление позициями в зависимости от волатильности или соотношения остатков.
Оптимизируйте свои стопы, настроив тренд-следящий стоп.
Применение алгоритмов машинного обучения для определения успешности отклонения от сигнала.
Стратегия основана на показателях 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")