как узнать какая была цена Ask и Bid в интересующий момент времени?

 
Подскажите пожалуйста, как узнать какая была цена Ask и Bid в интересующий момент времени? Должна же быть функция что то типа, ask = функция(Symbol(), PERIOD_CURRENT, Time, Ask);, чтоб время вставить просто и все. 
 

Такое было бы возможно, если бы МТ4 сохранял тиковую историю да еще и со спредами. Но этого, к сожалению, нет. Во-первых, максимальная детализация истории - минута с ценами OHLC, а, во-вторых, это цены только Bid. Цена Ask вообще никак не запоминается. Можно получить только последнюю известную цену Ask.

Для получения цены открытия какой-либо свечи по времени, следует использовать следующий алгоритм:

int barIndex = iBarShift(NULL, 0, time);                            // Определение индекса бара, соответствующего времени time
double openPrice = iOpen(NULL, 0, barIndex);                        // Определение Bid цены открытия бара barIndex
 
Scriptong:

Такое было бы возможно, если бы МТ4 сохранял тиковую историю да еще и со спредами. Но этого, к сожалению, нет. Во-первых, максимальная детализация истории - минута с ценами OHLC, а, во-вторых, это цены только Bid. Цена Ask вообще никак не запоминается. Можно получить только последнюю известную цену Ask.

Для получения цены открытия какой-либо свечи по времени, следует использовать следующий алгоритм:

 

то есть узнать цену внутри бара не представляется возможным? ( H1 к примеру и надо узнать цену  25 минут назад напиример) Графики же он рисует как то(((

 
DaniilAG:

то есть узнать цену внутри бара не представляется возможным? ( H1 к примеру и надо узнать цену  25 минут назад напиример)

Никак, если нет данных младшего таймфрейма. Но даже самый младший таймфрейм - М1. То есть для Н1 существует детализация движения цены (М30, М15, М5, М1), а вот для М1 - нет, только цены OHLC.

 Графики же он рисует как то(((

Только OHLC, больше ничего терминал не отображает.
 
Scriptong:

Никак, если нет данных младшего таймфрейма. Но даже самый младший таймфрейм - М1. То есть для Н1 существует детализация движения цены (М30, М15, М5, М1), а вот для М1 - нет, только цены OHLC.

Только OHLC, больше ничего терминал не отображает.

ясно, спасибо

 
Scriptong:

Никак, если нет данных младшего таймфрейма. Но даже самый младший таймфрейм - М1. То есть для Н1 существует детализация движения цены (М30, М15, М5, М1), а вот для М1 - нет, только цены OHLC.

Только OHLC, больше ничего терминал не отображает.

а как то сохранить реально поступающие цены в файл или куда нибудь, а потом их оттуда дернуть?

 
DaniilAG:

а как то сохранить реально поступающие цены в файл или куда нибудь, а потом их оттуда дернуть?

 

Я решил эту проблему, принтуя любое действие советника одновременно с проверками на ошибки и на положительный результат! Только не удаётся отследить момент срабатывания СЛ и ТП, да сервер сам себя выдаёт, если превышает разрешённые проскальзывания.
 
Scriptong:

Такое было бы возможно, если бы МТ4 сохранял тиковую историю да еще и со спредами. Но этого, к сожалению, нет. Во-первых, максимальная детализация истории - минута с ценами OHLC, а, во-вторых, это цены только Bid. Цена Ask вообще никак не запоминается. Можно получить только последнюю известную цену Ask.

 Для МТ5 уже сделали такую функцию, надеюсь и до МТ4 руки дойдут.

В терминале есть внутренний буфер тиков, размер = 2000 тиков, 
вот в пятерке к нему и дали программный доступ.

int  CopyTicks( 
   string           symbol_name,           // имя символа 
   MqlTick&         ticks_array[],         // массив для приема тиков 
   uint             flags=COPY_TICKS_ALL,  // флаг, определяющий тип получаемых тиков 
   ulong            from=0,                // дата, начиная с которой запрашиваются тики 
   uint             count=0                // количество последних тиков, которые необходимо получить 
   );
 
 
DaniilAG:

а как то сохранить реально поступающие цены в файл или куда нибудь, а потом их оттуда дернуть?

Посмотрите на мои работы в CodeBase - там уже давно есть решение всех этих проблем.
 

Scriptong:
Посмотрите на мои работы в CodeBase - там уже давно есть решение всех этих проблем.

если не сложно, дайте ссылочку 

 

DaniilAG:

если не сложно, дайте ссылочку  

Если конкретно по сбору тиков, то - Сборщик тиков.
Причина обращения: