Стратегия выбора времени заказа


Дата создания: 2023-09-28 15:26:20 Последнее изменение: 2023-09-28 15:26:20
Копировать: 4 Количество просмотров: 659
1
Подписаться
1617
Подписчики

Обзор

Основная идея стратегии временного заказа заключается в том, чтобы совершать покупки и продажи в пользовательское время. Эта стратегия позволяет пользователю установить точный момент времени, когда он сначала продаст свою текущую позицию, а затем купит ее по цене, которая на 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