Написал советник, есть проблема. - страница 6

 
khorosh >>:

А какие котировки 4 или 5 знаков после запятой?

4 знака...и на 5-ти знаках пробовал. NormalizeDouble не помогает :(

 
Вообще, как-то странно всё это.... В первом посту я привел скриншот работы советника, начал модернизировать его, появились ошибки ordersend error 130, вернул всё в первоначальное состояние, а ошибки не исчезли!!!!!!! Хотя в первоначальном виде всё работало!!!! Что за хрень то???
 
Noterday >>:

Вот и я говорю. Почему стоп в 10 пунктов ошибочен...


Тут еще вот какая штука Сто в 10 пунктов может быть ошибочен из-за того, что минимальное расстояние,на котором можно ставить Стоп-лосс оказалось более 10 пунктов (например: 15 пунктов). Эту величину устанавливает дилинговый центр.
 
Да я и 200 пробовал! Всё равно одно и тоже...
 
Noterday >>:
Да я и 200 пробовал! Всё равно одно и тоже...


Вы можете выложить первоначальный код советника?

 
#property copyright "Мостовнек"
#property link      ""

int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }

extern int Frame = 1;


int start()
  {
  int total;
  
  for (int i = 0; i <= OrdersTotal(); i++)
     {
       if (OrderSelect(i-1,SELECT_BY_POS) == true)
       total++;
     }
  
  
    double Buffer1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,0,1),4);
    double Buf1    = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,6,1),4);
    double Buffer2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,0,1),4);
    double Buf2    = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,6,1),4);
    
    double ZZ_1    = NormalizeDouble(iCustom(NULL,0,"ZigZag",0,0,1),4);

//-----------------------------------------------------  

  if (total == 0 && ((Buffer1 != EMPTY_VALUE || Buf1 != EMPTY_VALUE) && (ZZ_1 == Buffer1 || ZZ_1 == Buf1)))
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,10,ZZ_1+15*Point,Bid-20*Point,"SELL",0,0,Red);
     Print("Zigzag = ",ZZ_1," | Buffer1 = ",Buffer1);
    }
  
  if (total == 0 && ((Buffer2 != EMPTY_VALUE || Buf2 != EMPTY_VALUE) && (ZZ_1 == Buffer2 || ZZ_1 == Buf2)))
    {
     OrderSend(Symbol(),OP_BUY,0.1,Ask,10,ZZ_1-15*Point,Ask+20*Point,"BUY",0,0,Blue);
     Print("Zigzag = ",ZZ_1," | Buffer2 = ",Buffer1);
    }

return(0);
  }
 

Сам принцип выставления стоп-лоссов в функции OrderSend() верен. Так что там менять ничего не надо. 

При выполнении функции Print() значение ZigZag=0, отсюда стоп-лосс : 0+15*Point, т.е равен 0,0015. Потому и выдает ошибку - OrderSend Error 130.

 double ZZ_1 = NormalizeDouble(iCustom(NULL,0,"ZigZag",21,5,3,0,1),4);// 21,5,3-это внешние переменные индикатора, их необходимо указывать в том порядке в каком они объявлены в индикаторе ZigZag.

Точно так же и с    double Buffer1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,0,1),4);
                             double Buf1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,6,1),4);
                             double Buffer2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,0,1),4);
                             double Buf2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,6,1),4);
 

Внешние переменные здесь не указаны.

 

Но они же необязательны, как написано в документации по MQL4.

А в

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,6,1),4);


внешних переменных ВООБЩЕ нету :)

Кстати, у меня функция PRINT выводит ZigZag нормально:


 
Noterday >>:

Но они же необязательны, как написано в документации по MQL4.

А в

double Buffer1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,0,1),4);
double Buf1 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mx",0,6,1),4);
double Buffer2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,0,1),4);
double Buf2 = NormalizeDouble(iCustom(NULL,Frame,"Osc_Mn",0,6,1),4);


внешних переменных ВООБЩЕ нету :)

Кстати, у меня функция PRINT выводит ZigZag нормально:



Если внешних переменных в этих индикаторах нет, то нет и претензий :). А вот над стопами надо еще подумать. Мож озарение стукнет.
 
ellizii >>:

Если внешних переменных в этих индикаторах нет, то нет и претензий :). А вот над стопами надо еще подумать. Мож озарение стукнет.

не забивайте себе голову :) Разработчикам: ТЕСТЕР/ОПТИМИЗАТОР БАГ

уверен, со стопоми то же самое.

Причина обращения: