Самунджян Артем Rebelion
Пасиба за ответ! Буду пробовать. А подскажите, почему при выставлении заявки на свечке в истории в режиме эмуляции у меня заявка привязывается к текущему времени, а не ко времени свечек? Т.е. все сделки сыпятся в итоге (когда стратегия прогоняется с начала торгового дня до текущего времени) в одно время - в текущее?
Потому что время выставлении заявки = времени её выставления [biggrin] Режим истории и эмуляции это разные вещи. Режим эмуляции на текущих данных только проходит, а на истории, только на исторических.
Rebelion
Насчёт курсов - я планирую после НГ, сейчас просто с деньгами не очень в моменте. :-(
У Вас уже есть опыт программирования C#, вы можете пройти
edulive (как раз таки то о чем я писал). Более ускоренно начинать обучаться, а когда накопите, то сможете пройти основные курсы со скидкой на саму стоимость edulive.
Да, по поводу Edulive - присоединюсь после 4-го ноября, когда зп дадут, обязательно.
В отношении C# - опыт есть и немалый. До этого разработкой в связке MSVS + WL занимался, писал под WL, но у WL куча проблем - проблемы с собственными свечками клиента, возможностью экспорта данных вовне и прочая, прочая, прочая. Поэтому и переключился на S# - считаю, что за этим проектом будущее.
Насчёт ордеров, собственно, тогда вопрос такой.
Допустим, мне надо сделать так, чтобы моя стратегия, которая запускается в произвольное время в течение дня (ну, проспал я, например, начало торгов), отрисовывала бы на графике свечек те сделки, которые были в прошлом (с начала дня), при этом работая с текущими данными и генерируя сигналы по текущим строящимся свечкам (работаю я с Range свечками). Как лучше было бы объединить куски кода по отрисовке ранних ордеров и текущих ордеров на графике?
Да, ещё попутный вопрос - код
Code
private void ProcessCandle(Candle candle)
{
var bollingerBands = candle.State == CandleStates.Finished ? new ChartIndicatorValue(_strategy.bBands, _strategy.bBands.Process(candle)) : null;
var maValue = candle.State == CandleStates.Finished ? new ChartIndicatorValue(_strategy.movingAverage, _strategy.movingAverage.Process(candle)) : null;
_chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
{
{ _candlesElem, candle },
{ _bBands, bollingerBands },
{ _movingAverage, maValue },
};
}
не отрисовывает линии боллинджера. При этом свойства индикатора IsFormed стоит в состоянии true. Скользящая средняя отрисовывается нормально. Верно ли я понимаю, что комплексные индикаторы должны отрисовываться несколько иначе, чем обычные типа скользящей средней?
Спасибо!