В чём преимущество OnInit

Страницы: Пред. 1 2 3
RSS
В чём преимущество OnInit
 
TGB, Вы правильно понимаете: мой скрипт знает все подробности о текущих сделках. Когда эта информация становится ненужной, он о них забывает. Зачем мне бегать по таблице сделок (дополнительный "геморрой"), когда есть нормальные коллбеки, за которыми и следить-то не надо. Мало того, тот факт, что ты посмотрел на строчку в таблице, ещё не означает, что ты её обработал: это таблица для чтения у скрипта, но для записи у Квика, и могут возникать конфликты. Я точно знаю, например, что getItem МОЖЕТ возвращать nil - и что в таком случае делать будем? Наконец, эта таблица КВИКА, а не таблица ЛУА, т.е. на порядок более глючная и тормознутая конструкция. Да, мне тоже иногда приходится бегать по таблице 'orders', но это лишь в ИСКЛЮЧИТЕЛЬНЫХ случаях, пару раз за сутки, когда я хочу снять заявку, по которой не было ни одной сделки, и я тупо НЕ ЗНАЮ её номер. Да и не критично это всё: ну, допустим, скрипту не удастся снять неудачную заявку - да и хрен с ним: брокер потом снимет, если она до того времени не сработает - подумаешь, беда какая. А вот информация о сделках ВАЖНАЯ, её упускать нельзя. А полный код своего OnTrade я приводил - проще просто не бывает: сбрасываю данные в стек прерываний, И ВСЁ! Почти полный - там я тоже контролирую поля на nil на всякий пожарный. Да, "QUIK точно не HFT терминал", но не так уж редко бывают ситуации, когда весь рынок вдруг встрепенулся, и пара десятков ваших тикеров кинулись подавать заявки. А у меня хоть сотня сделок придёт - не беда: желания тикеров отправляются в стек заявок и выбираются оттуда по одной каждые полсекунды. Сделки немедленно попадают в стек прерываний и выбираются оттуда 4 раза в секунду, обычно по одной, но если там дубль уже обработанной (тоже тот ещё маразм: несколько прерываний на одно событие!), то по 2 или 3 элемента за раз. Даже если на рынке случится истерика, скрипт спокойно всё разгребёт за 10-20 секунд или там за минуту. Сказка! Ну и, наконец, стек активных заявок - там элементы существуют от момента подачи заявки до её закрытия или снятия. Он тоже почти всегда пустой, искать там что-либо очень быстро, и нужен он, главным образом, для отлова дублей прерываний и обработки ситуаций, когда заявка реализуется через множество сделок.
 
swerg, мои слова, процитированные Вами, были ответом Владимиру.
Для себя я все выяснил, о чем и высказывался уже в этой ветке.
Видимо, Вы поступили как в том анекдоте: "чукча - не читатель, чукча - писатель!"
Всё пройдет. Но это не точно.
 
Ziveleos, и? Я что-то неправильно написал? Тогда напишите в чем я неправ.

Один FTP и HFT путает, другой недоволен, что его не там процитировали.
А по делу-то что в итоге?
 
Цитата
Владимир написал:
Сделки немедленно попадают в стек прерываний и выбираются оттуда 4 раза в секунду, обычно по одной, но если там дубль уже обработанной (тоже тот ещё маразм: несколько прерываний на одно событие!), то по 2 или 3 элемента за раз.
  Можно выбирать 4 раза в секунду новые сделки из таблицы сделок и при этом не требуется ведения стека прерываний, борьбы с дублями колбеков, которые к тому же выполняются в потоке, отличном от main, а потому, по-хорошему, надо учитывать и то, что у вас со стеком ведется работа из двух потоков.
   Фрагмент эффективной обработки таблицы сделок:
Код
--- Инициализация -----
local  NumberOf = 0    ----  сохраненная длина таблицы сделок --
local  NumberOf_t   --
local  tbl_trades
-------
 
            -- Фрагмент чтения новых сделок (4 раза в секунду )   ---
NumberOf_t = getNumberOf ('trades')       --- быстрая операция ---
if NumberOf_t > NumberOf then   -- обработка всех новых возникших сделок --
   for i = NumberOf  - 1, NumberOf_t - 1 do   --  индексы в таблицах QUIK начинаются с 0  --
      tbl_trades = getItem ('trades', i)    -- быстрая операция (прямое чтение по индексу) ---
      ---   дальнейшая обработка новых сделок  ---

      ----------------------------------------
   end
   NumberOf =  NumberOf_t   -- сохранение длины таблицы сделок --
