SampleSmartSMA
Atom Ответить
05.03.2011


На примере SampleSmartSMA попробовал разобраться как работать с этой библиотекой.
1. Если поменять таймфрейм на SmartTimeFrames.Minute1 то _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); почти всегда возвращает null. Если время на локальном компьютере отличается от времени Trader.MarketTime то со 100% вероятностью это происходит.
2. ProcessDataError - часто возникает событие сo stackoverflowexception.

Как с этим бороться?

Теги:


Спасибо:




14 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.03.2011
Ответить


roman Перейти
На примере SampleSmartSMA попробовал разобраться как работать с этой библиотекой.
1. Если поменять таймфрейм на SmartTimeFrames.Minute1 то _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); почти всегда возвращает null. Если время на локальном компьютере отличается от времени Trader.MarketTime то со 100% вероятностью это происходит.
2. ProcessDataError - часто возникает событие сo stackoverflowexception.

Как с этим бороться?


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

roman

Фотография
Дата: 05.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти
На примере SampleSmartSMA попробовал разобраться как работать с этой библиотекой.
1. Если поменять таймфрейм на SmartTimeFrames.Minute1 то _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); почти всегда возвращает null. Если время на локальном компьютере отличается от времени Trader.MarketTime то со 100% вероятностью это происходит.
2. ProcessDataError - часто возникает событие сo stackoverflowexception.

Как с этим бороться?


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


Про жизненные условия не понял фразы:(
У меня не получается получать свечки в онлайне. Т.е. GetTimeFrameCandle не возвращает данных, хотя потом если по истории посмотреть в этот период были сделки.
Текст ошибки пришлю, когда тестовый сервер заработает, т.е. после праздников как я понимаю.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.03.2011
Ответить


roman Перейти

Про жизненные условия не понял фразы:(


Я имел ввиду то, что надо и в других местах исправлять тайм фрейм. В частности, RegisterTimeFrameCandles.
Спасибо:

roman

Фотография
Дата: 05.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти

Про жизненные условия не понял фразы:(


Я имел ввиду то, что надо и в других местах исправлять тайм фрейм. В частности, RegisterTimeFrameCandles.


Во всех местах исправил, в частности RegisterTimeFrameCandles, RegisterHistoryData
ну и :
private readonly TimeSpan _timeFrame = (TimeSpan)SmartTimeFrames.Minute1;
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 05.03.2011
Ответить


roman Перейти
Mikhail Sukhov Перейти
roman Перейти

Про жизненные условия не понял фразы:(


Я имел ввиду то, что надо и в других местах исправлять тайм фрейм. В частности, RegisterTimeFrameCandles.


Во всех местах исправил, в частности RegisterTimeFrameCandles, RegisterHistoryData
ну и :
private readonly TimeSpan _timeFrame = (TimeSpan)SmartTimeFrames.Minute1;


Иногда бывает так, что обращение идет раньше, чем есть реально сделки.
Спасибо:

roman

Фотография
Дата: 09.03.2011
Ответить


Если время на локальном компьютере отличается от времени Trader.MarketTime то candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); возвращает null.
Такого по идее не должно быть, может где то локально время в исходниках используется вместо Trader.MarketTime?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2011
Ответить


roman Перейти
Если время на локальном компьютере отличается от времени Trader.MarketTime то candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); возвращает null.
Такого по идее не должно быть, может где то локально время в исходниках используется вместо Trader.MarketTime?


Биржевое время
Спасибо:

roman

Фотография
Дата: 09.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти
Если время на локальном компьютере отличается от времени Trader.MarketTime то candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); возвращает null.
Такого по идее не должно быть, может где то локально время в исходниках используется вместо Trader.MarketTime?


Биржевое время


время выставил в итоге на компьютере с точностью до 2 секунд с московским.
Но все равно минутные свечи не возвращаются candleManager.GetTimeFrameCandle :(
раз 20 запускал в отладчике.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2011
Ответить


roman Перейти
Mikhail Sukhov Перейти
roman Перейти
Если время на локальном компьютере отличается от времени Trader.MarketTime то candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); возвращает null.
Такого по идее не должно быть, может где то локально время в исходниках используется вместо Trader.MarketTime?


Биржевое время


время выставил в итоге на компьютере с точностью до 2 секунд с московским.
Но все равно минутные свечи не возвращаются candleManager.GetTimeFrameCandle :(
раз 20 запускал в отладчике.


Вы посмотрите, время правильное передается в GetTimeFrameCandle?
Спасибо:

roman

Фотография
Дата: 09.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти
Mikhail Sukhov Перейти
roman Перейти
Если время на локальном компьютере отличается от времени Trader.MarketTime то candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame); возвращает null.
Такого по идее не должно быть, может где то локально время в исходниках используется вместо Trader.MarketTime?


Биржевое время


время выставил в итоге на компьютере с точностью до 2 секунд с московским.
Но все равно минутные свечи не возвращаются candleManager.GetTimeFrameCandle :(
раз 20 запускал в отладчике.


Вы посмотрите, время правильное передается в GetTimeFrameCandle?

время передается текущее минус минута третьим параметром
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2011
Ответить


roman Перейти

время передается текущее минус минута третьим параметром


А на самом графике текущая свечка рисуется?
Спасибо:

roman

Фотография
Дата: 09.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти

время передается текущее минус минута третьим параметром


А на самом графике текущая свечка рисуется?

Рисование на графике происходит по другому, т.е. через событие.
На графике у меня сейчас отключено рисование чего либо (закоментарен этот код), но когда не был закоментарен - то текущая свечка не рисовалась, я думал что это был глюк графика самого, потому что данные в него приходили в отладчике если смотреть.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 09.03.2011
Ответить


roman Перейти
Рисование на графике происходит по другому, т.е. через событие.
На графике у меня сейчас отключено рисование чего либо (закоментарен этот код), но когда не был закоментарен - то текущая свечка не рисовалась, я думал что это был глюк графика самого, потому что данные в него приходили в отладчике если смотреть.


Предлагаю начать хоть с какого-то поиска неисправности. Пишите в лог, регулярно ли приходят новые сделки, создаются свечки (+ за какой период).
Спасибо:

roman

Фотография
Дата: 11.03.2011
Ответить


Mikhail Sukhov Перейти
roman Перейти
Рисование на графике происходит по другому, т.е. через событие.
На графике у меня сейчас отключено рисование чего либо (закоментарен этот код), но когда не был закоментарен - то текущая свечка не рисовалась, я думал что это был глюк графика самого, потому что данные в него приходили в отладчике если смотреть.


Предлагаю начать хоть с какого-то поиска неисправности. Пишите в лог, регулярно ли приходят новые сделки, создаются свечки (+ за какой период).


Сейчас не воспроизводится, похоже с тестового сервера с задержкой данные приходили и поэтому алгоритм не работал
Автор топика
Спасибо:


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

loading
clippy