Эта стратегия использует комбинацию открытых и закрытых цен предыдущего дня, быстрой линии EMA и медленной линии EMA для определения направления рыночной стоимости в течение определенного пользователем периода времени торговли и делает соответствующие длинные или короткие записи.
Стратегия основывает свое суждение о направлении стоимости золота на двух аспектах:
Если цена закрытия выше, чем цена открытия, это указывает на то, что общая стоимость выросла в течение этого дня. Если цена закрытия ниже, чем цена открытия, это указывает на то, что общая стоимость упала в течение этого дня.
Отношение позиции между 50-периодной быстрой линией EMA и 200-периодной медленной линией EMA. Если быстрая линия выше медленной линии, это означает, что краткосрочная скорость роста стоимости больше, чем долгосрочный тренд. Если быстрая линия ниже медленной линии, это означает, что краткосрочная скорость роста стоимости меньше, чем долгосрочный тренд.
Когда запускается длинное условие, если закрытие предыдущего дня выше, чем открытие, текущая цена выше, чем открытие предыдущего дня, быстрая EMA выше медленной EMA, и она находится в пределах определенных пользователем торговых часов, стратегия будет длинной золотой.
Когда запускается короткое условие, если закрытие предыдущего дня ниже, чем открытие, текущая цена ниже, чем открытие предыдущего дня, быстрая EMA ниже медленной EMA, и она находится в пределах определенных пользователем торговых часов, стратегия будет работать коротко.
Кроме того, стратегия использует отслеживание стоп-лосса для блокировки прибыли или ограничения потерь.
Преимущества этой стратегии:
Использование нескольких индикаторов для определения направления стоимости золота снижает вероятность плохих сделок.
Следующая остановка может эффективно блокировать прибыль и своевременно выходить, когда тенденция меняется, снижая риски.
Пользователи могут выбрать подходящие торговые окна на основе своего времени торговли, чтобы избежать задержания во время институциональных операций.
Значения EMA за период могут быть скорректированы и оптимизированы в соответствии с изменениями на рынке, что делает стратегию более гибкой.
Эта стратегия также сопряжена с некоторыми рисками:
Внезапные события могут повлечь за собой большие потери, требующие ручного вмешательства или более расслабленного расстояния остановки потери.
EMA не может полностью отфильтровать рыночный шум. Ошибочные сигналы могут вызвать ненужные сделки. Параметры могут быть оптимизированы или добавлены дополнительные фильтры.
Неправильные настройки стоп-расстояния также увеличивают риски - слишком тесное имеет тенденцию к преждевременному остановке, а слишком широкое не может эффективно контролировать потери.
Стратегия также может быть оптимизирована в следующих аспектах:
Добавить другие технические индикаторы для фильтрации сигналов, такие как MACD, Bollinger Bands и т. д., чтобы уменьшить ошибочные сигналы EMA.
Переход на адаптивные остановки, которые регулируют дистанцию остановки на основе волатильности рынка.
Добавить правила размещения позиций, чтобы разрешить частичные выходы для лучшего контроля риска и меньшего влияния потерь от одной сделки.
Добавьте модели машинного обучения для определения направления тренда, улучшая точность с использованием более исторических данных.
Оптимизировать выбор временного окна торговли с использованием распределения Гаусса, чтобы нацелиться на более высокие интервалы участия в стратегии.
В общем, это типичная стратегия, следующая за трендом. Она сочетает в себе несколько индикаторов для определения тенденций к росту или снижению стоимости и считается надежной. Приложение trailing stop также позволяет эффективно контролировать убытки. Дальнейшие оптимизации индикаторов и правил стоп-лосса могут достичь улучшенного баланса между доходностью и управлением рисками.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("My Strategy", overlay=true) // Inputs for user to modify startHour = input(11, title="Start Hour") endHour = input(16, title="End Hour") trailingStop = input(100, title="Trailing Stop Start (pips)") trailingStep = input(10, title="Trailing Step (pips)") // Define the EMAs longEma = ema(close, 200) shortEma = ema(close, 50) // Calculate daily open, high, low, close daily_open = security(syminfo.tickerid, "D", open[1]) daily_close = security(syminfo.tickerid, "D", close[1]) // Time conditions timeAllowed = (hour >= startHour) and (hour <= endHour) // Define long condition based on your criteria longCondition = (daily_close > daily_open) and (close > daily_open) and (shortEma > longEma) and timeAllowed // Define short condition based on your criteria shortCondition = (daily_close < daily_open) and (close < daily_open) and (shortEma < longEma) and timeAllowed // Enter the trade if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Trailing Stop Loss strategy.exit("Exit Long", "Long", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick) strategy.exit("Exit Short", "Short", trail_points = trailingStop / syminfo.mintick, trail_offset = trailingStep / syminfo.mintick) // Plotting plot(daily_open, color=color.red, title="Daily Open") plot(longEma, color=color.blue, title="200 EMA") plot(shortEma, color=color.orange, title="50 EMA")