end

 
TGB, Да, можно выбирать 4 раза в секунду новые сделки из таблицы сделок, но ЗАЧЕМ? Зачем постоянно дрочить таблицу КВИКА, если можно вообще без обращения к ней иметь все данные уже внутри самого скрипта, в таблицах ЛУА? И что такое "ведение стека прерываний"?ВААПЩЕ НИЧЕГО! Любой из стеков инициализируется в начале мейна парой операторов, вроде:
Stack={}; -- сам стек
Stack[0]=0; -- его размер.
И доступ к любому из его элементов мгновенный, по индексам, раз в сто быстрее, чем обращение к таблице Квика. Но это мелочь - куда важнее то, что избежать борьбы с дублями колбеков всё равно не удастся. Более того, эта борьба станет тысячекратно сложнее! Дело в том, что данные в этих "дублях" НЕ ВСЕГДА одинаковые, и то, что Вы считали данные из таблицы, отнюдь не гарантирует, что они там корректные. Те самые прерывания, которые поступают в Квик не только передаются скрипту в OnTrade, но и вызывают перезапись таблицы сделок - я сам видел нули в некоторых полях этой таблицы (в айдишках заявок, транзакций, в цене - кажется, когда-то об этом писал), так что данные в строках таблицы не всегда сразу "устаканиваются". И кто Вам сказал,, что ловля дублей прерываний "выполняется в потоке, отличном от main"? По-хорошему (т.е. как у меня), работа со всеми стеками ведётся именно в потоке main!

По Вашему коду:
а) он вообще никак не учитывает нюансы, о которых я сказал выше и, следовательно, ОБЯЗАН время от времени "нарываться на неприятности".
б) Он всегда вырабатывает ВСЕ появившиеся записи, даже если их придёт несколько десятков или сотен. А ведь надо и за рынком следить - курсы читать, свечи считать, решения принимать.
в) В "секретной" части кода (то бишь в самой обработке) сидят потенциальные проблемы, и очень серьёзные: нужно ведь опознать, по какой ЗАЯВКЕ пришла эта сделка. У меня-то на этот случай есть стек активных заявок, а Вы что будете делать? Нужно ведь и деньги учесть, и портфель подкорректировать - да мало ли что ещё. А если это вообще "левая" заявка, поданная вручную, в обход скрипта через стакан?

Фрагмент четвертьсекундного обработчика
::Start:: -- метка на случай обработки ещё одного элемента
i=a[0][7][0]; -- размер стека, он же индекс последнего элемента
if i>0 then -- стек не пуст
a[0][7][0]=i-1; -- новый размер стека прерываний
...

СКАЗКА!
 
Цитата
TGB написал:
Цитата
    Не надо бегать по таблице сделок. Достаточно сохранять ее размер и только если он изменился, читать только новые записи.
колбек дает сигнал, когда размер таблицы изменится.
Поэтому с колбеком даже не надо проверять размер таблицы.
--------------------------------
Более того, можно в колбеке не разбирать таблицу на составляющие , а запоминать последний номер.
В итоге в колбеке все будет очень просто и при этом не будет проблем с уборщиком мусора.
 
относительно не использования библиотек C..
==================
Вот вам пример преимущества перед чистым СИ
---------------------
Вы в срипте как курица с яйцом носитесь с sleep в main,  Много поставите - раздуете  стек или очередь
мало поставите - лишняя пустая загрузка ядра процессора.
-----------------
Делаем библиотеку на си для работы с событиями.
В итоге поток main вызывается максимально быстро (примерно за 0.000001 сек) если надо и не вызывается никогда, если не надо.
sleep вообще не нужен.
-------------
И много чего еще можно сделать на СИ, например библиотека QLUA - вся исключительно на СИ или C++.
 
пардон опечатка
Вот вам пример преимущества перед чистым LUA
 
Всем добрый день!
Наконец дискуссия пошла в предметном русле русле.

swerg, Путать это мое Все.
Так как моя личная подготовка слаба (уходит к истокам). Цель - уму разуму набираться.
Не чего личного. Если чем то обидел прошу простить.
Просто хочется от опытных пользователей предметного обсуждения вместо общих фраз.

