[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 624

 
Может кто-нить подсказать как можно открыть МТ4 (с одного демо-счёта, на одном компьютере) одновременно несколько раз чтобы одновременно можно было тестировать советник по нескольким парам. Чтоб не ждать пока закончиться по одной паре, а потом в ручную ставить тест на другую?
 
paladin80:
Может кто-нить подсказать как можно открыть МТ4 (с одного демо-счёта, на одном компьютере) одновременно несколько раз чтобы одновременно можно было тестировать советник по нескольким парам. Чтоб не ждать пока закончиться по одной паре, а потом в ручную ставить тест на другую?
Скопировать папку несколько раз.
 
paladin80:
Может кто-нить подсказать как можно открыть МТ4 (с одного демо-счёта, на одном компьютере) одновременно несколько раз чтобы одновременно можно было тестировать советник по нескольким парам. Чтоб не ждать пока закончиться по одной паре, а потом в ручную ставить тест на другую?

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

Добрый день!

Почему время отображаемое iTime и время тестера (на рис.) не совпадают?

Вот сырой набросок кода:

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
    
   int  limit = Bars - counted_bars;
     
     for (int i=limit; i>=0; i--)
     {
       
    tm1=iTime(NULL,PERIOD_D1,i);           //--- Определяю время (Выводит текущую дату. Не совпадает с временем в тестере.)
    int shift=iBarShift(NULL,PERIOD_H4,tm1,false);  //---По этому времени ищем бар
   
    hgh = iHigh(NULL,PERIOD_H4,shift);   //---High бара
    lwo = iLow(NULL,PERIOD_H4,shift);    //---Low бара
          
     flatline("Lev_Up",tm1,hgh,tm2,lwo,Green,1);
     flatline("Lev_Dn",tm1,hgh,tm2,lwo,Green,1);
     }
     
     SetText("Tm1","Tm2",TimeToStr(tm1),TimeToStr(tm1),Red,Blue,12);
     SetText2("Shift",shift,Red,12);
     SetText5("High","Low", hgh,lwo,Red,Blue,12);
           
     //----
   return(0);
  }

 

Добрый день.

Подскажите почему этот код не торгует?

И алерт не срабатывает.

В журнале полнейшая тишина...

На скрине видно совпадение условий.

int start()
  {
  double ma= iMA(Symbol(), 0, PerMa, 0, 0, 0, 0);
//----
//GetLot(1, 0.1, 100, 0.1, 10, Symbol());
if (Filtre()=="S" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,CLR_NONE);
if (Filtre()=="B" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Bid-SL*pip*Digits,Bid+TP*pip*Digits,0,0,0,CLR_NONE);
Comment (Filtre(),"  ",NormalizeDouble(ma, Digits*pip),"  ",NormalizeDouble(Bid, Digits*pip));
if (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert("!!!!!!!!!!!");


//----
   return(0);
  }
 
MarkTrade:

Добрый день.

Подскажите почему этот код не торгует?

И алерт не срабатывает.

В журнале полнейшая тишина...

На скрине видно совпадение условий.

Проверьте чему равен pip. Второй параметр в функции NormalizeDouble должен быть равен количеству знаков после запятой (это целое число), обычно пишут просто Digits, если сравниваем цены.
 
atztek:

В папке "experts" есть файл, копию которого необходимо создавать при каждом запуске Пользовательского Индикатора.

- Можно ли из кода осуществлять копирование файлов и если да то как?

Спасибо!


Если средствами MQL, то только внутри папки experts\files
 
Fox_RM:

Добрый день!

Почему время отображаемое iTime и время тестера (на рис.) не совпадают?

Вот сырой набросок кода:

Ваша функция iTime берет i-й бар из файла (для каждого тамфрейма отдлельно) в папке tester\history, возможно, файлы истории для D1 и H1, в которых последний бар соответствует 13 января, лежат там с какого-то старого прогона.
 
alsu:
Проверьте чему равен pip. Второй параметр в функции NormalizeDouble должен быть равен количеству знаков после запятой (это целое число), обычно пишут просто Digits, если сравниваем цены.

if (Digits == 3||Digits==5) pip=10; else pip=1;

это чтоб нормализовать до 4 или 2 знаков. (если котировки 5 значные)

в comment выводятся нормализованые значения, и на скрине видно что они равны. А значит условие соблюдено, но ордер все-равно не открывается...

Во! В журнале алерт появился. а ордер не открылся.

 
MarkTrade:

if (Digits == 3||Digits==5) pip=10; else pip=1;

это чтоб нормализовать до 4 или 2 знаков. (если котировки 5 значные)

в comment выводятся нормализованые значения, и на скрине видно что они равны. А значит условие соблюдено, но ордер все-равно не открывается...

Во! В журнале алерт появился. а ордер не открылся.


А можно узнать, зачем "нормализовать до 4 или 2 знаков. (если котировки 5 значные)"? 5 и 3 знака тоже должны работать как бы...
Причина обращения: