Скачать MetaTrader 5

Тестер МТ4 не отдает инфу с других тайм-фреймов

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vovik
119
Vovik  
В процессе познания MQL4, выяснил что, как минимум мой тесер не отдает информацию
с других ТФ. Вот код проверки, его можна на любой эксперт подвесить, у моего тестера
меняются показания только того ТФ на котором тестирую, а другие стоят на месте.
Comment (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\n", " -----------3------ = ",iOpen(Symbol(),15,1)," - ", iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ",iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\n", " -----------7------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1));
Пробовал каждый на каждом ТФ, та же история - показания меняются только у того ТФ
на котором тестируется. И-нет не прояснил ситуацию.
Подскажите - это как то лечится или я не там спрашиваю.
спасибо за внимание!
Mikhail Dovbakh
4432
Mikhail Dovbakh  
это факт. :(
И при том текущие значения стоят, т.е с реального времени.
а при тесте на сформировавшихся барах с новым баром, предыдущий меняется... :О)
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_style1 0
#property indicator_color1 Orange
#property indicator_width1 2
#property indicator_style2 0
#property indicator_color2 BlueViolet
#property indicator_width2 2
extern bool Test=false;
//03/04/10
//SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

//---- buffers
double DMA[];string PARA;int hFile;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,DMA);
SetIndexShift(0,0);
SetIndexLabel(0,"inv");
PARA=Symbol();
if (Test) hFile=FileOpen("Dt"+Symbol()+Period()+".csv",FILE_CSV |FILE_WRITE,";");


//if (iClose(PARA,0,0)<0.00001) {Alert (PARA," - not presents...");deinit();
// return (-1);}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
if (Test) FileClose(hFile);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{

//----
int counted_bars=IndicatorCounted();
int i,N;double Value;
N=Bars-counted_bars;

if(counted_bars<0) return(-1);
//---- last counted bar will be recounted

if (N==0) return(0);

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
}
for (i=N-1; i>=0; i--)
{
Value=iClose(PARA,0,i);

// Print (i,"=",Value);
DMA[i]=Value;
}

return(0);
}
//+------------------------------------------------------------------+
string StrTime(datetime IT){
return(StringConcatenate(TimeYear(IT),".",TimeMonth(IT),".",TimeDay(IT)
, "-",TimeHour(IT),"^",TimeMinute(IT),"^",TimeSeconds(IT)));
}
В результате имеем в тесторе
0
2009.2.3-10^15^0
1.2849

1
2009.2.3-10^15^0
1.2844

0
2009.2.3-10^30^0
1.2845

1 2009.2.3-10^30^0 1.2852
0 2009.2.3-10^45^0 1.2852
1 2009.2.3-10^45^0 1.2841
0 2009.2.3-11^0^0 1.2841
1 2009.2.3-11^0^0 1.2834
0 2009.2.3-11^15^0 1.2833
1 2009.2.3-11^15^0 1.2814
0 2009.2.3-11^30^0 1.2814
1 2009.2.3-11^30^0 1.2813
0 2009.2.3-11^45^0 1.2813
1 2009.2.3-11^45^0 1.2823
0 2009.2.3-12^0^0 1.2822
1 2009.2.3-12^0^0 1.281
0 2009.2.3-12^15^0 1.281
1 2009.2.3-12^15^0 1.2824
0 2009.2.3-12^30^0 1.2823
1 2009.2.3-12^30^0 1.2829
0 2009.2.3-12^45^0 1.2829
1 2009.2.3-12^45^0 1.2824
0 2009.2.3-13^0^0 1.2824
1 2009.2.3-13^0^0 1.2835
0 2009.2.3-13^15^0 1.2835
1 2009.2.3-13^15^0 1.2838
0 2009.2.3-13^30^0 1.2838
1 2009.2.3-13^30^0 1.2836
0 2009.2.3-13^45^0 1.2836
Victor Nikolaev
Модератор
14662
Victor Nikolaev  
vladv002 писал(а) >>
В процессе познания MQL4, выяснил что, как минимум мой тесер не отдает информацию
с других ТФ. Вот код проверки, его можна на любой эксперт подвесить, у моего тестера
меняются показания только того ТФ на котором тестирую, а другие стоят на месте.
Comment (
"\n", " -----------1------ = ",iOpen(Symbol(),1,1)," - ", iClose(Symbol(),1,1),
"\n", " -----------2------ = ",iOpen(Symbol(),5,1)," - ", iClose(Symbol(),5,1),
"\n", " -----------3------ = ",iOpen(Symbol(),15,1)," - ", iClose(Symbol(),15,1),
"\n", " -----------4------ = ",iOpen(Symbol(),30,1)," - ", iClose(Symbol(),30,1),
"\n", " -----------5------ = ",iOpen(Symbol(),60,1)," - ", iClose(Symbol(),60,1),
"\n", " -----------6------ = ",iOpen(Symbol(),240,1)," - ", iClose(Symbol(),240,1),
"\n", " -----------7------ = ",iOpen(Symbol(),1440,1)," - ", iClose(Symbol(),1440,1),
"\n", " -----------8------ = ",iOpen(Symbol(),10080,1)," - ", iClose(Symbol(),10080,1),
"\n", " -----------9------ = ",iOpen(Symbol(),43200,1)," - ", iClose(Symbol(),43200,1));
Пробовал каждый на каждом ТФ, та же история - показания меняются только у того ТФ
на котором тестируется. И-нет не прояснил ситуацию.
Подскажите - это как то лечится или я не там спрашиваю.
спасибо за внимание!