Касаемо предмета.
Переписал у себя т. всех сделок  как показывает TGB, "и последний стал первым"  - пока без нареканий.
Обработку т. 'trades' веду в колбеке пример взял у Владимир, - работает. Но все ругают колбеки чего ждать от них не понятно,
 
nikolz, Кто "носится"? sleep - это простейший способ эмуляции прерываний по таймеру, причём ЛЮБЫХ интервалов. Полскажите, будьте любезны, КАКИМ ОБРАЗОМ он может "раздуть  стек или очередь" или ХОТЬ КАК-ТО загрузить процессор? Мой скрипт на дохленьком двухъядерном 2 ГГц процессоре без напряжения обслуживает сотни тикеров, а стеки почти всегда пусты. Это Ваш онанизм с библиотеками и работой с событиями нафиг никому не нужен. ЗА КАКИМ ХЕРОМ "поток main вызывать максимально быстро", если скрипт и так работает в нём 99% времени. Даже не работает, а скорее отдыхает. Весь код на девственно чистом LUA, и НИ ОДНОЙ поганой библиотеки.
 
nikolz,
Цитата
nikolz написал:
Вот вам пример преимущества перед чистым LUA
Наверняка что то есть полезное, но большинству пользователей хотя бы с луа разобраться.
Просматривая ветки ведь основные нарекания идут на взаимодействие скрипта с терминалом (движок).
Бросал свои рабочие скрипты потому что поиск ошибки становился  затратным по Времени.
Сейчас все тупо пишу в лог, и придерживаюсь чем проще тем лучше!
Но Вопросов к реализации полно.
 
По поводу getNumberOf ('trades') vs OnTrade:  Всё зависит от того, где вы обрабатываете. Если из мэйна флаг изменения состояния OnTrade в цикле опрашивать, чтобы потом всё в мэйне обработать, то особой разницы между опросом в цикле изменения количества сделок getNumberOf ('trades') и этого флага в OnTrade практически нет, без OnTrade тогда проще. А если 2+2 непосредственно в OnTrade складываете и в мэйне обработки нет, то тогда не нужно с getNumberOf ('trades') заморачиваться. Всё зависит от трудоемкости обработки сделки, у каждого свой случай.
 
Игорь М, Ну, я обрабатываю в мейне, на флаг изменения состояния OnTrade мне насрать - я даже не знаю, что это такое. OnTrade лишь записывает данные в стек, код я приводил.
 
Цитата
VPM написал:
Переписал у себя т. всех сделок  как показывает  TGB ,
  В выложенном мною коде есть ошибка в строке:
Цитата
TGB написал:
for i = NumberOf  - 1, NumberOf_t - 1 do   --  индексы в таблицах QUIK начинаются с 0  --
  Должно быть:
for i = NumberOf , NumberOf_t - 1 do   --  индексы в таблицах QUIK начинаются с 0  --
  --------------------------
Цитата
Владимир написал:
раз в сто быстрее, чем обращение к таблице Квика. Но это мелочь
 Согласен (хотя сто это "сильное" утверждение).
Цитата
Владимир написал:
Те самые прерывания, которые поступают в Квик не только передаются скрипту в OnTrade, но и вызывают перезапись таблицы сделок - я сам видел нули в некоторых полях этой таблицы (в айдишках заявок, транзакций, в цене - кажется, когда-то об этом писал), так что данные в строках таблицы не всегда сразу "устаканиваются".
 С этим я не сталкивался (все нужные мне поля для анализа сделки получаю), но если это так, то просьба к поддержке: подтвердить это.
----
Цитата
Владимир написал:
Он всегда вырабатывает ВСЕ появившиеся записи, даже если их придёт несколько десятков или сотен.
 Я не очень понимаю почему сделки нельзя обрабатывать "пачкой", но код легко изменить так, чтобы при его вызове обрабатывалось не более одной сделки.
Цитата
Владимир написал:
проблемы, и очень серьёзные: нужно ведь опознать, по какой ЗАЯВКЕ пришла эта сделка. У меня-то на этот случай есть стек активных заявок, а Вы что будете делать?
Нет проблем. В считанной из таблицы сделок есть поле order_num. Это поле номер заявки, по которой выполнилась сделка. И вы легко можете опознать, по какой ЗАЯВКЕ пришла эта сделка.
Цитата
Владимир написал:
А если это вообще "левая" заявка, поданная вручную, в обход скрипта через стакан?
 Если в вашем стеке активных заявок, нет заявки, соответствующей считанной сделки, то можете, считать, что заявка подана вручную.
 
