Эта стратегия торговли - это система, основанная на прорыве стандартного разрыва, которая использует отношение цены к движущейся средней линии и стандартного разрыва для выявления потенциальных покупательских возможностей. Эта стратегия фокусируется на сигналах покупки, когда цена прорывается вниз, и управляет рисками путем установки стоп-ограничений и стоп-потери. Основная идея стратегии заключается в том, чтобы торговать при необычных колебаниях цен, фильтруя возможные ложные сигналы через движущиеся средние линии и стандартный разрыв.
Вычислить движущуюся среднюю (MA): использовать простую движущуюся среднюю (SMA) для вычисления средней линии за указанный период.
Стандартные расхождения: стандартные расхождения, основанные на одном и том же цикле расчетов цен.
Построить трассу вверх и вниз:
Создание сигнала покупки: когда цена переходит вниз по трассе, она вызывает сигнал покупки.
Управление рисками:
Срок отсчёта: Политика позволяет пользователю установить конкретный срок отсчёта и выполнить транзакцию только в указанный промежуток времени.
Сильная адаптивность: с помощью стандартного разрыва стратегия может автоматически корректировать торговые диапазоны в соответствии с волатильностью рынка и адаптироваться к различным рыночным условиям.
Улучшенный контроль рисков: интегрированные механизмы предотвращения и прекращения потерь, которые эффективно контролируют риск каждой сделки.
Высокая гибкость: позволяет пользователям настроить несколько параметров, таких как стандартный дефицитный цикл, кратность, коэффициент остановки и стоп-потери, и т. д., которые могут быть изменены в соответствии с различными рынками и индивидуальными предпочтениями риска.
Хорошая визуализация: стратегия изображает на графике движущиеся средние, восходящие и нисходящие траектории, а также сигналы покупки для интуитивного понимания и анализа.
Мощные функции ретро-проверки: пользователи могут точно устанавливать временной диапазон ретро-проверки, что позволяет оценивать стратегическую производительность в конкретной рыночной среде.
Риск фальшивого прорыва: в рынках с высокой или низкой волатильностью могут возникать частые фальшивые прорывы, которые приводят к чрезмерному количеству сделок и потерям в расходах на процедуру.
Тенденции следуют за задержкой: из-за стратегии, основанной на движущихся средних и стандартных пороках, можно пропустить некоторые ранние возможности для входа в сильные трендовые рынки.
Параметрочувствительность: производительность стратегии сильно зависит от параметровой настройки, различные комбинации параметров могут привести к совершенно разным результатам, требующим большого количества повторных испытаний и оптимизации.
Ограничение односторонних сделок: стратегия в настоящее время реализуется только с помощью логики многоделания, которая может потерять возможности или понести большие убытки на падших рынках.
Зависимость от рыночной среды: стратегия может лучше работать на криптовалютном рынке с высокой волатильностью и низким объемом торговли, но может иметь разные эффекты в других рыночных условиях.
Введение механизма "дешевого" действия: увеличение логики "дешевого" действия, когда цена проходит через траекторию, что позволяет стратегии получать прибыль на двустороннем рынке.
Динамическая корректировка параметров: автоматическое корректирование параметров, таких как коэффициент стандартного отклонения, коэффициент предотвращения и прекращения убытков в зависимости от условий рынка, повышение адаптивности стратегии.
Анализ многочасовых рамок: объединение данных с более длинными и более короткими временными циклами повышает надежность сигнала и точность времени входа.
Добавление фильтрации торгов: внедрение индикаторов торгов, фильтрация ложных сигналов прорыва при низких объемах торгов, повышение качества торгов.
Оптимизация механизмов сдерживания потерь: реализация динамических сдерживаний потерь, таких как внедрение отслеживания потерь или настройки сдерживания потерь на основе ATR, для лучшего адаптации к колебаниям рынка.
Дополнительные условия фильтрации: в сочетании с другими техническими показателями или фундаментальными данными устанавливаются дополнительные условия торговли, чтобы уменьшить ложные сигналы.
Осуществление управления капиталом: внедрение логики управления позициями и корректировка пропорции капитала на каждую сделку в зависимости от размера счета и динамики волатильности рынка.
Стратегия адаптивного стандартного разрыва - это количественная торговая система, основанная на статистических принципах, которая использует динамически адаптированные ценовые каналы для захвата торговых возможностей, связанных с необычными колебаниями рынка. Основные преимущества этой стратегии заключаются в ее адаптивности и способности к управлению рисками, позволяющей сохранять относительно стабильную производительность в различных рыночных условиях. Однако стратегия также сталкивается с такими проблемами, как фальшивые прорывы и чувствительность параметров, которые требуют тщательного использования и постоянной оптимизации трейдерами.
Эта стратегия может еще больше повысить ее стабильность и рентабельность путем внедрения оптимизационных мер, таких как механизмы выполнения выполненных заданий, регулирование динамических параметров, анализ многочасовых рамок. Для опытных количественных трейдеров эта стратегия предоставляет хорошую базовую основу для глубокой индивидуализации и оптимизации, чтобы адаптироваться к различным торговым стилям и рыночным условиям.
В целом, эта адаптивная стратегия торговли с нарушением стандартов демонстрирует суть количественной торговли с помощью математических моделей и статистических методов для захвата рыночных возможностей при жестком контроле рисков. Она подходит не только для высоко волатильных криптовалютных рынков, но и для других финансовых рынков с надлежащей адаптацией, предоставляя трейдерам мощный и гибкий торговый инструмент.
/*backtest start: 2024-06-01 00:00:00 end: 2024-06-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MikEy Scali 3 STD Dev Buy Strategy with TP and SL", overlay=true) // Input parameters for the strategy length = input.int(20, title="Standard Deviation Length", minval=1) src = input(close, title="Source") mult = input.float(3.0, title="Standard Deviation Multiplier", step=0.1) // Input for the take profit and stop loss percentages takeProfitPerc = input.float(1.0, title="Take Profit Percentage", step=0.1) / 100 stopLossPerc = input.float(0.5, title="Stop Loss Percentage", step=0.1) / 100 // Input parameters for the backtesting range testStartYear = input.int(2023, title="Backtest Start Year", minval=2000) testStartMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12) testStartDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31) testEndYear = input.int(2024, title="Backtest End Year", minval=2000) testEndMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12) testEndDay = input.int(31, title="Backtest End Day", minval=1, maxval=31) // Define the backtesting range testStartTime = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00) testEndTime = timestamp(testEndYear, testEndMonth, testEndDay, 23, 59) // Determine if the current bar is within the backtesting range inBacktestRange = (time >= testStartTime) and (time <= testEndTime) // Calculate the moving average and standard deviation ma = ta.sma(src, length) std_dev = ta.stdev(src, length) // Calculate upper and lower bands upper_band = ma + (std_dev * mult) lower_band = ma - (std_dev * mult) // Buy condition within the backtesting range buyCondition = inBacktestRange and ta.crossover(src, lower_band) // Plot the buy signal on the chart plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Execute buy orders based on the condition within the backtesting range if (buyCondition) strategy.entry("Buy", strategy.long) // Calculate the take profit and stop loss prices when a position is opened entryPrice = na(strategy.opentrades.entry_price(0)) ? src : strategy.opentrades.entry_price(0) takeProfitPrice = entryPrice * (1 + takeProfitPerc) stopLossPrice = entryPrice * (1 - stopLossPerc) // Take profit condition takeProfitCondition = strategy.position_size > 0 and close >= takeProfitPrice // Stop loss condition stopLossCondition = strategy.position_size > 0 and close <= stopLossPrice // Execute sell order when take profit condition is met within the backtesting range if (takeProfitCondition and inBacktestRange) strategy.close("Buy", "Take Profit") // Execute sell order when stop loss condition is met within the backtesting range if (stopLossCondition and inBacktestRange) strategy.close("Buy", "Stop Loss") // Plot the moving average and the bands plot(ma, color=color.blue, title="Moving Average") plot(upper_band, color=color.red, title="Upper Band (3 STD)") plot(lower_band, color=color.green, title="Lower Band (3 STD)") // Optional: Plot the source plot(src, color=color.gray, title="Source") // Add labels for clarity bgcolor(buyCondition ? color.new(color.green, 90) : na, offset=-1, title="Buy Signal Background") // Optional: Highlight the backtesting range on the chart bgcolor(inBacktestRange ? color.new(color.blue, 90) : na, title="Backtest Range Background") // Plot the take profit and stop loss levels if a position is open plot(strategy.position_size > 0 ? takeProfitPrice : na, color=color.orange, title="Take Profit Level") plot(strategy.position_size > 0 ? stopLossPrice : na, color=color.red, title="Stop Loss Level")