При правильном подходе все работает нормально.
Vovik
119
Vovik  
Vinin >>:


При правильном подходе все работает нормально.


Прошу прощения, а с этого места подробней можна ?
Victor Nikolaev
Модератор
14662
Victor Nikolaev  
vladv002 писал(а) >>


Прошу прощения, а с этого места подробней можна ?


А какую задачу нужно решить?

Mikhail Dovbakh
4432
Mikhail Dovbakh  
Vinin >>:


А какую задачу нужно решить?

Вот что получим

1 2009.7.10-22^45^0 1.39478
0 2009.7.10-23^0^0 1.39476
--0M 2009.7.10-23^0^0 1.3488
1 2009.7.10-23^0^0 1.39476
0 2009.7.10-23^15^0 1.39475
--0M 2009.7.10-23^15^0 1.3488
1 2009.7.10-23^15^0 1.39475
0 2009.7.10-23^30^0 1.39472
--0M 2009.7.10-23^30^0 1.3488
1 2009.7.10-23^30^0 1.39409
0 2009.7.10-23^45^0 1.39409
--0M 2009.7.10-23^45^0 1.3488
1 2009.7.10-23^45^0 1.39353
0 2009.7.13-1^0^0 1.39461
--0M 2009.7.13-1^0^0 1.3488
Если в коде выше изменим блок вывода на

if (Test){ FileWrite(hFile,"--1 ",StrTime(iTime(Symbol(),Period(),1)),iClose(PARA,0,1));
FileWrite(hFile,"--0 ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,0,0));
FileWrite(hFile,"--0M ",StrTime(iTime(Symbol(),Period(),0)),iClose(PARA,1,0));
}

ПавелИванович
541
ПавелИванович  
Vinin писал(а) >>


А какую задачу нужно решить?


Да, мне тоже интересно. Заказчики часто заказывают мультитаймфреймовые поделки, а тестировать можно только вживую...
И приходится ждать оплаты неделями.

Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.
Mikhail Dovbakh
4432
Mikhail Dovbakh  
api >>:


Да, мне тоже интересно. Заказчики часто заказывают мультитаймфреймовые поделки, а тестировать можно только вживую...
И приходится ждать оплаты неделями.

Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.

А эксперта принципиально тестировать нельзя.

Мало, что мультивалютный зась...

Vovik
119
Vovik  
Vinin >>:


А какую задачу нужно решить?

Совсем простая - на графике рисуем 9 квадратов в линию - закрашивать будем по показаниям индикатора 
который подставим для теста - зеленый или красный.
Пробую в деталях разобраться что куда движется по тикам, а тут капкан.
В нете есть инфа но не то https://www.mql5.com/ru/articles/1385.  Много налито вода в других статьях но
не то. Я пробовал подставлять переменные, в массив запихивал но результат то нулевой, верней
результата нет так как нет данных.
Для правильной оценки ситуации тем более написания программы я должен точно знать
что и как - теперь получается что в реале одно а в тестере другое - непордок.
Остается проверить на деме в ОН лайне - еще не проверял! 
Вчера заметил неладное.

Сергей
169
Сергей  

Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).

Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.

Mikhail Dovbakh
4432
Mikhail Dovbakh  
sak120 >>:

Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).

Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.

Утверждалось, что для генерации тиков используются данные минуток.

Но само значение минуток, как видно из моего примере - текущее, никак не связано с историей минуток.

И откуда сведения о 1000 баров?

Может вы так свойства истории настроили?

Но в моем случае это не так...

----

опытным путем установлено, что данных раньше начала периода тестирования нет больше чем за 100 баров.

Это тоже факт. :(

12345678...11
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий