Стратегия золотого часа торговли

Автор:Чао Чжан, Дата: 2023-09-19 16:03:52
Тэги:

Обзор

Стратегия золотых торговых часов автоматически определяет лучшие часы для покупки и продажи каждый день путем обратного тестирования исторических данных.

Принцип стратегии

  1. Используйте текущее время, чтобы получить текущий час now_hour.

  2. Используйте индикатор ROC для расчета почасового процентного роста и падения индикатора свечей.

  3. Вычислить совокупное произведение показателя и now_hour как buy_hourXindicator_cum.

  4. Вычислить совокупную сумму показателя как buy_indicator_cum.

  5. Лучший час покупки buy_hour = buy_hourXindicator_cum / buy_indicator_cum.

  6. Аналогичным образом вычисляется лучший час продажи sell_hour.

  7. Сравните now_hour с buy_hour и sell_hour, чтобы определить, является ли текущий час оптимальным для покупки или продажи.

  8. Отправлять соответствующие сигналы в оптимальное время покупки и продажи.

  9. Используйте разные цвета фона для отображения оптимальных часов покупки и продажи в режиме реального времени.

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

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

Кроме того, стратегия хорошо использует индикатор ROC. Вычисляя почасовой процент подъема и падения свечей, она может более точно оценить торговую эффективность различных периодов.

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

Наибольший риск этой стратегии заключается в ограничениях самого индикатора ROC. ROC рассматривает только изменения цен и не чувствителен к изменениям объема торговли. Кроме того, ROC не работает хорошо на рынках с узкими диапазонами.

Кроме того, стратегия использует обратное тестирование исторических данных для определения оптимальных торговых часов. Но исторические модели могут не применяться к текущему рынку. На рынке могут произойти структурные изменения, и первоначальные правила торговли могут больше не применяться. Это требует корректировки параметров на основе текущих рыночных условий, а не просто полагаться на результаты обратного тестирования.

Чтобы решить эту проблему, мы можем рассмотреть возможность объединения других показателей, таких как объем торговли, для получения более всеобъемлющего суждения о рыночных условиях.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Попробуйте использовать другие индикаторы, которые могут заменить индикатор ROC, например, объем торговли, чтобы найти более подходящие индикаторы для расчета часовой силы и слабости.

  2. Добавьте другие условия фильтрации с использованием скользящих средних, осцилляторов и т. д. для оценки местных тенденций и избегания необоснованной торговли.

  3. Оптимизировать параметры периода времени и проверить влияние различных периодов времени на результаты.

  4. Добавить механизмы остановки потерь и установить разумные точки остановки потерь для контроля рисков торговли.

  5. Комбинируйте методы машинного обучения и большие наборы данных для решения оптимальных часов торговли.

Резюме

Подводя итог, стратегия золотых торговых часов является осуществимым и эффективным подходом. Она использует индикатор ROC для автоматического определения оптимальных внутридневных часов покупки и продажи, экономя много времени и усилий. Но мы также должны отметить ограничения индикатора ROC и исторического бэкстестинга и корректировать параметры на основе текущих рыночных условий. Кроме того, еще есть много возможностей для улучшения путем оптимизации этой стратегии во многих аспектах для получения более точных и надежных сигналов. Если использовать для живой торговли, рекомендуется строго следовать правилам стоп-лосса для контроля торговых рисков.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mablue (Masoud Azizi)

//@version=5
strategy("Trade Hour V3",overlay=false)
timezone = input.string("Europe/London",options=["America/New_York","America/Los_Angeles","America/Chicago","America/Phoenix","America/Toronto","America/Vancouver","America/Argentina" ,"America/El_Salvador","America/Sao_Paulo","America/Bogota","Europe/Moscow","Europe/Athens","Europe/Berlin","Europe/London","Europe/Madrid","Europe/Paris","Europe/Warsaw","Australia/Sydney","Australia/Brisbane","Australia/Adelaide","Australia/ACT","Asia/Almaty","Asia/Ashkhabad","Asia/Tokyo","Asia/Taipei","Asia/Singapore","Asia/Shanghai","Asia/Seoul","Asia/Tehran","Asia/Dubai","Asia/Kolkata","Asia/Hong_Kong","Asia/Bangkok","Pacific/Auckland","Pacific/Chatham","Pacific/Fakaofo","Pacific/Honolulu"]	)
source = input.source(close)
tp = input.int(1,"ROC Timeperiod")

now_hour = hour(time,timezone)

indicator = ta.roc(source,tp)

buy_hourXindicator_cum = ta.cum(indicator* now_hour)
buy_indicator_cum = ta.cum(indicator)
buy_hour = buy_hourXindicator_cum/buy_indicator_cum

sell_hourXindicator_cum = ta.cum( (1/indicator ) * now_hour)
sell_indicator_cum = ta.cum(1/indicator)
sell_hour = sell_hourXindicator_cum/sell_indicator_cum

plot(buy_hour,color=color.green)
plot(sell_hour,color=color.red)
plot(now_hour,color=color.gray,display=display.none)


bool isLongBestHour = now_hour==math.round(buy_hour)
bool isShortBestHour = now_hour==math.round(sell_hour)

bgcolor(isLongBestHour ? color.new(color.green,80) : na)
bgcolor(isShortBestHour ? color.new(color.red,80) : na)
strategy.order("buy", strategy.long, when =isLongBestHour)
strategy.order("sell", strategy.short, when = isShortBestHour)

Больше