АвторСообщение



Сообщение: 6
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 04.11.14 12:09. Заголовок: Объемы на внешем и внутренних барах не совпадают


Я уже давно заметил, что иногда объем на текущем (внешнем, большом) баре графика не совпадает с суммой объемов на внутренних барах внутри текущего. Например, у 5-значного брокера GKFX для пары EURUSD на 4-часовом графике 2014.10.31 в 20:00 объем равен 5897, а на часовых (30-мин и вплоть до минутных) барах с 20:00 до 23:59 сумма объемов равна 5164. В данном случае на 4-х часовом графике четко виден разрыв, а последний час 2014.10.31 торговли не было. Также интересно, что еще вчера (3 ноября) было видно расхождение объемов для пары EURUSD на 4-часовом графике 2014.10.28, там тоже был разрыв, а сегодня этого разрыва и расхождения объемов уже нет и объемы совсем другие! Вот так наверно и сходят с ума…

Подобную картину я наблюдал раньше и у другого 4-значного брокера RoboForex. Только объемы у него примерно раз в 20 меньше. Кстати вопрос: почему? может, из-за меньшего количества клиентов?

Чтобы убедиться в истинности того, что я здесь поведал, можете запустить скрипт, который прилагается. В скрипте вводить переменную периода внутренних баров «Per» нужно в минутах, причем внутренний период должен быть не больше внешнего текущего периода графика. Запустив этот скрипт, вы увидите, что часто бывают расхождения объемов на нулевом баре. Причем расхождения объемов наблюдаются в обе стороны.
Понятно, что из-за этого расхождения объемов можно получить непредсказуемые результаты, если советник или индикатор как-то используют объемы.

В чем же причина такого расхождения объемов и какой объем считать истинным – на внешнем (большом ) баре или сумму объемов внутренних (малых) баров?

// скрипт сравнения объемов внешнего бара и входящих в него внутренних баров test_V.mq4
// created by Stoletov
// i - количество внешних баров на графике для расчета объемов (у бара i+1 история о внутренних барах отсутствует)
// Per - внутренний период
// jma - номер внутреннего бара у начала внешнего бара i
// jmi - номер внутреннего бара у конца внешнего бара i
// j - текущий номер внутреннего бара во внешнем баре i
// v - накопленный объем по внутренним барам
// tst - дата начала расчета
#property show_inputs
extern int Per=1; // должен быть не больше, чем период внешнего бара,
// например если внешний бар дневной (период = 1440 мин), то допустимые значения Per=1440,240,60,30,15,5,1
void OnStart()
{
int j, jmi, jma, v, i, cnt=0;
string tst, Cur=Symbol();
i=iBarShift(Cur, Period(), iTime(Cur, Per,iBars(Cur,Per)-1))-1;
tst=TimeToStr(Time[i-0], TIME_DATE);
while(i>=0)
{if (i==0)
jmi=0;
else
{jmi=iBarShift(Cur,Per,Time[i-1]);
if (iTime(Cur, Per, jmi)>=Time[i-1]) jmi++;}
jma=iBarShift(Cur,Per,Time[i-0]);
if (iTime(Cur, Per, jma)<Time[i-0]) jma--;
v=0;
for (j=jma;j>=jmi;j--)
v=v+iVolume(Cur,Per,j);
if(v!=Volume)
{// объем внешнего бара равен Volume, а сумма объемов внутренних баров равна v
Alert(TimeToStr(Time), " Volume for period ", Period(), " min = ", Volume, " and sum volume for period ", Per," min = ",v);
cnt++;}
i--;} //конец цикла while
if(cnt==0)
Alert("Start date of calculation = ", tst," volumes are the same"); // нет расхождений объемов внешнего и внутернних баров
else
Alert("Start date of calculation = ", tst," there is ", cnt, " variaties in volumes"); // имеется cnt расхождений объемов
return;
}


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]


постоянный участник




