Разбираюсь с примером Quik SampleSMA. В этом примере если запускать робота не с начала дня, то сыпятся сделки по приходу свечек из истории. Есть ли какой-либо метод, чтобы запретить выставлять ордера на биржу, пока не будет закачана вся история?
Роман.
Comments (10)
Login or Create account, Log in or register to leave a comment
В сделке есть время, есть время запуска стратегии. Можно сравнить.
Да, я уже понял
Помимо этого в примере не обрабатывается построение МАшек при загрузке истории:
Статус свечек, загруженных из файла равен NULL, и они не строятся на графике и, соответственно, не рассчитывают МА. Плюс ко всему в риалтайме машки также считаются непонять как (скорее всего и в окне, и в стратегии расчет дублируется), но я еще не понял, что там нужно поправить.
candle.CloseTime не пойдет, всегда возвращает конец таймфрейма, а не время последней сделки свечки. Подскажите, как можно получить тиковые сделки по свечке или время последнего изменения свечки?
я делал так:
Кривовато, но работает.
Спасибо. Я сделал еще более коряво, но вроде тоже работает (пока изучаю):
Ооочень медленный способ. Дело в том, что так у вас будет каждый тик копироваться и пересоздаваться в памяти весь массив имеющихся тиков. Уже не говоря о том, что памяти будет расходовать будь здоров.
Да, я знаю, просто пока только начал разбираться с библиотекой, и многих моментов просто не знаю. Плюс еще сам с# не особо знаком, так что пока разбираюсь с примерами и делаю как более очевидно для меня 😀
PS а что за метод CopyFrom?
Ясно, я думал какая-то библиотека c# :)
Вот что у меня получилось, вроде работает, и не надо переопределять свечи:
Не уверен, нужно ли сначала удалять TimeFrameCandleBuilder, но вроде работает
CloseTime - это время закрытия свечи, а не время последнего обновления. То, что вы исправили одно место, где логика зависит от правильного CloseTime (IsCandleFinishedBeforeChange), не означает, что нет других таких мест. Наверняка они есть. А значит, от такого фикса могут возникать труднообнаружимые проблемы. Да и после того, как вы таким образом проехались по всем свечкам, CloseTime у них будет расставлен совершенно в разнобой, так как последний тик не обязательно приходит в последнюю секунду, и всегда неверно, так как последний тик свечи всегда идет раньше чем настоящий CloseTime.