Цитата
swerg написал:
Ziveleos, и? Я что-то неправильно написал? Тогда напишите в чем я неправ.

Один FTP и HFT путает, другой недоволен, что его не там процитировали.
А по делу-то что в итоге?

swerg, правильно, неправильно, не в этом дело.
Захотелось высказаться - воля Ваша. Меня-то зачем приплетать?
Всё пройдет. Но это не точно.
 
TGB, А мне кажется, даже побольше, чем в сто: реализации я, конечно, не знаю, но в одном случае должна быть лишь пара прыжков по косвенной адресации, а во втором - вызов метода, заполнение полей значениями оттуда. Впрочем, неважно - пусть будет в три раза. :smile:

Вряд ли поддержка здесь что-либо подтвердит или опровергнет.

При торговле с малым количеством сделок в сутки действительно пофиг, все ли записи обрабатывать или поштучно. Но при активной торговле лучше балансировать нагрузку - как при подаче заявок, так и при обработке сделок.

Я не про то: поле-то order_num есть, но оно В ТАБЛИЦЕ (в моём случае передаётся через OnTrade). А какую заявку подавал САМ СКРИПТ? Он же У СЕБЯ должен найти эту заявку. Или не найти. И опознать её можно только по ID транзакции, т.к. при подаче заявки скрипт не знает и знать не может номер заявки - не он его присваивает. Вот и представьте: у Вас 1000 тикеров в обслуживании - где искать совпадение будете? А у меня стек активных заявок, там их обычно 1-2, редко больше, а иногда и вовсе ни одной.

Я так и считал когда-то, что "если в стеке активных заявок не нашлим нужный номер, то это заявка подана вручную". Это может приводить к некоторым неприятным наводкам. И сейчас скрипт такие заявки просто игнорирует - он их НЕ ПОДАВАЛ, он не отвечает за криворукость подавшего, а просто пишет в лог: "Не нашли - левая сделка по бла-бла-бла.
 
Ziveleos,
Цитата
Ziveleos написал:
Один FTP и HFT
Это мое авторство. И привлеку я Вас за наращение авторских прав.

Диву даешься!

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

Ау, это форум о трейдинге?
 
Владимир, Думаю осознал Ваш подход (стратегию).

Из Ваших публикаций на форуме, делаю краткий вывод:
1) Стратегия "скальперская"
2) Широкая диверсификация нужна на покрытие риска (> кол. тикеровв )  ну и конечно для заработка.
3) теперь понятна, грусть о потерянном рынке и подход "с высокой колокольне на все".

Я отошёл от таких подходов.
Интересует средний срок и инвест. подход (Горизонт прогнозирования или цели).
Именно о них я и рассуждаю в своих высказываниях. Именно здесь расхождение  понятиях.
Да и не считаю среднии, а фильтрую (Линия мгновенного тренда). отставание 1-3 периода данных в отличии 0.5 Периода.
Это подходы Дхона Элерса. Надеюсь правильно на писал.  
 
Уважаемые, разработчики, для себя делаю вывод: не будет движка будем общаться на других форумах!
Посмотрите по сторонам!
 
TGB,

Спасибо за предметное развитие темы и поддержку.
Не с логий норм у меня (пока).
Николай дал свои наработки для примера, Попробовал по своему разумению.
Не прошла фильтрация (от разработчиков)? опубликовал даже поругал,
Ответ 0 or nil?

Собственно  написал  тоже что и Вашем примере.
 
VPM, АРРИГИНАЛЬНО!
1) Нет у меня никакой "скальперской стратегии".
2) Широкая диверсификация никогда никому не мешала.
3) Что такое "грусть о потерянном рынке" и "подход с высокой колокольне на все", не врубился.
4) Про Джона Элерса впервые слышу.
 
Цитата
VPM написал:
Ziveleos,  
Цитата
Ziveleos написал:
Один FTP и HFT
Это мое авторство. И привлеку я Вас за наращение авторских прав.

Диву даешься!

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

Ау, это форум о трейдинге?

Ещё один "не читатель"!
Это swerg написал обращаясь ко мне, а я его процитировал.
Похоже, путаница не только в логике и аббревиатурах.    
Всё пройдет. Но это не точно.
 
Цитата
VPM написал:
Ау, это форум о трейдинге?

