Не стал создавать новую тему, т.к. лично у меня вопрос хоть и не совсем по теме, но очень близок.
Есть недопонимание работы вот этого кода:
ds, Error = CreateDataSource (CLASS, SEC, INTERVAL_M5); -- Куда запихнуть пока под вопросом.
numPrice = ds:Size() -- Получаем размер массива графика цены.
Open = ds:O(numPrice)
High = ds:H(numPrice)
Low = ds:L(numPrice)
Close = ds:C(numPrice)
Volume = ds:V(numPrice)
В принципе сам код абсолютно понятен, создаем источник данных, получаем размер таблицы и пишем в переменные текущие значения. Но есть вопросы, на которые я не нашел ответа самостоятельно.
1. Я создаю источник данных и получаю его в ds. Лично я не уверен, но насколько я понял из справки, этой строкой я запрашиваю данные у брокера, а не беру их из графика "Price"?
2. Достаточно ли один раз создать источник данных, например в OnInit(), и далее ds будет обновляться сам или надо каждый раз ds, Error = CreateDataSource (CLASS, SEC, INTERVAL_M5)?
3. Могу ли я получить только нужные мне свечи, а не сразу все 3 тысячи штук? Вопрос не в том, как выбрать из ds их, именно так я и делаю сейчас, а именно в ds получить только, например, текущую и предыдущую ей свечи? Это просто вопрос оптимизации, чтобы не забивать память компа.
4. Честно говоря еще не испытывал, но есть мысль присвоить "Price" идентификатор и работать с ним как с индикаторами, но это честно говоря такой себе вариант, который имеет право на жизнь в случае невозможности реализовать это другими способами. Т.е. такой крайний вариант.