В статье представлена оптимизированная квантовая стратегия торговли, основанная на Hull Moving Average (HMA), которая сочетает в себе многоциклический анализ и механизм динамического остановки. Эта стратегия была улучшена на основе известного Hull Suite, и добавлена команда "strategy.exit" из v5 PineScript для реализации "trailing stop" или "delay trailing stop". Стратегия использует быстро реагирующие свойства HMA для улавливания рыночных тенденций, а также для повышения надежности сигналов посредством анализа нескольких временных циклов.
Hull Moving Average (HMA): в основе стратегии лежит использование HMA и его вариантов (EHMA и THMA) для выявления рыночных тенденций. HMA имеет более быструю скорость реагирования и меньшую задержку по сравнению с традиционными движущимися средними.
Многоциклический анализ: стратегия генерирования торговых сигналов путем сравнения HMA с различными временными циклами. Этот метод может уменьшить ложные сигналы и повысить точность торговли.
Динамическая остановка убытков: стратегия использует механизм trailing stop, который активируется после того, как прибыль достигнет определенного показателя, что позволяет эффективно блокировать прибыль и контролировать риск.
Контроль времени торговли: политика позволяет пользователю определять определенные временные рамки торговли, что помогает избежать торговли в периоды с низкой или недостаточной волатильностью.
Управление направлением: стратегия предоставляет опции выбора направления торговли (большой, небольшой или двусторонний), что позволяет ей адаптироваться к различным рыночным условиям и стилям торговли.
Гибкость: стратегия позволяет пользователям выбирать различные варианты Hull Moving Average (HMA, EHMA, THMA) для адаптации к различным рыночным условиям.
Отличное управление рисками: с помощью динамических механизмов прекращения потерь стратегия может ограничить потенциальные потери, одновременно защищая прибыль.
Сильная адаптивность: методы многоциклического анализа позволяют стратегии адаптироваться к различным рыночным условиям и уменьшить влияние ложных сигналов.
Хорошая визуализация: Стратегия предоставляет множество вариантов визуализации, таких как цветно-кодированные HMA-рисунковые диаграммы, которые помогают трейдерам более интуитивно понять тенденции рынка.
Высокая степень автоматизации: стратегия может быть выполнена полностью автоматически, что уменьшает вероятность человеческих эмоциональных воздействий и ошибок.
Превышение торговли: из-за HMA, основанной на быстром реагировании на стратегию, может возникнуть слишком много ложных сигналов на кристаллическом рынке, что приводит к переоценке торговли.
Риск скольжения: Стратегия, использующая скальпинг, может иметь более высокий риск скольжения, особенно на рынках с низкой ликвидностью.
Параметрочувствительность: производительность стратегии сильно зависит от параметров, а неправильные параметры могут привести к плохой работе стратегии.
Изменение рыночных условий: при резких изменениях рыночных условий стратегия может потребовать переоптимизации параметров для сохранения эффективности.
Технологическая зависимость: выполнение стратегии зависит от стабильного сетевого соединения и платформы для торговли, а технические сбои могут привести к значительным потерям.
Увеличение показателей настроения рынка: в сочетании с такими показателями настроения рынка, как VIX, опционы с подразумеваемым уровнем волатильности, можно помочь стратегии лучше адаптироваться к различным рыночным условиям.
Внедрение алгоритмов машинного обучения: использование технологий машинного обучения для динамической корректировки параметров HMA и уровня остановки может повысить адаптивность стратегии.
Увеличение анализа объема сделок: в сочетании с данными объема сделок можно повысить точность суждений о тенденциях и уменьшить убытки от ложных прорывов.
Оптимизировать выбор временных рамок: найти оптимальные многоциклические аналитические настройки путем ретрансляции комбинаций различных временных рамок.
Внедрение рискованного паритета: использование рискованного паритета при распределении капитала в многовариантных сделках позволяет лучше контролировать риск в общем портфеле.
HMA оптимизирует многоциклическую количественную торговую стратегию в сочетании с динамическими стоп-лоссами. Это гибкая и эффективная торговая система. Она предлагает трейдерам всеобъемлющее количественное торговое решение путем сочетания быстрых реакционных характеристик движущихся средних, стабильности многоциклического анализа и контроля рисков динамических стоп-лосса. Хотя эта стратегия отлично работает на быстро меняющихся рынках, она все равно требует от трейдеров пристального внимания к изменениям рыночных условий и своевременного изменения параметров, чтобы сохранить ее эффективность.
/*backtest start: 2023-07-25 00:00:00 end: 2024-07-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © anotherDAPTrader //Based upon Hull Suite by InSilico and others// //with SCALP exit// //@version=5 strategy('DAP Hull Sweet Scalp v1 Strategy', overlay=true) // Session // session = input(title='Session (Goes flat at end of session!)', defval='1800-1700') //Check if it's in session// is_session(session) => not na(time(timeframe.period, session)) //Call the function Session = is_session(session) //Start and end of the session start = Session and not Session[1] end = not Session and Session[1] //Plot the background color to see the session bgcolor(Session ? color.new(color.white, 0) : na) // trade directions // strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all']) strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) src = close modeSwitch = input.string('Hma', title='Hull Variation', options=['Hma', 'Thma', 'Ehma']) length = input(55, title='Length(180-200 for floating S/R , 55 for swing entry)') switchColor = input(true, 'Color Hull according to trend?') candleCol = input(false, title='Color candles based on Hull\'s Trend?') visualSwitch = input(true, title='Show as a Band?') thicknesSwitch = input(1, title='Line Thickness') transpSwitch = input.int(40, title='Band Transparency', step=5) //FUNCTIONS //HMA HMA(_src, _length) => ta.wma(2 * ta.wma(_src, _length / 2) - ta.wma(_src, _length), math.round(math.sqrt(_length))) //EHMA EHMA(_src, _length) => ta.ema(2 * ta.ema(_src, _length / 2) - ta.ema(_src, _length), math.round(math.sqrt(_length))) //THMA THMA(_src, _length) => ta.wma(ta.wma(_src, _length / 3) * 3 - ta.wma(_src, _length / 2) - ta.wma(_src, _length), _length) //SWITCH Mode(modeSwitch, src, len) => modeSwitch == 'Hma' ? HMA(src, len) : modeSwitch == 'Ehma' ? EHMA(src, len) : modeSwitch == 'Thma' ? THMA(src, len / 2) : na //OUT HULL = Mode(modeSwitch, src, length) MHULL = HULL[0] SHULL = HULL[2] //COLOR hullColor = switchColor ? HULL > HULL[2] ? #00ff00 : #ff0000 : #ff9800 //PLOT ///< Frame Fi1 = plot(MHULL, title='MHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) Fi2 = plot(visualSwitch ? SHULL : na, title='SHULL', color=hullColor, linewidth=thicknesSwitch, transp=50) ///< Ending Filler fill(Fi1, Fi2, title='Band Filler', color=hullColor, transp=transpSwitch) ///BARCOLOR barcolor(color=candleCol ? switchColor ? hullColor : na : na) // Scalp // slPoints = input.int(title='Profit Points Before Stop', minval=0, maxval=1000, step=1, defval=1, confirm=false) slOffset = input.int(title='Then Trailing Stop Loss of ', minval=1, maxval=1000, step=1, defval=1, confirm=false) //trades// // Long Entry Function// if Session and ta.crossover(HULL[0] , HULL[2]) strategy.entry('long', strategy.long) strategy.exit('trailing stop', from_entry='long', trail_points=slPoints, trail_offset=slOffset) // Short Entry Function// if Session and ta.crossunder(HULL[0] , HULL[2]) strategy.entry('short', strategy.short) strategy.exit('trailing stop', from_entry='short', trail_points=slPoints, trail_offset=slOffset) if end strategy.close_all("End of Session - Go FLat")