Блог им. 1823244

Журнал истории сделок и открытых позиций

    • 16 января 2017, 23:52
    • |
    • nicolas
  • Еще

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

https://github.com/9159340/TradeHistory

главный файл — TradeHistory.lua

Ниже — описание из документации.

Таблица открытых позиций.

Внешний вид

 Журнал истории сделок и открытых позиций

Колонки

Account – код брокерского счета

Comment – комментарий из сделки.

secCode – код инструмента

classCode – код класса

tradeNumber – номер сделки, используется только в таблице закрытых позиций

 

Перечисленные выше колонки – это разрезы учета сделок. Подробнее о работе с комментариями смотрите в разделе «Возможности».

 

lot – размер лота

dateOpen – дата открытия позиции (самой первой сделки)

timeOpen – время открытия позиции (самой первой сделки)

operation – направление buy/sell

quantity – количество лотов

amount – балансовая стоимость позиции

priceOpen – средняя цена открытия

dateClose – дата закрытия позиции, заполнена только в таблице закрытых

timeClose – время закрытия позиции, заполнено только в таблице закрытых

priceClose – цена закрытия. Колонка обновляется из цен bid/ask, пока идут торги, и цены last, когда торги завершены.

qtyClose – количество, на которое закрыта позиция. В таблице открытых позиций это всегда общее  количество в позиции, в таблице закрытых – фактическое количество из сделки, которая закрыла позицию.

Profitpt – прибыль в валюте цены (пунктах). Рассчитывается относительно количества, закрывающего позицию.

profit % — прибыль в процентах (

priceOfStep – стоимость шага цены (для фьючерсов и опционов)

profit – прибыль в рублях (Profitpt * priceOfStep)

commission – комиссия брокера. Для информации. Пока не доделано, отображается только комиссия открывающей сделки на ФОРТС.

Accrual – НКД.

Days – количество дней в позиции.

buyDepo – ГО покупателя

sellDepo – ГО продавца

timeUpdate – время последнего обновления цены закрытия (priceClose).

В последней строке отображается сумма ГО по позициям на ФОРТС.

 

 Двойной щелчок на строке с позицией открывает таблицу с детализацией позиции до сделок.

  

Таблица закрытых позиций.

Открывается по двойному щелчку на первой строке таблицы открытых позиций, там, где написано «Click here to show closed positions».

Внешний вид ее аналогичен таблице открытых позиций, но заполнены колонки  dateClose, timeClose.

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

Возможности.

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

  • Ведение сделок в разрезе комментариев.

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

 

Известные проблемы.

  1. На валютной секции не реализована поставка валюты. Т.е. если вы купили TOM, то скрипт откроет позицию по нему. Если на следующий день продадите эту валюту в TOD, то у вас откроется шорт в TODe, а TOM так и останется непроданным.

 

Сторонние библиотеки.

Скрипт использует 2 dll.

1 sqlite3.dll

https://sqlite.org/download.html

Это микро-субд, обладающая почти всеми возможностями более серьезных, например MS SQL

2 lsqlite3.dll

Обертка над sqlite3.dll

http://lua.sqlite.org/index.cgi/index

для самостоятельной компиляции лучше воспользоваться системой luarocks.

Подробный процесс компиляции смотрите в файле Trade History developers guide.docx

Оба файла нужно положить в папку QUIK.

 

Настройки

Настройки находятся в файле TradeHistory_settings.lua.

function Settings:Init()

self.db_path = getScriptPath()… "\\positions2.db"  — здесь указываем путь к базе данных

                self.dark_theme = true — включаем темную (true) или светлую (false) тему

                self.show_total_collateral_on_forts = true — показывать итоговое ГО на фортс в последней строке

end

    ★37
    17 комментариев
    А не проще видос снять? А то этот птичий язык малопонятен. А вообще то тема нужная. На фортсе работает?
    avatar
    spas911, О, на видосах-то и язык понятнее, и темы обычно ещё нужнее..
    Не призывайте лучше к развитию тупиковой ветви.
    avatar
    вымученный муторный  (((
    Огромное спасибо!
    avatar
    Здравствуйте! У меня ошибка вылезла «no such table: fifo_short_2» что не так сделал?
    avatar
    mrAndrew, проверьте, чтобы файл positions2.db лежал в папке со скриптом. Если он нулевого размера, значит нужно скачать его еще раз с github.
    avatar
    nicolas, а папка со скриптом в папке квика? 
    avatar
    mrAndrew, нет, это не обязательно. в папке квика только две dll-ки
    avatar
    nicolas, странно вроде все сделал как вы описали, positions2.db лежит в папке размер 61440 но ошибка вылазит :(
    avatar
    mrAndrew, мистика какая-то. у меня работает. я скачал весь проект с гитхаба для проверки и он нормально запускается и фиксирует сделки. только что проверил. квик 7.2.1.5, не знаю, важна ли версия или нет.
    avatar
    nicolas, возможно с версией связано :(
    avatar
    разобрались. если меняете путь к базе, то учитывайте синтаксис Lua (вместо одного слэша нужно писать 2)
    avatar
     Спасибо! Очень помог! Все работает!
    avatar
    1.работает ли с единым счетом в Открытии?
    2. работает ли с фортс?
    avatar
    nazhiva, 
    1.работает ли с единым счетом в Открытии? — да. Нет разницы, ЕДС это или нет.
    2. работает ли с фортс? — да. изначально проект разрабатывался, чтобы учитывать текущую позицию на ФОРТС (чтобы клиринги не мешали видеть реальный профит/лосс)
    avatar
    Вылезает ошибка ...\Quik_Open\TradeHistory-master\TradeHistory_FIFO.lua:256: attempt to concatenate field 'trans_id' (a nil value)  что с этим делать ?
    спасибо на БКС работает, на едином счете в Открытии не получилось запустить(

    avatar

    теги блога nicolas

    ....все тэги



    UPDONW
    Новый дизайн