Нет.
Это - Главная  » Основные форумы  » Программирование на языке Lua
Как и написано в "шапке".
Всё пройдет. Но это не точно.
 
Цитата
VPM написал:
Но все ругают колбеки чего ждать от них не понятно,
Так как не только использую все колбеки QLua, но и пишу свои дополнительные колбеки для скриптов Lua,
то попробую объяснить что это за зверь.
-------------------
колбек - это обычная глобальная функция на Lua (можно и на C), но с конкретным именем.
---------------------
В терминале QUIK , при обработке полученных данных с сервера, перед тем как отправить данные в таблицы терминала,
делается вызов функции Lua с именем колбека и ей передаются данные.
--------------------------
Если такой функции нет, то ее нет в глобальном стеке Lua и ее вызов пропускается.
===================
Резюме:   Если Вы ругаете колбеки, то Вы ругаете "чистое" Lua, так как колбек -это функция на чистом луа.
-------------
Колбеки обычно ругают те, кто  луа не изучил толком и в функциях QLUA не разобрался.
---------------
Но зеркало не виновато, в том ...
 
Ziveleos, Огромное Вам спасибо! Очень ценно глубокомысленно талантливо!

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

Что читать, не читать дело личное. Я лишь уточняю свой подход.
John F.Ehlers (так правильно)  опубликовал свой подход в четырех книгах в алгоритмах.
Я одно время увлекся написав себе индикаторы, не которые до сих пор применяю в своих подхода.
Отлично работает его "мгновенная линия тренда".

Это уже кому интересно, может посмотреть готовую реализацию не которых идей в свободном доступе у Николая.
 
nikolz,
Цитата
Если Вы ругаете колбеки, то Вы ругаете "чистое" Lua, так как колбек -это функция на чистом луа. Колбеки обычно ругают те, кто  луа не изучил толком и в функциях QLUA не разобрался.
Блестящая подборка клинического бреда. Как говорится: "Молчи - за умного сойдёшь".

VPM,  А я тут при чём? Мне насрать на все "шаблоны в подходах к организации  торговле и удержанию позиции". Как и на John F.Ehlers - подумаешь, "опубликовал свой подход в четырёх книгах в алгоритмах". Я сам алгоритмист, и ни один мой подход на 4 книги не растянуть: "кто неясно мыслит, тот неясно излагает". Индикаторы я никогда не писал и не собираюсь, и уж что-что, а "мгновенная линия тренда" мне уж точно нафиг не нужна.
 
Владимир, ключевое
Цитата
VPM написал:
кому интересно
Вы не причем
 
Цитата
Владимир написал:
Широкая диверсификация никогда никому не мешала.
Это если нет комиссий.
А в нашем случае зависимости нелинейные.
Все что можно посчитать оптимальное количество.
 
VPM, А комиссия-то здесь каким боком?
 
Результат / Затраты;

Затраты - комиссии, конвертации.
Чем шире и чаще тем больше.

Результат спред, тренды, ликвидность все разное.

На мой взгляд,  диверсификация нужна когда инструменты двигаются в противоположных направлениях,
тем самым сглаживая просадки.
 
VPM, Сроду не обращал внимания ни на комиссию, ни на дивиденды, считая, что одно примерно компенсирует другое. Только когда Борьке понадобилось множество частых сделок с небольшой прибылью в каждой, да когда ввели это дурацкое правило про "пассивные сделки", что-то там прикрутил для снижения комиссии. На спред и тренды всегда плевал с высокой колокольни, а ликвидность лишь очень грубо оценивал для определения "качества" тикера: если там народ ковыряется, значит, и нам можно. А диверсификация нужна всегда - тупо для страховки: что бы такого ужасного ни произошло с парой-тройкой тикеров, на состоянии всего портфеля это мало повлияет.
 
Цитата
Владимир написал:
А диверсификация нужна всегда - тупо для страховки: что бы такого ужасного ни произошло с парой-тройкой тикеров, на состоянии всего портфеля это мало повлияет.
Нет такое я тоже пользую в портфеле Акций. Я не говорю что совсем не нужно я говорю про оптимальное количество к вопросу о количестве в портфеле
Цитата
Владимир написал:
понадобилось множество частых сделок с небольшой прибылью в каждой
А что тут придумаешь в место рыночных лимитные ордера. Не знаю насчет отложенных.
Цитата
Владимир написал:
правило про "пассивные сделки"
А что это такое?
 