Сообщение: 914
Зарегистрирован: 04.03.13
Откуда: Москва
Репутация: 2
ссылка на сообщение  Отправлено: 04.11.14 16:32. Заголовок: Stoletov пишет: В ч..


Stoletov пишет:

 цитата:
В чем же причина такого расхождения объемов и какой объем считать истинным – на внешнем (большом ) баре или сумму объемов внутренних (малых) баров?



А перед проверкой делалось докачка котировок инструмента и последующее обновление (нажать Обновить на графике)?

С уважением! Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 917
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 04.11.14 19:13. Заголовок: Stoletov пишет: Я у..


Stoletov пишет:

 цитата:
Я уже давно заметил, что иногда объем на текущем (внешнем, большом) баре графика не совпадает с суммой объемов на внутренних барах внутри текущего.


Это аксиома архитектуры МТ4. Проблема в том, что разработчики терминала изначально приняли крайне неудобную архитектуру хранения данных.
Суть этой архитектуры в том, что каждый таймфрейм формируется индивидуально, независимо от других таймфреймов. Думаю, замечали, что, когда долго находишься на одном ТФ, а потом переключаешься на другой, история отображается не сразу, а с задержкой, вызванной закачкой данных по этому конкретному ТФ. То есть, несмотря на то, что мы в процессе работы получали все тики, данные для другого ТФ на основании этих тиков МТ4 сформировать не может.
Отсюда и расхождения в объемах свечей разных ТФ. Более того - пока не приведешь в порядок данные разных ТФ, тестер будет ругаться насчет ошибок рассогласования. Именно поэтому трейдерам до сих пор приходится вручную формировать старшие ТФ по младшим перед каждым мало-мальски значимым тестированием.
В МТ5 разработчики исправили эту ошибку. Теперь все ТФ пересчитываются на основании минутного ТФ.
А для того, чтобы не ориентироваться на тиковые объемы, предоставляемые брокером (которые не совсем корректные), лучше использовать накопленную тиковую историю, в которую брокер не сможет уже внести изменения. Это История тиков на нашем сайте.

Stoletov пишет:

 цитата:
Только объемы у него примерно раз в 20 меньше. Кстати вопрос: почему? может, из-за меньшего количества клиентов?


Дело не в количестве клиентов, а в поставщике котировок. Во-первых, есть разные поставщики, у которых разная частота поступления котировок. Во-вторых, уважающий себя ДЦ никогда не будет ориентироваться на одного поставщика - используются данные от двух-трех или даже большего количества поставщиков. Ну а чем больше поставщиков, тем выше частота тиков.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 8
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 06.11.14 16:25. Заголовок: Scriptong пишет: А ..


Scriptong пишет:

 цитата:
А для того, чтобы не ориентироваться на тиковые объемы, предоставляемые брокером (которые не совсем корректные), лучше использовать накопленную тиковую историю, в которую брокер не сможет уже внести изменения.



Да, это здорово, что есть такая возможность! У меня есть однако такое опасение: не отнимет ли у компьютера обращение к такому файлу из советника большие ресурсы - память и время? У брокера GKFX тики сыплются как из пулемета. А если еще подвешены например 4 советника к 4-м валютным парам, то некоторые тики могуть быть пропущены и не обработаны. Ведь пока один советник не закончит работу со своей валютной парой, второй советник для другой валютной пары не запустится.
Особенно странно то, что расхождение объемов на внешнем и внутренних барах может меняться при повторном запуске скрипта (сразу через несколько секунд). Если система МТ4 неправильно сосчитала бары, то вроде бы ошибка должна быть для одних и тех же баров (как в жизни - то, что вошло в историю уже не изменишь).
На мой взгляд чтобы выйти из этого порочного круга, просто надо считать объемы одним и тем же способом - либо только по внешним барам, либо путем суммирования объемов внутренних баров, но не смешивая и то и другое.

