Williams %R динамически корректирует стратегию стоп-профита и стоп-лосса

EMA TP SL
Дата создания: 2024-06-07 15:52:55 Последнее изменение: 2024-06-07 15:52:55
Копировать: 10 Количество просмотров: 783
1
Подписаться
1617
Подписчики

Williams %R динамически корректирует стратегию стоп-профита и стоп-лосса

Обзор

Стратегия основана на показателе Williams %R, оптимизирующем торговую производительность путем динамического регулирования уровня стоп-стоп. Создается сигнал покупки, когда Williams %R пересекает зону перепродажи (-80), и сигнал продажи, когда Williams %R пересекает зону перепродажи (-20). При этом используется индексная скользящая средняя (EMA) для сглаживания значения Williams %R для уменьшения шума.

Стратегический принцип

  1. Вычислить значение показателя Williams %R за данный период.
  2. Вычислить показательную скользящую среднюю Williams %R ((EMA) ).
  3. Когда Williams %R пересекает уровень-80 снизу вверх, запускается сигнал купить; когда пересекает уровень-20 снизу вверх, запускается сигнал продать.
  4. После покупки, настройка стоп-стоп и уровень убытков, пока не достигнут стоп/стоп-убыток или Williams %R вызвать обратный сигнал.
  5. После продажи, устанавливайте уровни стоп-стоп и стоп-лосс, чтобы погасить позицию до достижения цены стоп-стоп/лосс или запуска обратного сигнала Williams %R.
  6. Можно выбрать, будет ли торговаться в указанном временном диапазоне (например, 9:00-11:00) и будет ли торговаться в районе целой точки (от предыдущей минуты X до последней минуты Y).
  7. Вы можете выбрать направление торговли - только плюс, только минус или двусторонняя торговля.

Анализ преимуществ

  1. Динамический стоп-лосс: динамически корректируя уровень стоп-лосса в соответствии с пользовательскими настройками, можно лучше защитить прибыль и контролировать риск.
  2. Гибкие параметры: пользователь может настроить различные параметры в соответствии со своими предпочтениями, такие как цикл индикатора, уровень стоп-стоп, время торговли и т. д., чтобы адаптироваться к различным рыночным условиям.
  3. Сглаженный индикатор: введение значений Williams %R сглаженного EMA эффективно снижает шум индикатора и повышает надежность сигнала.
  4. Ограничение времени торговли: можно выбрать время для торговли, чтобы избежать больших колебаний на рынке и снизить риск.
  5. Настройка направления торговли: в зависимости от рыночных тенденций и личных предпочтений, можно выбрать только много, только дисконт или двустороннюю торговлю.

Анализ рисков

  1. Неправильная настройка параметров: если настройка стоп-лосса слишком мягкая или слишком жесткая, это может привести к потере прибыли или частому остановке.
  2. Ошибка в распознавании трендов: индикатор Williams %R плохо работает в условиях колебаний, что может привести к ошибочному сигналу.
  3. Временные ограничения имеют ограниченный эффект: ограничение времени торговли может привести к тому, что стратегия пропустит некоторые хорошие торговые возможности.
  4. Переоптимизация: параметры переоптимизации могут привести к тому, что стратегия будет плохо работать в будущих реальных сделках.

Направление оптимизации

  1. В сочетании с другими индикаторами, такими как индикатор тренда, индикатор волатильности и т. д., повышается точность подтверждения сигнала.
  2. Оптимизация динамических параметров: параметры корректируются в режиме реального времени в зависимости от состояния рынка, например, используются разные параметры на рынке тренда и рынке колебаний.
  3. Улучшение методов остановки убытков: такие как использование методов отслеживания убытков, частичного остановки и т. Д., Чтобы лучше защитить прибыль и контролировать риск.
  4. Присоединяйтесь к управлению капиталом: размер позиции для каждой сделки динамически корректируется в зависимости от баланса счета и предпочтений риска.

Подвести итог

Williams %R Динамически корректирующая стоп-стоп-стратегия захватывает состояние перекупа и перепродажи цены простым и эффективным способом, обеспечивая при этом гибкую параметрическую настройку для адаптации к различным рыночным условиям и стилям торговли. Эта стратегия динамически корректирует уровень стоп-стоп-убытков, что позволяет лучше контролировать риск и защищать прибыль. Однако в практическом применении необходимо обращать внимание на параметры, подтверждение сигнала, выбор времени торговли и т. Д., чтобы еще больше повысить устойчивость и прибыльность стратегии.

Исходный код стратегии
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Williams %R Strategy defined buy/sell criteria with TP / SL", overlay=true)

// User inputs for TP and SL levels
tp_level = input.int(defval=60, title="Take Profit (ticks)", minval=10, maxval=500, step=10)
sl_level = input.int(defval=60, title="Stop Loss (ticks)", minval=10, maxval=200, step=10)

// Williams %R calculation
length = input.int(defval=21, title="Length", minval=5, maxval=50, step=1)
willy = 100 * (close - ta.highest(length)) / (ta.highest(length) - ta.lowest(length))

// Exponential Moving Average (EMA) of Williams %R
ema_length = input.int(defval=13, title="EMA Length", minval=5, maxval=50, step=1)
ema_willy = ta.ema(willy, ema_length)

// User inputs for Williams %R thresholds
buy_threshold = -80
sell_threshold = -20

// User input to enable/disable specific trading hours
use_specific_hours = input.bool(defval=false, title="Use Specific Trading Hours")
start_hour = input(defval=timestamp("0000-01-01 09:00:00"), title="Start Hour")
end_hour = input(defval=timestamp("0000-01-01 11:00:00"), title="End Hour")

// User input to choose trade direction
trade_direction = input.string(defval="Both", title="Trade Direction", options=["Buy Only", "Sell Only", "Both"])

// User input to enable/disable "Minutes Before" and "Minutes After" options
enable_minutes_before_after = input.bool(defval=true, title="Enable Minutes Before/After Options")
minutes_before = enable_minutes_before_after ? input.int(defval=10, title="Minutes Before the Top of the Hour", minval=0, maxval=59, step=1) : 0
minutes_after = enable_minutes_before_after ? input.int(defval=10, title="Minutes After the Top of the Hour", minval=0, maxval=59, step=1) : 0

// Condition to check if the current minute is within the user-defined time window around the top of the hour
is_top_of_hour_range = (minute(time) >= (60 - minutes_before) and minute(time) <= 59) or (minute(time) >= 0 and minute(time) <= minutes_after)

// Condition to check if the current time is within the user-defined specific trading hours
in_specific_hours = true
if use_specific_hours
    in_specific_hours := (hour(time) * 60 + minute(time)) >= (hour(start_hour) * 60 + minute(start_hour)) and (hour(time) * 60 + minute(time)) <= (hour(end_hour) * 60 + minute(end_hour))

// Buy and Sell conditions with time-based restriction
buy_condition = ta.crossover(willy, buy_threshold) and is_top_of_hour_range and in_specific_hours
sell_condition = ta.crossunder(willy, sell_threshold) and is_top_of_hour_range and in_specific_hours

// Strategy entry and exit with TP and SL
if (trade_direction == "Buy Only" or trade_direction == "Both") and buy_condition
    strategy.entry("Buy", strategy.long)

if (trade_direction == "Sell Only" or trade_direction == "Both") and sell_condition
    strategy.entry("Sell", strategy.short)

// If a buy entry was taken, allow the trade to be closed after reaching TP and SL or if conditions for a sell entry are true
if (strategy.opentrades > 0)
    strategy.exit("TP/SL", profit=tp_level, loss=sl_level)

// Plot Williams %R and thresholds for visualization
hline(-20, "Upper Band", color=color.red)
hline(-80, "Lower Band", color=color.green)
plot(willy, title="%R", color=color.yellow, linewidth=2)
plot(ema_willy, title="EMA", color=color.aqua, linewidth=2)