Срочный он абсолютно другой, Во первых плечо 10.
Ходит от клиринга до  клиринга. Чем ближе окончание расчетов или поставки, тем ближе к своему активу.

Но главное клиринг - все обновит.
 
Цитата
Владимир написал:
Игорь М, Ну, я обрабатываю в мейне, на флаг изменения состояния OnTrade мне насрать - я даже не знаю, что это такое. OnTrade лишь записывает данные в стек, код я приводил.
В коде у вас изменение размера стека. Это и есть флаг изменения состояния OnTrade.
 
VPM, А оптимальное количество зависит от размера кошелька - чем больше, тем лучше. Я бы с удовольствием имел в портфеле 500-1000 тикеров, но где же столько бабла найти. Да и биржа накрылась медным тазом - по крайней мере, мой любимый долларовый рынок и не особо любимый  евровый.

У меня все ордера только лимитные. А пассивные сделки - это сделки по заявкам, которые успели хоть немного полежать в стакане. А на срочном рынке плечо далеко не всегда 10, бывает и 3. Говорят, бывает ещё меньше, но я не видел. Да ещё клиринги, которые вымывают клиентов с малыми деньгами (точнее, с малыми резервами свободных денег.

Игорь М,  Нет, изменение размера стека - это никакой не "флаг изменения состояния OnTrade" - это всего лишь указатель, что в стеке что-то есть. Выбирается стек в обработчике по таймеру, размер стека, ессно, меняется, а OnTrade при этом может и вообще не быть.
 
Цитата
Владимир написал:
оптимальное количество зависит от размера кошелька - чем больше, тем лучше
Нет это так не работает - зависимости не линейные.
Цитата
Владимир написал:
Я бы с удовольствием имел в портфеле 500-1000 тикеров
А зачем ведь можно просто регулировать количество в открытой позиции.
qty * price = Стоимость позиции.
Да и управлять можно только qty.
Главное чтоб рынок пропускал.
Цитата
Цитата
Владимир написал:
где же столько бабла найти
Мы на биржи за ним гоняемся. Или другие варианты они известны.

Цитата
Владимир написал:
А на срочном рынке плечо далеко не всегда 10, бывает и 3
Не знал что гарантийное обеспечение разное. Но даже 3 требует других подходов.
 
Вы писали, что используете OnTrade и обрабатываете в мэйне, хотя у вас в OnTrade  аж 250 мс обработка, ну это ладно.  Наверху большим количеством текста спорили с TGB , что лучше. Я кратко  описал возможные варианты, даже не для вас, а для тех кто читает. В том  варианте, что используете вы (только с одной функцией обратного вызова OnTrade), разницы между OnTrade и getNumberOf  ('trades') с вашей скоростью опроса нет. Кому, что нравится, то он и  делает.
 
Проверил у себя да действительно старый брокер дает 10 а новый 3.
Это видимо связано с квалификацией требованием ЦБ.
А Вы говорите где взять.
 
VPM, Это ТАК работает: чем больше, тем лучше. А на бирже нет никаких зависимостей - тем более, линейных.

А затем, что "регулировать количество в открытой позиции" - это ОДИН тикер. А я хотел бы иметь МНОГО тикеров. Но, увы, возможности моего скрипта многократно превышают мои финансовые возможности.

Нет, МЫ на бирже за баблом НЕ гоняемся. Мы снижаем риски. :smile:

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


Игорь М, Да, я писал, что использую OnTrade и обрабатываю в мэйне, но в OnTrade у меня НЕТ никакой обработки, да и в мейне она не "аж 250 мс", а стократ быстрее - это обработчик сделок вызывается раз в 250 мс. Да, я не согласен с TGB, хотя в наших подходах только одно различие: я говорю, что нужен ОДИН коллбек, а он - что НИ ОДНОГО. Всего в единичку разница! :smile:  
 
Самый бестолковый колбек это OnTrade.
------------------------------------
Нет смысла тратить на него вообще какое-нибудь время,
так как совершение сделки отражается в заявках и в портфеле.
 
nikolz, Лапуль, OnTrade - это ЕДИНСТВЕННЫЙ коллбек, на который можно потратить время: все остальные можно смело выбросить на помойку. А портфель нормальные люди ведут САМИ, а не читают его у брокера. Разве что для сверки портфелей, которая глючит со страшной силой, и лично я её тоже выбросил на помойку.
Страницы: Пред. 1 2 3
Читают тему
Наверх