Спасибо, Игорь за разъяснения. Видно нет такого вопроса, на который вы не знаете ответа.


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 922
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 06.11.14 21:10. Заголовок: Stoletov пишет: У м..


Stoletov пишет:

 цитата:
У меня есть однако такое опасение: не отнимет ли у компьютера обращение к такому файлу из советника большие ресурсы - память и время?


Смотря, как поставлена вся работа. Ведь самое простое, что можно сделать с тиками, это воссоздать на их основе минутный ТФ (а также любой стандартный и нестандартный ТФ; да хоть крестики-нолики). Далее скармливаем этот график терминалу и работаем - проблема решена.
Если же стики нужно обрабатывать, читая из файла, то порассуждаем следующим образом. Тиковый файл по EURUSD от GKFX с данными за пять месяцев "весит" 182 Мб. Сколько времени займет чтение такого файла с HDD? При средней скорости чтения данных современных HDD (50 Мб/сек) это 3,5 сек. На SSD это еще меньше времени. Такое время будет затрачено при старте индикатора/советника. Тиковые данные в памяти.
Дальше идет лишь обработка того, что расположено в оперативной памяти. Это уже намного быстрее. Тем более вряд ли потребуется ежесекундное перелопачивание всей истории. Скорее всего, нет. Вся история программой будет просматриваться только в каких-то редких случаях. Речь, конечно, о правильно построенной программе.
Так что с тиками работать можно. Главное - правильно написать алгоритм программы, учитывая, что тиковых данных достаточно много.

Stoletov пишет:

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


В МТ4 для каждого советника и скрипта выделяется свой поток. Поэтому их работа не является последовательной и регулируется операционной системой. Последовательная работа у индикаторов (именно в МТ4), т. к. они крутятся в интерфейсном потоке. Но за то у индикаторов есть преимущество перед советниками - они не пропускают тики. А вот советник, если он долго обрабатывает очередной тик, может пропустить тот тик, который пришел во время его занятости.


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 7
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 06.11.14 15:16. Заголовок: Genry пишет: А пере..


Genry пишет:

 цитата:
А перед проверкой делалось докачка котировок инструмента и последующее обновление (нажать Обновить на графике)?



