
Основная идея этой стратегии заключается в том, чтобы объединить время и показатель ATR для достижения автоматизированной остановки убытков. Стратегия открывает позиции для покупки или продажи в фиксированный момент времени и в сочетании с показателем ATR вычисляет разумную цену остановки убытков. Таким образом, можно достичь эффективной автоматизации торговли, снизить частоту ручных операций, а также эффективно контролировать риск с помощью показателя ATR.
Эта стратегия использует hour и minute переменные в сочетании с условием if, чтобы инициировать открытие позиции в момент времени, указанном в параметре стратегии tradeTime. Например, настройка на 0700, означает, что открытие позиции будет инициировано в 7:00 утра по пекинскому времени.
После открытия позиции стратегия использует функцию ta.atr () для вычисления показателя ATR за последние 5 минут и использует его в качестве основы для остановки убытков. Например, после покупки цена остановки = цена покупки + стоимость ATR; после продажи цена остановки = цена продажи - стоимость ATR.
Это позволяет автоматизировать открытие позиции на основе времени и остановки на основе показателей ATR. Таким образом, снижается частота ручных операций и эффективно контролируется риск.
Эта стратегия имеет следующие преимущества:
Высокая степень автоматизации. Можно автоматически заказать в назначенное время без постояльцев, значительно снижая частоту ручной работы.
Стоп-стоп, основанный на ATR, позволяет эффективно контролировать одиночные потери. ATR может динамически улавливать степень волатильности рынка, чтобы установить разумную стоп-стазию.
Расширяемость: можно легко интегрировать больше показателей или алгоритмов машинного обучения для оказания помощи в принятии решений. Например, в сочетании с пропорциональными показателями для определения тенденций.
Легко реализовать арбитраж с несколькими разновидностями. Стратегия арбитража с открытыми контрактами может быть легко реализована, если только для разных разновидностей будет установлено одинаковое время торговли.
Легкая интеграция с автоматизированной торговой системой. В сочетании с временным управлением заданиями, можно без присмотра 24 часа в сутки запускать стратегические процедуры, что позволяет полностью автоматизировать торговлю.
Однако есть и другие риски:
Риск внезапных событий на рынке. Крупные черные свингеры могут привести к экстремальным колебаниям цен, вызвать убытки и привести к большим потерям.
Риск ликвидности знака. Некоторые сорта имеют плохую ликвидность, не могут полностью совершить сделку в точке остановки лимита и не могут погасить остановку.
Риски оптимизации ATR-параметров. ATR-параметры требуют многократного тестирования и оптимизации. Если они будут слишком большими или слишком маленькими, это повлияет на эффективность стратегии.
Оптимизация риска в точке времени. Фиксированное время открытия позиции может пропустить рыночные возможности, что требует корректировки в точке времени в сочетании с дополнительными показателями.
Эта стратегия может быть оптимизирована в следующих аспектах:
В сочетании с другими показателями, чтобы оценить состояние рынка, избегайте открытия позиций в неблагоприятной рыночной среде. Например, MACD, RSI и т. Д.
Используйте алгоритмы машинного обучения для прогнозирования оптимального времени открытия хранилища. Можно собрать больше исторических данных, использовать LSTM и т. Д. для моделирования.
Используйте платформы, такие как Heartbeat, для расширения арбитража на несколько видов.
Оптимизация параметров ATR и параметров остановочных потерь. Оптимальные параметры могут быть найдены с помощью дополнительного повторного отбора.
Запуск стратегии на сервере, интеграция временных задач, полностью автоматизированная работа 7x24 часов.
Эта стратегия объединяет точку времени и показатели ATR для эффективной автоматизации стоп-стоп-торгов. С помощью оптимизации параметров можно получить стабильную альфу. В то же время она обладает большой масштабируемостью и интеграционной способностью, что является одной из рекомендуемых количественных стратегий.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Time-based Strategy with ATR Take Profit Sell", overlay=true)
// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na
// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")
// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))
// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders
// if (buyCondition)
// strategy.entry("Buy", strategy.long)
// buyprice := close
// takeProfitLevel := buyprice + atrValue
// strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel)
if (sellCondition)
strategy.entry("Sell", strategy.short)
sellprice := close
takeProfitLevelForSell := sellprice -atrValue
strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)
// Plot horizontal lines for take profit levels
plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")