Эта стратегия называется
Идея этой стратегии возникла у Тюшара Чанде, создателя линий Аруна. Чанде предположил, что восходящие и нисходящие тренды могут быть определены, когда осциллятор Аруна выше или ниже 50. Это помогает смягчить недостатки простых линий Аруна и перекрестков в периоды, не связанные с трендом.
В частности, стратегия сначала рассчитывает 19-периодные линии Арун-Вверх, Арун-Вниз и Арун-Оциллятор. Оциллятор рассчитывается путем вычитания линии Вниз от линии Вверх. Средняя линия затем устанавливается на -25, верхняя рельса на 75 и нижняя рельса на -85. Когда осциллятор выходит выше средней линии, открывается длинная позиция. Когда он падает ниже, открывается короткая позиция. Условия выхода закрываются длинными, когда осциллятор выходит выше верхней рельсы, и закрываются короткими, когда он выходит ниже нижней рельсы.
Таким образом, средняя линия используется для определения направления тренда на вход, верхние и нижние рельсы используются для выхода при изменении тренда, реализуя автоматическую торговлю на основе индикатора Aroon Oscillator.
По сравнению с традиционными стратегиями, основанными на тенденциях, эта стратегия имеет следующие преимущества:
В целом, объединяя сильные стороны индикатора Aroon Oscillator, стратегия достигает автоматизированной торговли конкретными активами с хорошим показателем выигрыша и рентабельностью.
Эта стратегия также сопряжена с некоторыми рисками:
Эти риски могут быть уменьшены и улучшены путем корректировки параметров и оптимизации кода.
Для дальнейшего повышения эффективности стратегии можно оптимизировать следующие аспекты:
Благодаря всестороннему тестированию и оптимизации можно значительно улучшить стабильность, уровень выигрыша и рентабельность стратегии.
Эта стратегия творчески достигла автоматизированной торговли активами с высокой волатильностью и неясными тенденциями на основе индикатора Арун Осиллятор. По сравнению с традиционными трендовыми стратегиями она работает лучше на этих типах активов, а ее строгие условия торговли также достигаются с помощью параметровых настроек. Преимущества стратегии заметны, но все еще есть возможности для улучшения. Дальнейшее улучшение может быть получено с помощью целевых оптимизаций. Стратегия предоставляет ориентир для количественных торговых практик.
/*backtest start: 2023-12-15 00:00:00 end: 2024-01-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // by Saucius Finance https://saucius-finance.blogspot.com/ // copyrights reserved :) // This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph, // long and short trends are identified by oscillator < or > line 50. // This helps because simple Aroon and Aroon crosses suffer in not trending periods. // original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D."" strategy("Aroon Oscillator strategy by Saucius", overlay=false) //building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator length = input(19, minval=1) level_middle = input(-25, minval=-90, maxval=90, step = 5) levelhigh = input(75, minval=-100, maxval=100, step = 5) levellow = input(-85, minval=-100, maxval=100, step = 5) upper = 100 * (highestbars(high, length+1) + length)/length lower = 100 * (lowestbars(low, length+1) + length)/length oscillator = upper - lower plot(upper, title="Aroon Up", color=blue) plot(lower, title="Aroon Down", color=red) plot(oscillator, title="Aroon Oscillator", color = yellow) hline(level_middle, title="middle line", color=gray, linewidth=2) hline(levelhigh, title ="upper border", color=gray, linewidth=1) hline(levellow, title ="lower border", color=gray, linewidth=1) // Entry // entryl = oscillator[1] < level_middle[1] and oscillator > level_middle entrys = oscillator[1] > level_middle[1] and oscillator < level_middle strategy.entry("Long", true, when = entryl) strategy.entry("Short", false, when = crossunder (oscillator, level_middle)) // === EXIT=== exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh exitS1 = oscillator[1] < levellow[1] and oscillator > levellow strategy.close("Long", when=entrys) strategy.close("Short", when=entryl) strategy.close("Long", when= exitL1) strategy.close("Short", when= exitS1)