Нет, не делалась. Но когда докачал данные и обновил, то расхождений стало еще больше (докачка- это в меню "сервис"-"архив котировок"-"forex''- выбрать пару-нажать "загрузить", а обновление - в контестном меню графика выбрать "обновить" --- правильно?). Проверял выборочно вручную на 4-х часовом баре и часовых барах внутри 4-х часового (на случай вдруг скрипт работает неправильно). Оказалось, что при проверке вручную расхождения такие же. Иногда после повторного запуска скрипта появляются расхождения уже на других барах. Мистика!
Обратил внимание еще вот на что: уже после докачки в окне архива котировок отстутсвовало часть минутных баров, например для пары USDJPY не было котировок с 2014.10.31 21:50 до 2014.11.05 18:39 (а последние котировки имелись вплоть до текущего времени 2014.11.06 17:40) . Что бы это значило?


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 923
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 06.11.14 21:18. Заголовок: Stoletov пишет: Но ..


Stoletov пишет:

 цитата:
Но когда докачал данные и обновил, то расхождений стало еще больше (докачка- это в меню "сервис"-"архив котировок"-"forex''- выбрать пару-нажать "загрузить", а обновление - в контестном меню графика выбрать "обновить" --- правильно?)


Не рекомендую закачивать данные таким вот образом, т. к. они берутся не с сервера брокера, а с сервера компании Meta Quotes. Об этом прямо пишется, когда пользователь нажимает кнопку "Загрузить". Очевидно, что данные на этих серверах разные. Отсюда и огромные расхождения в истории. Более того, история на сервере Meta Quotes очень низкого качества - там много дыр.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 9
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 08.11.14 09:22. Заголовок: Scriptong пишет: Но..


Scriptong пишет:

 цитата:
Но за то у индикаторов есть преимущество перед советниками - они не пропускают тики.


А если у меня свой индикатор подвешен например к 4-м графикам разных валютных пар, и допустим он отрабатывает тик не очень быстро, то и в этом случае тики не будут пропущены?
Scriptong пишет:

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


Тогда если в советнике есть обращение к индикатору с помощью функции iCustom, то индикатор тоже может не обработать очередной тик? А если еще одновременно тот же индикатор подвешен к графику (для визуального контроля работы советника), то работа советника замедлится и он будет пропускать еще больше тиков?
Scriptong пишет:
 цитата:
Не рекомендую закачивать данные таким вот образом, т. к. они берутся не с сервера брокера, а с сервера компании Meta Quotes.


Спасибо за предупреждение: теперь я загрузил котировки нужных таймфреймов с сайта GKFX, а не через МТ4. Для этого в сайте сформировал файл котировок, а потом в МТ4 в окне архива котировок выбрал "импорт" (а не "загрузить"). При такой загрузке плюс в том, что можно явно задать период истории. Я загрузил с сайта таймфреймы H4, H1 и М1 с 01 сентября 2014. Правда после загрузки и обновления расхождения в объемах H4-M1 и H4-H1 наблюдаются на каждом внешнем баре (их около 300), зато расхождений H1-M1 всего 4. Genry советует скачать котировки с сайта Alpari, но как это сделать - я не понял. В справке их сайта говорится, что для скачивания котировок надо в меню МТ4 в архиве котировок нажать "загрузить", и тогда загрузятся котировки с их сайта. Но ведь тогда надо и работать через Alpari или есть возможность переключаться между GKFX и Alpari в одном и том же терминале?




Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 933
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 2
ссылка на сообщение  Отправлено: 09.11.14 15:19. Заголовок: Stoletov пишет: А е..


Stoletov пишет:

 цитата:
А если у меня свой индикатор подвешен например к 4-м графикам разных валютных пар, и допустим он отрабатывает тик не очень быстро, то и в этом случае тики не будут пропущены?


Архитектурно индикаторы МТ4 исполняются в интерфейсном потоке (в том же потоке, в котором обрабатывается вся графика терминала и действия пользователя). Для этого потока терминал, по всей видимости, накапливает тики, которые пришли с сервера, но еще не были обработаны. По этому, даже если индикатор зависнет на минуту, то по прошествии этой минуты он получит пришедшие тики пачкой, но все. Единственный в таком случае минус - это то, что все тики будут иметь одно и то же время прихода - TimeCurrent(), т. к. по ним нет данных о реальном времени поступления - только цены Bid и Ask.

Stoletov пишет:

 цитата:
Тогда если в советнике есть обращение к индикатору с помощью функции iCustom, то индикатор тоже может не обработать очередной тик?


Насчет индикаторов, вызываемых через iCustom у меня нет официальных комментариев от разработчиков. Тут могу лишь высказать свое мнение, которое не обязательно является истиной. По моим наблюдениям индикаторы, запущенные через iCustom, виртуально располагаются на существующих графиках нужного символа и периода (если не существует, то, скорее всего, создается виртуальный график), а потому вряд ли пропустят тики. То есть обработают их. Но это вовсе не означает, что все эти тики обработает советник. Он просто получит правильный результат расчета показателей индикатора, основанный на всех тиках. Вот если сделать переброс тиковых данных от индикатора советнику, то советник сможет также, как индикатор, обрабатывать все тики.

Stoletov пишет:

 цитата:
А если еще одновременно тот же индикатор подвешен к графику (для визуального контроля работы советника), то работа советника замедлится и он будет пропускать еще больше тиков?


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

Stoletov пишет:

 цитата:
теперь я загрузил котировки нужных таймфреймов с сайта GKFX, а не через МТ4. Для этого в сайте сформировал файл котировок, а потом в МТ4 в окне архива котировок выбрал "импорт" (а не "загрузить"). При такой загрузке плюс в том, что можно явно задать период истории. Я загрузил с сайта таймфреймы H4, H1 и М1 с 01 сентября 2014.


На нашем сайте история тиков доступна с 23.05.2014. Это явно глубже. Причем на основе этой истории можно создать любой необходимый таймфрейм: стандартный или нестандартный. Если на основании одного источника создать различные ТФ, то никаких расхождений в объемах у Вас не будет.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 10
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 11.11.14 16:17. Заголовок: Scriptong пишет: По..


Scriptong пишет:

 цитата:
По этому, даже если индикатор зависнет на минуту, то по прошествии этой минуты он получит пришедшие тики пачкой, но все.


Спасибо Игорь за ценное замечание. Так и есть. Чтобы в этом убедиться, можно вставить в индикатор такой фрагмент:

static int vm; // старый объем на нулевом минутном баре
static datetime to; // время начала старого нулевого минутного бара
int dv; // приращение объема при очередном вызове индикатора
string Cur=Symbol();
int v=iVolume(Cur,1.0); // текущий объем на нулевом минутном баре
if(t0!=iTime(Cur,1,0)) //если появился новый минутный бар
dv=v; //то приращение объема при появлении нового минутного бара такое
else // а если нулевой минутный бар тот же
dv=v-vm; // то приращение объема на теущем нулевом баре такое
vm=v; // запоминание текущего объема на нулевом минутном баре
t0!=iTime(Cur,1,0) // запоминание времени начала текущего нулевого минутного бара

В эксперименте с этим фрагментом было подвешено 4 индикатора к разным валютным парам. На паре EURUSD обычно приращение объема dv при каждом запуске индикатора составляло 1, но иногда достигало 2 и даже 3. Похоже, что за то время, пока отрабатывали индикаторы на других трех парах, на паре EURUSD иногда проскакивает 2-3 тика. До этого я в индикаторе добавлял объем оператором v++, т.к. думал, что объем увеличивается при каждом запуске индикатора на 1. В результате например на 5-минутном баре накопленный таким образом объем был занижен примерно на 20 тиков и составлял 400 вместо истинного 420. Теперь использую для отслеживания приращения объема вышеприведенный фрагмент.




Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 13
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 16.11.14 10:53. Заголовок: Scriptong пишет: На..


Scriptong пишет:

 цитата:
На нашем сайте история тиков доступна с 23.05.2014. Это явно глубже. Причем на основе этой истории можно создать любой необходимый таймфрейм: стандартный или нестандартный. Если на основании одного источника создать различные ТФ, то никаких расхождений в объемах у Вас не будет.


Хорошо звучит, но чувствуешь себя искателем клада, который нашел сундук с золотом, но ключа от замка нет и ломика тоже. Я загрузил и с помощью ваших скриптов сформировал файлы EURUSD.tks и EURUSD.fxt. Но не понял, как извлечь из них информацию для использования в индикаторе и из какого файла нужно извлекать - из EURUSD.tks? Когда открыл эти файлы в Excel, то осознал, что для расшифровки "текста" мне не хватает древнеегипетских жрецов или может китайских товарищей (шутка). В общем возникает вопрос: какие данные хранятся в этих файлах, какой их тип и порядок следования. Но допустим, на эти вопросы ответы есть, а как быть после выключения компьютера (например в пятницу выключил, а в понедельник включил) - надо снова вручную закачивать историю тиков и преобразовывать ее в файл с помощью скрипта?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 960
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 16.11.14 15:46. Заголовок: Stoletov пишет: Хор..


Stoletov пишет:

 цитата:
Хорошо звучит, но чувствуешь себя искателем клада, который нашел сундук с золотом, но ключа от замка нет и ломика тоже.


Для чего нужна история? На мой взгляд, для того, чтобы на ней можно было проверить свои торговые идеи. И чем ближе исторические данные к реальным, тем точнее будет проверка. В нашем случае данные близки к реальным абсолютно - на все 100%, без экспоненциального приближения.
Каким образом обычно проверяют торговые идеи? В тестере стратегий. Значит, нас должна интересовать методика получения файла для тестирования. Эта методика описана в статье "Тестирование на реальной истории". Именно об этом пишется на главной странице истории тиков - здесь.

Если же нужно получить историю в виде графика, то потребуется положить файл тиков в папку MQL4\Files и запустить сборщик тиков, указав ему, что нужно создать нестандартный таймфрейм, не собирая тики.

Stoletov пишет:

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


Да, только так. Сервис получения тиковых данных онлайн без необходимости удержания постоянно включенного компьютера планируется, но работы в этом направлении пока не ведутся. И не могу сказать, когда будет. Тем более он не будет полностью бесплатным. У него будет два режима подписки: условно-бесплатный и платный.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 15
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 19.11.14 18:18. Заголовок: Scriptong пишет: Дл..


Scriptong пишет:

 цитата:
Для чего нужна история? На мой взгляд, для того, чтобы на ней можно было проверить свои торговые идеи.


Вам бы Игорь поставить памятник при жизни за такую объемную проделанную работу – формирование тикового файла для тестера стратегий и три варианта представления графика свечей да еще в произвольных таймфреймах с точностью до секунды.
Я понял, что файлы истории вы преобразуете с помощью скриптов для тестера стратегий. Но тестер стратегий я не использую, а тиковая история и связанная с ней точность мне не нужна. Я по образованию физик, а в физике любят делать разные приближения в отличие от математиков например (пусть не обижаются форумяне-математики, если таковые есть). В моем случае задача несколько иная. В моем индикаторе используются бары двух таймфреймов – большого (например Н4) и М1. Если сумма объемов минутных баров не совпадает с объемом Н4 или есть дыры в истории минутных баров (бывают до нескольких дней), то индикатор становится не очень надежным. Особенно если дыра или расхождения объемов недавние по времени, типа на 1-м баре. Поэтому и думаю, как избавиться от этой напасти малой кровью.

Scriptong пишет:

 цитата:
Если же нужно получить историю в виде графика, то потребуется положить файл тиков в папку MQL4\Files и запустить сборщик тиков, указав ему, что нужно создать нестандартный таймфрейм, не собирая тики.


Я попробовал сделать все, как в этой рекомендации- скопировал файл истории пары EUR USD с 06.10.2014 в папку MQL4\Files, запустил ваш индикатор на графике EUR USD Н4, в нем разрешил импорт DLL, отключил сбор тиков, выбрал «создать график равновременных свечей», период в секундах 14460 и наименование ТФ в минутах 241 (ведь задавать стандартные значения нельзя , правильно?). Но в результате появились синяя и красная линии, которые стали перемещаться влево, а каких-либо новых свечей, кроме стандартного графика не увидел. То же самое попробовал сделать, открыв график автономно - выбрал EURUSD H4 (every tick), с тем же результатом. Может что-то делаю не так?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 977
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 19.11.14 21:41. Заголовок: Stoletov пишет: Есл..


Stoletov пишет:

 цитата:
Если сумма объемов минутных баров не совпадает с объемом Н4 или есть дыры в истории минутных баров (бывают до нескольких дней), то индикатор становится не очень надежным. Особенно если дыра или расхождения объемов недавние по времени, типа на 1-м баре. Поэтому и думаю, как избавиться от этой напасти малой кровью.


Уже понял, что Вам необходимо получить стандартные графики из тиковых файлов. Причем тот способ, который Вы описываете ниже, несколько затруднительный и не совсем понятный, как для стороннего пользователя, а не разработчика. Поэтому я уже думаю над тем, чтобы дать прямой инструмент - конвертирование тиков в CSV-файл свечей заданного периода. Потом этот CSV-файл можно будет применить хоть в МТ (через импорт в Архиве котировок), хоть в сторонней программе. Этот вариант точно будет.
Плюс к нему есть вариант, который видится более удобным, но пока не уверен, что все пройдет гладко. Речь идет о перезаписи истории котировок нужного стандартного таймфрейма прямо в терминале. В итоге пользователю не придется мучаться с промежуточным CSV-файлом.
Так что первый вариант обязательно будет (это поставил себе наивысшим приоритетом), а вот второй вариант нужно поисследовать. Вероятность его осуществления велика.

Stoletov пишет:

 цитата:
Я попробовал сделать все, как в этой рекомендации- скопировал файл истории пары EUR USD с 06.10.2014 в папку MQL4\Files, запустил ваш индикатор на графике EUR USD Н4, в нем разрешил импорт DLL, отключил сбор тиков, выбрал «создать график равновременных свечей», период в секундах 14460 и наименование ТФ в минутах 241 (ведь задавать стандартные значения нельзя , правильно?). Но в результате появились синяя и красная линии, которые стали перемещаться влево, а каких-либо новых свечей, кроме стандартного графика не увидел. То же самое попробовал сделать, открыв график автономно - выбрал EURUSD H4 (every tick), с тем же результатом. Может что-то делаю не так?


Те красные и синие линии, которые Вы описываете, это график тиков, получаемых индикатором TicksCollector. Так что тут не нужно ожидать чего-либо другого. Для получения определенного графика необходимо:
1. Запустить TicksCollector (как Вы и сделали).
2. Дать ему поработать некоторое время для формирования оффлайн-графика.
3. Открыть оффлайн-график через Файл-Открыть автономно. В Вашем случае нужно было открыть график EURUSD241 - Вы его заказывали. Кстати, период в секундах и период графика для отображения не обязательно должны совпадать (14460 сек - это 241 мин). Можно на графике 241 мин отобразить любой период - 1 мин., 2 мин, 3 мин, 1 день и т. п.

В итоге появится заказанный график, который будет обновляться до тех пор, пока запущен TicksCollector. Графики, помеченные every tick, это графики для тестера стратегий. Их нельзя использовать в качестве стандартных.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 16
Зарегистрирован: 17.10.14
Репутация: 0
ссылка на сообщение  Отправлено: 20.11.14 16:37. Заголовок: Scriptong пишет: По..


Scriptong пишет:

 цитата:
Поэтому я уже думаю над тем, чтобы дать прямой инструмент - конвертирование тиков в CSV-файл свечей заданного периода... Плюс к нему есть вариант ... Речь идет о перезаписи истории котировок нужного стандартного таймфрейма прямо в терминале. В итоге пользователю не придется мучаться с промежуточным CSV-файлом.


Ну Игорь, тогда вам не только памятник поставят, но будут называть не иначе как Игорь-сан. Конечно это решит проблему расхождения объемов и дыр истории. Теперь я понял, что надо было открыть автономно другой файл и что можно создать стандартный таймфрейм, например М1, главное назвать его в минутах как-нибудь особенно, например 11. Действительно, открылся минутный график, в котором до 14.11.2014 старые, а с 20.11.2014 новые данные, формируемые вашим индикатором (между ними дырка). Если долго не выключать компьютер, то можно накопить достаточно свечей. Тоже неплохое решение.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 983
Зарегистрирован: 03.03.13
Откуда: Украина, Днепродзержинск
Репутация: 3
ссылка на сообщение  Отправлено: 21.11.14 20:21. Заголовок: Stoletov пишет: Ес..


Stoletov пишет:

 цитата:
Если долго не выключать компьютер, то можно накопить достаточно свечей.


Ну зачем такой экстрим? На то база тиков и существует, чтобы из нее всегда можно было взять историю и залатать свои дыры.
К примеру, в отпуск уехал, пропустил пару недель. Приехал, скачал данные, и история цела, и голова после отдыха свежа

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  2 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет