И при том текущие значения стоят, т.е с реального времени.
а при тесте на сформировавшихся барах с новым баром, предыдущий меняется... :О)
#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 |
В процессе познания 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));
Пробовал каждый на каждом ТФ, та же история - показания меняются только у того ТФ
на котором тестируется. И-нет не прояснил ситуацию.
Подскажите - это как то лечится или я не там спрашиваю.
спасибо за внимание!
Вот что получим
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));
}
И приходится ждать оплаты неделями.
Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.
И приходится ждать оплаты неделями.
Просветите, как заставить работать функции iClose-iOpen и пр. с таймфреймом отличным от нуля и от тестируемого таймфрейма. и чтобы код для тестера совпадал с кодом для реала.
А эксперта принципиально тестировать нельзя.
Мало, что мультивалютный зась...
Совсем простая - на графике рисуем 9 квадратов в линию - закрашивать будем по показаниям индикатора
который подставим для теста - зеленый или красный.
Пробую в деталях разобраться что куда движется по тикам, а тут капкан.
В нете есть инфа но не то https://www.mql5.com/ru/articles/1385. Много налито вода в других статьях но
не то. Я пробовал подставлять переменные, в массив запихивал но результат то нулевой, верней
результата нет так как нет данных.
Для правильной оценки ситуации тем более написания программы я должен точно знать
что и как - теперь получается что в реале одно а в тестере другое - непордок.
Остается проверить на деме в ОН лайне - еще не проверял!
Вчера заметил неладное.
Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).
Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.
Тестер видит только 1000 последних баров в начале тестирования. Если поставил эксперт на M1, то дальше 1000 минут назад не увидишь (в момент старта тестирования).
Решаю эту проблему постановкой даты старта тестера намного раньше, а в самом эксперте прописываю нужную дату.
Утверждалось, что для генерации тиков используются данные минуток.
Но само значение минуток, как видно из моего примере - текущее, никак не связано с историей минуток.
И откуда сведения о 1000 баров?
Может вы так свойства истории настроили?
Но в моем случае это не так...
----
опытным путем установлено, что данных раньше начала периода тестирования нет больше чем за 100 баров.
Это тоже факт. :(
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
с других ТФ. Вот код проверки, его можна на любой эксперт подвесить, у моего тестера
меняются показания только того ТФ на котором тестирую, а другие стоят на месте.
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));
Пробовал каждый на каждом ТФ, та же история - показания меняются только у того ТФ
на котором тестируется. И-нет не прояснил ситуацию.
Подскажите - это как то лечится или я не там спрашиваю.
спасибо за внимание!