Основная идея стратегии временного заказа заключается в проведении операций по покупке и продаже в определенные пользователем моменты времени. Эта стратегия позволяет пользователям установить точную точку времени. В этот момент времени он сначала продаст текущую позицию, а затем разместит лимитный ордер на покупку на 1% ниже текущей цены. Это позволяет периодически осуществлять ребалансировку в определенное время каждый день.
Стратегия сначала использует функцию ввода для получения пользовательских часов и минут, определенных пользователем, а затем генерирует время выполнения ордера с помощью функции временной отметки.
В частности, стратегия сначала проверяет, находится ли текущее время в пределах установленного пользователем диапазона даты начала и окончания. Если да, то при достижении указанного момента исполнения ордера она сначала продаст текущую позицию по рыночной цене, а затем разместит лимитный ордер на покупку по 99% от текущей цены. Это достигает ребалансировки по цене на 1% ниже текущей цены в конкретный момент времени.
Самое большое преимущество этой стратегии заключается в том, что она может периодически ребалансировать позиции в определенные моменты времени без ручного вмешательства, снижая затраты на рабочую силу.
К конкретным преимуществам относятся:
Полностью автоматизированная работа, сокращение ручных затрат.
Позволяет периодически перебалансировать позиции в определенные моменты времени.
Получает сверхнизкие возможности покупки примерно на 1% ниже текущих цен во время каждого ребалансирования.
Настраиваемые временные точки ребалансировки, гибкая настройка.
Настраиваемые даты начала и окончания циклов ребалансирования, удобные для оптимизации обратного тестирования.
Стратегия также несет в себе некоторые риски:
Если время периодического ребалансирования выбрано неправильно, он может упустить лучшие возможности для покупки или продать в неподходящее время.
Если цена покупки ниже цены продажи всего на 1%, то в каждом цикле ребалансировки может не быть достаточной сверхнизкой разницы по цене покупки.
Как продать, так и купить - это рыночные заказы, которые могут страдать от некоторой степени скольжения.
Если стратегия действует только в определенные периоды времени, рынок не может управляться между этими периодами.
Частые ребалансировки будут повлечь за собой относительно более высокие комиссионные за торговлю.
Соответствующие решения:
Выбирать подходящие временные точки ребалансировки, а также комбинировать с другими техническими показателями.
По мере необходимости увеличить параметр спреда покупной цены.
Выбирайте продукты с хорошей глубиной и низкой волатильностью.
Комбинировать с другими стратегиями управления рисками в периоды, не связанные с ребалансировкой.
Контролировать частоту ребалансировки, чтобы сбалансировать преимущества и затраты на торговлю.
Стратегия может быть оптимизирована в следующих аспектах:
Оптимизировать выбор временной точки ребалансировки на основе характеристик внутридневного цикла торговых продуктов.
Добавить другие технические показатели, чтобы избежать ребалансировки в неблагоприятные времена.
Оптимизировать параметр сверхнизкой покупки, чтобы сбалансировать преимущество и стоимость торговли.
Использование последующего стоп-лосса/приобретения прибыли для управления позициями между ребалансировками.
Используйте алгоритмы машинного обучения для обучения историческим данным и автоматической оптимизации временных точек перебалансировки.
Добавьте корректировки вокруг распределения акций, дивидендов и т. Д., Чтобы следовать изменениям времени.
В целом, стратегия временных ордеров может автоматизировать торговый процесс и снизить затраты на ручную операцию посредством периодического ребалансирования. Существует большое пространство для оптимизации в таких областях, как выбор временных точек ребалансирования, настройка параметров покупки, стоп-лосс/приобретение прибыли и улучшение алгоритма. Также необходимо учитывать определенные торговые риски и принимать соответствующие меры по управлению рисками. В целом, эта стратегия подходит для количественных трейдеров, ищущих эффективное автоматизированное ребалансирование.
/*backtest start: 2023-08-28 00:00:00 end: 2023-09-27 00:00:00 period: 1h 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/ // © ytrevor //@version=4 strategy("Order At Specified Time", overlay=true) // -- These inputs are for customizing the times of your desired orders -- // customHour = input(title="Hour for Order Execution", type=input.integer, defval=01, minval=00, maxval=24) // customMinute = input(title="Minute for Order Execution", type=input.integer, defval=00, minval=00, maxval=59) targetTime = timestamp("UTC", year, month, dayofmonth, customHour, customMinute, 00) //Order executes at this time inDateRange = (time >= targetTime) and (time <= targetTime) //Orders are placed everyday at 01:00 UTC, or any other time specified via input // -- These inputs are for back testing. Feel free to change the start and end dates via input -- // startDay = input(title="Start Day", type=input.integer, defval=10, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=2, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2021) endDay = input(title="End Day", type=input.integer, defval=22, minval=1, maxval=31) endMonth = input(title="End Month", type=input.integer, defval=3, minval=1, maxval=12) endYear = input(title="End Year", type=input.integer, defval=2021) betweenDates = true // -- Order execution -- // if betweenDates buyPrice = close*0.99 //Buy at 1% lower than selling price strategy.entry("Sell", strategy.short, when=inDateRange) //Sell at 01:00 UTC, or at any other time specified via input strategy.entry("Buy", strategy.long, limit=buyPrice, when=inDateRange) //Buy limit order placed at the same time, 1% lower than selling price