Алгоритм беспрерывной работы

Вопросы не подходящие к другим веткам форума.
Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Алгоритм беспрерывной работы

Сообщение Евгений »

Опишите пожалуйста алгоритм беспрерывной работы скрипта.
То есть когда компьютер включен постоянно и связь автоматически восстанавливается при разрыве.
Алгоритм стратегии примерно такой:
-------------------------------------
1. Разблокировка открытия в определенное время или с начала сессии.
2. Работа стратегии и совершение сделок.
3. Закрытие позиций по прибыли из таблицы
Результат торговли инструментом в рублях. Отражаемый результат зависит от заданного расчета прибылей/убытков за текущий день (описание в Табл. 9.6).
4.Блокировка открытия до смены даты или дня недели
------------------------------------

Допустим по итогу работы получена прибыль.
Что произойдет после смены даты сервера? Перед началом сессии.
Какая будет прибыль в табл?
Как выглядит цикл работы скрипта если он не выключается?
Как надо настроить скрипт для такой работы?

Аватара пользователя
Александр
Модератор
Сообщения: 41
Зарегистрирован: 18 июн 2020, 23:19

Re: Алгоритм беспрерывной работы

Сообщение Александр »

  • После запуска скрипта или восстановления соединения с сервером скрипт восстанавливает параметры позиции по данным таблицы "Позиции по клиентским счетам (фьючерсам)"
  • В процессе работы цена позиции рассчитывается по сделкам, приходящим из OnTrade
  • Прибыль всегда рассчитывается по имеющимся сделкам и рыночной цене. Если имеющихся сделок не достаточно для определения размера позиции (был перенос позиции через сессии без сохранения сделок предыдущей сессии), то в качестве цены недостающей сделки принимается цена закрытия предыдущей сессии из таблицы текущих торгов QUIK. В расчете прибыли используется средневзвешенная стоимость шага цены, чтобы приблизить результат к реальному
  • Смена даты никак не проверяется. Исключение "Расчет прибылей/убытков за текущий день"
Напоминание! На срочном рынке расчеты между участниками торгов проводятся во время клиринга - начисляется/списывается вариационная маржа. В течение торговой сессии вариационная маржа - это виртуальные деньги, во время клиринга они становятся реальными, позиция закрывается и открывается новая по цене закрытия предыдущей сессии. По этой причине считать прибыль "открытой" позиции в предыдущей сессии нецелесообразно, а только внутри торговой сессии. Тоже касается и цены позиции.

В качестве примера можете посчитать прибыль по следующим параметрам:
  • 05.04 Открыта позиция лонг 1 лотом RI по цене 140 000 со стоимостью шага цены 15 руб., шаг цены 10 пунктов
  • 06.04 стоимость шага цены была 16 руб., клиринг по цене 141 000
  • 07.04 стоимость шага цены была 14 руб., клиринг по цене 142 000
  • 08.04 стоимость шага цены была 10 руб., клиринг по цене 141 000
  • Позиция закрыта 08.04 по цене 140 000
Расчет:
  • 05.04 объем позиции 140 000 * 15 / 10 = -210 000 руб.
  • 06.04 объем закрытия текущей 141 000 * 15 / 10 = 211 500 руб. и открытия новой позиции 141 000 * 16 / 10 = -225 600 руб.
  • 07.04 объем закрытия текущей 142 000 * 16 / 10 = 227 200 руб. и открытия новой позиции 142 000 * 14 / 10 = -198 800 руб.
  • 08.04 объем закрытия текущей 141 000 * 14 / 10 = 197 400 руб. и открытия новой позиции 141 000 * 10 / 10 = -141 000 руб.
  • Позиция закрыта 08.04 по цене 140 000, объем 140 000 * 10 / 10 = 140 000 руб.
  • Итоговый результат: -210 000 +211 500 -225 600 +227 200 -198 800 +197 400 -141 000 +140 000 = 700 руб., хотя открыли и закрыли позицию по одной цене
Вывод:
  • в скрипте для инструментов с переменной стоимостью шага цены прибыль наиболее точно рассчитывается только при закрытии позиции внутри одной торговой сессии без переноса позиции на следующую (погрешность может быть из-за комиссий, которые невозможно учесть)
  • если не выключать QUIK и скрипт, то прибыль по инструменту будет отображаться за все дни работы
  • имитации работы брокера и биржи в части начисления/списания вариационной маржи в скрипте нет и не планируется

Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Re: Алгоритм беспрерывной работы

Сообщение Евгений »

Спасибо, а если Расчет прибылей/убытков за текущий день?
То при смене даты прибыль будет обнуляться если не выключать скрипт?

Аватара пользователя
Александр
Модератор
Сообщения: 41
Зарегистрирован: 18 июн 2020, 23:19

Re: Алгоритм беспрерывной работы

Сообщение Александр »

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

Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Re: Алгоритм беспрерывной работы

Сообщение Евгений »

Если Расчет прибылей/убытков за текущий день
Ну если сделки есть со вчерашней датой, то они не будут учтены в расчете прибыли сегодня.
Если сегодня не было сделок то начальная прибыль будет 0? или нет?

Допустим вчера была прибыль 5000 скрипт не выключался, сегодня сделок еще не было прибыль так и будет до начала работы сегодня 5000 правильно?
Как только будут совершены сделки то прибыль будет считаться так:
если сегодня опять прибыль 3000: то общая прибыль составит 8000 если - 3000 то 2000 после закрытия.
При этом если сделать закрытие позиции по опции риск то там тоже будет учитываться прибыль 8000 или только сегодняшняя

Например :
1. Закрытие по опции риск (Закрытие по фин рез)с максимальной прибылью 5000 прибыль 4500
2. Принудительный разрыв связи по этой же опции(как сделать чтобы сегодня уже скрипт не подключался?)
3. Завтра подключение, вчерашняя прибыль в скрипте 4500
3.1 Работа и закрытие по опции риск(Закрытие по фин рез) стоит 5000
3.2 Позиция закрыта сегодняшняя прибыль 4500(вчер)+4800(сег) , итого 9300
Так будет? или максимальную прибыль (Закрытие по фин рез) надо менять с учетом вчерашней на 10000 чтобы так было?

Аватара пользователя
Александр
Модератор
Сообщения: 41
Зарегистрирован: 18 июн 2020, 23:19

Re: Алгоритм беспрерывной работы

Сообщение Александр »

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

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

Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Re: Алгоритм беспрерывной работы

Сообщение Евгений »

А что во второй программе Falcon все эти проблемы решены и она способна работать автоматически?

Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Re: Алгоритм беспрерывной работы

Сообщение Евгений »

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


Например:

1. Начало работы... покупка чего то ... закрытие... получена прибыль/убыток
2. Блокировка до клиринга или времени или смены даты сервера
3. Сброс..обнуление прибыли по скрипту
4. Запуск..разблокировка стратегии... открытие ..закрытие ...прибыль/убыток
5. Блокировка по условиям
6. Сброс прибыли убытка по скрипту
7. Запуск..разблокировка стратегии... открытие ..закрытие ...прибыль/убыток
8. Блокировка по условиям
9. Сброс прибыли убытка по скрипту
10. Запуск..разблокировка стратегии... открытие ..закрытие ...прибыль/убыток
и так далее
11. Если позиция до вечернего клиринга не закрыта то записывать файл во время клиринга с данными позиции
12. Дальше проверять позицию и если она закрыта то обнулять файл, если нет то цену позиции брать из файла
13. На следующий день первым делом проверять наличие файла и позиции если данные по объему совпадают то брать цену из файла. При несовпадении искать ошибки

Файл можно сделать для каждого инструмента свой...[код инструмента..код счета].dat чтобы не работать с одним файлом сразу для всех инструментов.
Ну а с переносом позиции тут без файла с данными открытой позиции никак не обойтись
файл записывать например при открытии и закрытии позиции или во время клиринга вечернего или в конце вечерней сессии
На счет переменной стоимости шага думаю что это не критично в случае переноса решающее значение играет стоп-заявка в безубытке

Евгений
Сообщения: 57
Зарегистрирован: 06 июл 2020, 18:35

Re: Алгоритм беспрерывной работы

Сообщение Евгений »

К тому же в скрипте сделано так что стратегия работает только когда идет сессия, я правильно это понимаю?

Аватара пользователя
Александр
Модератор
Сообщения: 41
Зарегистрирован: 18 июн 2020, 23:19

Re: Алгоритм беспрерывной работы

Сообщение Александр »

Евгений писал(а):
11 апр 2021, 12:30
К тому же в скрипте сделано так что стратегия работает только когда идет сессия, я правильно это понимаю?
Цикл расчета инструментов, в т.ч. и стратегий, работает, только если в таблице текущих параметров QUIK статус фьючерса и состояние сессии акций "торгуется"

Ответить