- После того как получаем свечку GetTimeFramecandle в SmaStrategy, вывожу значения OpenPrice, Close и Volume в файл. Значения ClosePrice и Volume сильно отличаются от той свечки что нарисована на графике. OpenPrice всегда совпадает. Причём Volume меньше чем у свечки на графике, то есть получаем незавершённую свечу. Как получить завершённую?
- В последнее время начал замечать, иногда чем дольше программа работает, тем больше она тормозит. График в S# отстаёт от квиковского графика. С чем это связано
← Назад
Комментарии (10)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
График в квике. Привожу кусок файла в который я записываю данные свечки сразу после GetTimeFrameCandle: Time = 26.05.2010 16:26:54,candle.Time = 26.05.2010 16:24:00, candle.OpenPrice = 69.02, candle.ClosePrice = 69, candle.Volume =285552 Time = 26.05.2010 16:28:44,candle.Time = 26.05.2010 16:25:00, candle.OpenPrice = 69.01, candle.ClosePrice = 68.87, candle.Volume =976522 Time = 26.05.2010 16:29:44,candle.Time = 26.05.2010 16:26:00, candle.OpenPrice = 68.87, candle.ClosePrice = 68.91, candle.Volume =674798
Первое время это MarketTime (время, в которое произошла запись), второе время это собственно candle.Time. Бросается в глаза разница запаздывания. Причем разница есть всегда - когда даже тормозов нет. Сейчас опять тормоза начались. В квике сделка прошла в 16:09:15, а в программе, на панели, сообщение об этом, что статус заявки стал Matched появилось только в 16:11:45 (это я сам визуально по часам замерил с точностью +/- 5 секунд).
А в самом Квике как быстро изменилась заявка?
Да в самом квике то нормально вроде всё. Было несколько перевыставлений заявок с разницей 5-6 секунд (я просто задал в MQS период 5 сек), после чего она исполнилась. Меня смущает Запаздывание появления свечи. Я сначала понять не мог, почему заявки появляются не в тот момент когда должны, ещё свчка не до конца сформировавшаяся.
Я думаю тут причина одна единственная. И с заявка и со свечками... У Вас на компьютере время биржевое? GetTimeFrameCandle Вы по какому событию или месту кода вызываете?
На компьютере локальное время. В программе MarketTimeOffset я проводил. Это видно из файла. GetTimeFrameCandle вызывается как в SampleSMA в OnProcess, сразу после проверки не находится ли стратегия в процессе остановки. Я там практически ничего не поменял, только условия на покупку и продажу.
Какой у Вас сдвиг по времени от биржевого? Проверю с Вашими настройками у себя.
локальное время +3 к Москве. Делаю MarketTimeOffset(-3). Тогда оно приводится к биржевому.
Сегодня глюк был. Торгует стратегия одним контрактом фьюча РТС. Идут покупки-продажи по 137200 плюс/минус. А потом раз, в программе, на панели смотрю - купилось 60 фьючей по 1515, через некоторое время продалось 777 контрактов по 70,91. В квике таких сделок естественно не было. В таблице инструменты у меня ещё выводится Лукойл и Сбербанк и цены программа очевидно взяла ихние, перепутала иными словами. Лог к сожалению привести не могу, т.к. не ожидал такого и в код Logger не прописывал.
http://i5.fastpic.ru/big/2010/0531/ec/2f18d246637cb24f5b4c5caca7fc7dec.jpg
У меня оказывается записывался лог ( с предыдущей стратегии строки остались). Так вот там заявки с такими ценами и с таким количеством не фигурируют.