Стратегия временного порядка

Автор:Чао Чжан, Дата: 2023-09-28 15:26:20
Тэги:

Обзор

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

Логика стратегии

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

В частности, стратегия сначала проверяет, находится ли текущее время в пределах установленного пользователем диапазона даты начала и окончания. Если да, то при достижении указанного момента исполнения ордера она сначала продаст текущую позицию по рыночной цене, а затем разместит лимитный ордер на покупку по 99% от текущей цены. Это достигает ребалансировки по цене на 1% ниже текущей цены в конкретный момент времени.

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

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

К конкретным преимуществам относятся:

  1. Полностью автоматизированная работа, сокращение ручных затрат.

  2. Позволяет периодически перебалансировать позиции в определенные моменты времени.

  3. Получает сверхнизкие возможности покупки примерно на 1% ниже текущих цен во время каждого ребалансирования.

  4. Настраиваемые временные точки ребалансировки, гибкая настройка.

  5. Настраиваемые даты начала и окончания циклов ребалансирования, удобные для оптимизации обратного тестирования.

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

Стратегия также несет в себе некоторые риски:

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

  2. Если цена покупки ниже цены продажи всего на 1%, то в каждом цикле ребалансировки может не быть достаточной сверхнизкой разницы по цене покупки.

  3. Как продать, так и купить - это рыночные заказы, которые могут страдать от некоторой степени скольжения.

  4. Если стратегия действует только в определенные периоды времени, рынок не может управляться между этими периодами.

  5. Частые ребалансировки будут повлечь за собой относительно более высокие комиссионные за торговлю.

Соответствующие решения:

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

  2. По мере необходимости увеличить параметр спреда покупной цены.

  3. Выбирайте продукты с хорошей глубиной и низкой волатильностью.

  4. Комбинировать с другими стратегиями управления рисками в периоды, не связанные с ребалансировкой.

  5. Контролировать частоту ребалансировки, чтобы сбалансировать преимущества и затраты на торговлю.

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

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

  1. Оптимизировать выбор временной точки ребалансировки на основе характеристик внутридневного цикла торговых продуктов.

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

  3. Оптимизировать параметр сверхнизкой покупки, чтобы сбалансировать преимущество и стоимость торговли.

  4. Использование последующего стоп-лосса/приобретения прибыли для управления позициями между ребалансировками.

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

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

Резюме

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


/*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




Больше