MQL госпиталь (бывшая "Больничка"): исправляем ошибки

vitto.mq4

Местный знаток
У меня он работает. Добавил количество баров до 400. Убрал цвет баров основного графика. Вот скрин:

Вы можете сделать чтоб в этом индюке можно было выставлять дату и время, а не количество баров для расчета?
 

fs256

Местный знаток
Вы можете сделать чтоб в этом индюке можно было выставлять дату и время, а не количество баров для расчета?

Попробуйте. Только предупреждаю - поправлял в простом редакторе на планшете. Самому проверить - до вечера нет возможности.
 

Вложения

  • Index-v6_mod.mq4
    25,3 КБ · Просмотры: 63
Последнее редактирование:

fatibass

Прохожий
EA DIVERGENCIA

привет хороший вечер
Я новичок в этом форекс и в автоматической торговле

Я хотел бы знать, может ли кто-нибудь заставить ЭТО расходиться. То, что мне дал друг, говорит мне, что он работает хорошо, но ему нужна медицина.
Благодарю вас

drive.google.com/file/d/1vquJ-rKWYyLVpq_n6oHruMSTo6xuuhat/view?usp=drivesdk
 
Последнее редактирование модератором:

kadet

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

Вложения

  • e-CloseByEquity.mq4
    29,2 КБ · Просмотры: 22

bliznec808

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

Вложения

  • ArgoGuardian 3.2.2.ex4
    68,6 КБ · Просмотры: 46

AlanTrade

Интересующийся
Help!
Добрый день всем. Откуда может взяться такое чудо.
1. После аварийного выключения компьютера работавший нормально индикатор после инициализации стал выдавать в журнале экспертов деление на 0 и виснуть.
2. Перезагрузки и перекомпиляции не помогают.
3. Все работавшие ранее версии этого же индикатора тоже глючат.
4. Загрузка индикатора на другой, не работавший в момент сбоя, терминал даёт тот же результат.
5. Загрузка индикатора на чистый, только что поставленный на другой системе терминал даёт тот же результат.

В индикаторе используются глобальные переменные и таймер.

Как вы думаете, может ли сбой внести искажения в код программы?
Где и как следует «копать»?
Что означают цифры в скобках (224,214) в сообщении об ошибке журнала "эксперты"
«Рабочий 4_3 EURUSD,M30: zero divide in 'Рабочий 4_3.mq4' (224,214)»?

Заранее благодарен.
 

Lexxodessa

Гуру форума
Help!
Добрый день всем. Откуда может взяться такое чудо.
1. После аварийного выключения компьютера работавший нормально индикатор после инициализации стал выдавать в журнале экспертов деление на 0 и виснуть.
2. Перезагрузки и перекомпиляции не помогают.
3. Все работавшие ранее версии этого же индикатора тоже глючат.
4. Загрузка индикатора на другой, не работавший в момент сбоя, терминал даёт тот же результат.
5. Загрузка индикатора на чистый, только что поставленный на другой системе терминал даёт тот же результат.

В индикаторе используются глобальные переменные и таймер.

Как вы думаете, может ли сбой внести искажения в код программы?
Где и как следует «копать»?
Что означают цифры в скобках (224,214) в сообщении об ошибке журнала "эксперты"
«Рабочий 4_3 EURUSD,M30: zero divide in 'Рабочий 4_3.mq4' (224,214)»?

Заранее благодарен.
Выложи индикатор ! Исходник .
 

mobidik

-----
Help!
Что означают цифры в скобках (224,214) в сообщении об ошибке журнала "эксперты"
«Рабочий 4_3 EURUSD,M30: zero divide in 'Рабочий 4_3.mq4' (224,214)»?

Заранее благодарен.

Означает только то, что в коде есть деление на "0", что есть ошибка. В ранних билдах данная ошибка игнорировалась, теперь же нужно править сам код, если он, индикатор, у Вас в открытом коде - выкладывайте, будем править...
 

Elvis Burunduk

Элитный участник
Help!

Что означают цифры в скобках (224,214) в сообщении об ошибке журнала "эксперты"
«Рабочий 4_3 EURUSD,M30: zero divide in 'Рабочий 4_3.mq4' (224,214)»?

Заранее благодарен.

224 - это номер строки, где имеется ошибка, 214 - это смещение в этой строке откуда начинается ошибка.
 

XLEX

Интересующийся
Исправьте пожалуйста!

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

Вложения

  • X-Wave-elliot(21-13-8-1).ex4
    15 КБ · Просмотры: 32

AlanTrade

Интересующийся
Всем спасибо

Всем спасибо за отклик.
Немного поторопился с вопросом. Действительно при инициализации появлялось деление на 0. Помог отладчик. В коде были ошибки. Сбило с толку, что он работал. Индикатор стоял на двух валютных парах. Очевидно, за счет некорректного взаимодействия через глобальные переменные или просто за счет ненулевого значения в терминале глобальных переменных, поддерживалась работоспособность. После аварийного выключения данные пропали и ошибки вылезли наружу.
 

druzhba78

Активный участник
Прошу специалистов поправить советник

Здравствуйте ! Хороший и профитный советник, но не без проблем. В работе оставляет некоторые ордера без StopLoss и TakeProfit, при этом появляется сообщение на экране (Number of times the brokers server reported that invalid SL and/or TP: кол-во предупреждений). В редакторе также выдаёт некоторые предупреждения. Гоняю его у двух брокеров на демо Alpari и TickMill.
 

Вложения

  • Советник.mq4
    31,5 КБ · Просмотры: 66

jenzo

Местный знаток
Ребята может кто вылечить советника. Очень прибыльная!
 

Вложения

  • Сов.ex4
    184 КБ · Просмотры: 83

Circas

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

//проверка открытых ордеров и их модификация
void CheckOrders()
{
int pos=0; bool err;
int total=OrdersTotal(); //все ордера
for (pos=0;pos<total;pos++)
{
if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true) // выбор ордера из открытых
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == magic)
{
if (OrderType()==OP_BUY && OrderStopLoss() && iCustom( NULL, 0, "WATR", 0, 0)) //определение типа ордера BUY
err=OrderCloseBy(pos,pos+1,Yellow); //модификация ордера

if (OrderType()==OP_SELL && OrderStopLoss()&& iCustom( NULL, 0, "WATR", 1, 1)) //определение типа ордера SELL
err=OrderCloseBy(pos,pos+1,Yellow); //модификация ордера
}
}
}
}
 

nxx

Новичок форума
Уважаемые...
Нет, не так.
Многоуважаемые специалисты и просто Гуру..
В процессе торгов на поле графика скапливается много объектов: трендовые линии, ценовые метки и т.д. Пользуюсь скриптом-"стеркой" УВО(удаление всех объектов).
Но есть небольшая проблема: одновременно с графика исчезают и некоторые индикаторы, в частности, незаменимый, на мой взгляд, индикатор силы валют CurrencyPoverMetr 2. Но если некоторые индикаторы тут же восстанавливаются на поле графика самостоятельно, то этот замечательный индикатор приходится оживлять "передергиванием затвора." Конечно, не смертельно, но мы все стремимся к большему комфорту в процессе торговли и было бы здорово, если бы научить некоторые индикаторы оживляться самим. Возможно, найдутся умельцы, может, можно что-то добавить в код индикаторов, чтобы они не реагировали на подобные "стерки"?.
И вот еще..
К примеру, не все трендовые линии хочется убрать с графика. Надо бы что-то и оставить до следующего раза. Нельзя ли разработать какой-то прием, чтобы при чистке графика оставались те же трендовые линии, к примеру, только при их построении помеченные какой-нибудь меткой?
Заранее прошу прощения у авторов выложенных мной индикаторов за отсутствие ссылок на их авторство, просто они скачаны в просторах интернета и, возможно, уже не раз переделаны и стали уже "народным достоянием". В любом случае спасибо вам. Так же огромное спасибо тем, кто возьмется за решение данной задачи. Удачи вам и всем остальным нам...
 

Вложения

  • УВО.mq4
    1,4 КБ · Просмотры: 38
  • УВО.ex4
    4,9 КБ · Просмотры: 26
  • CurrencyPowerMeter 2.mq4
    10,1 КБ · Просмотры: 47
  • CurrencyPowerMeter 2.ex4
    33,2 КБ · Просмотры: 28

Pers777

Интересующийся
Уважаемые мастеровые, добавьте пожалуйста кнопку по отключению самых тонких уровней в настройки. Заранее благодарен.
 

Вложения

  • !Mur_VM-2.01~.mq4
    29,7 КБ · Просмотры: 48

Артмен

Новичок форума
Здравствуйте!помогите исправить ошибку - ошибка в коде:'{' - unbalanced parentheses.Ошибка в строке "int start()". При попытке вшить индикатор в советник.
.
Код:
int start() {
   int index_0;
   bool Li_4;
   int highest_8;
   int highest_12;
   int Li_16;
   int Li_20;
   int highest_24;
   int highest_28;
   double Ld_32;
   double Ld_40;
   double ihigh_48;
   double ilow_56;
   double Ld_64;
   bool bool_72;
   bool bool_76;
   bool Li_80;
   bool Li_84;
   G_bars_176=Bars;
   Gi_168=iBars(Symbol(),TF);
   if(Gi_172!=Gi_168 || Gi_192) 
     {
      Gi_192 = FALSE;
      Gi_172 = Gi_168;
      ArrayResize(Gia_196,0);
      ArrayResize(Gia_200,0);
      ArrayResize(Gda_204,0);
      ArrayResize(Gda_208,0);
      ArrayResize(Gsa_212,0);
      index_0=0;
      if(MaxBars>Gi_168) MaxBars=Gi_168;
      for(int Li_88=f0_3(MaxBars); Li_88==0; Li_88=f0_3(MaxBars)) MaxBars--;
      Li_16=MaxBars;
      for(int Li_92=MaxBars; Li_92>2; Li_92--) 
        {
         Li_80 = FALSE;
         Li_84 = FALSE;
         Li_20 = f0_3(Li_92);
         bool_72 = f0_1(Li_92) && f0_4(Li_92);
         bool_76 = f0_2(Li_92) && f0_0(Li_92);
         if(bool_72) 
           {
            highest_24=iHighest(NULL,TF,MODE_OPEN,6,Li_92-3);
            Ld_32=iOpen(NULL,TF,highest_24);
            highest_28=iHighest(NULL,TF,MODE_CLOSE,6,Li_92-3);
            Ld_40=iClose(NULL,TF,highest_28);
            if(Ld_40>Ld_32) highest_8=highest_28;
            else highest_8=highest_24;
            highest_8= iHighest(NULL,TF,MODE_HIGH,3,highest_8-1);
            ihigh_48 = iHigh(NULL,TF,highest_8);
            Li_80=TRUE;
              } else {
            if(Li_20!=Li_88 && Li_20!=0 && Li_88>0) 
              {
               if(Li_16-Li_92>1) 
                 {
                  highest_24=iHighest(NULL,TF,MODE_OPEN,Li_16-Li_92,Li_92);
                  Ld_32=iOpen(NULL,TF,highest_24);
                  highest_28=iHighest(NULL,TF,MODE_CLOSE,Li_16-Li_92,Li_92);
                  Ld_40=iClose(NULL,TF,highest_28);
                  if(Ld_40>Ld_32) highest_8=highest_28;
                  else highest_8=highest_24;
                  highest_8= iHighest(NULL,TF,MODE_HIGH,3,highest_8-1);
                  ihigh_48 = iHigh(NULL,TF,highest_8);
                  if(f0_1(highest_8) || f0_4(highest_8) || Li_16-Li_92>Gi_164) Li_80=TRUE;
                 }
               Li_88 = Li_20;
               Li_16 = Li_92;
              }
           }
         if(bool_76) 
           {
            highest_24=iLowest(NULL,TF,MODE_OPEN,6,Li_92-3);
            Ld_32=iOpen(NULL,TF,highest_24);
            highest_28=iLowest(NULL,TF,MODE_CLOSE,6,Li_92-3);
            Ld_40=iClose(NULL,TF,highest_28);
            if(Ld_40<Ld_32) highest_12=highest_28;
            else highest_12=highest_24;
            ilow_56=iLow(NULL,TF,highest_12);
            Li_84=TRUE;
              } else {
            if(Li_20!=Li_88 && Li_20!=0 && Li_88<0) 
              {
               if(Li_16-Li_92>1) 
                 {
                  highest_24=iLowest(NULL,TF,MODE_OPEN,Li_16-Li_92,Li_92);
                  Ld_32=iOpen(NULL,TF,highest_24);
                  highest_28=iLowest(NULL,TF,MODE_CLOSE,Li_16-Li_92,Li_92);
                  Ld_40=iClose(NULL,TF,highest_28);
                  if(Ld_40<Ld_32) highest_12=highest_28;
                  else highest_12=highest_24;
                  highest_12=iLowest(NULL,TF,MODE_LOW,3,highest_12-1);
                  ilow_56=iLow(NULL,TF,highest_12);
                  if(f0_2(highest_12) || f0_0(highest_12) || Li_16-Li_92>Gi_164) Li_84=TRUE;
                 }
               Li_88 = Li_20;
               Li_16 = Li_92;
              }
           }
         if(Li_80) 
           {
            Ld_32 = iOpen(NULL, TF, iHighest(NULL, TF, MODE_OPEN, highest_8 + 1));
            Ld_40 = iClose(NULL, TF, iHighest(NULL, TF, MODE_CLOSE, highest_8 + 1));
            if(Ld_40>Ld_32) Ld_64=Ld_40;
            else Ld_64=Ld_32;
            Li_4=FALSE;
            if(Ld_64<=ihigh_48) 
              {
               for(int Li_96=index_0; Li_96>=0; Li_96--) 
                 {
                  if(Gsa_212[Li_96]=="R" && Gia_200[Li_96]>iTime(NULL,TF,Li_92)) 
                    {
                     if(ihigh_48<=Gda_204[Li_96] && Ld_64>=Gda_208[Li_96]) 
                       {
                        Li_4=TRUE;
                        continue;
                       }
                     if(ihigh_48>Gda_204[Li_96]) 
                       {
                        Gia_200[Li_96]=iTime(NULL,TF,highest_8);
                        continue;
                       }
                     if(Ld_64<=Gda_208[Li_96] && ihigh_48>=Gda_208[Li_96] && ihigh_48<=Gda_204[Li_96]) 
                       {
                        Gia_200[Li_96]=iTime(NULL,TF,highest_8);
                        ihigh_48=Gda_204[Li_96];
                       }
                    }
                 }
              }
            if(Ld_64<=ihigh_48 && Li_4==FALSE) 
              {
               ArrayResize(Gia_196,index_0+1);
               ArrayResize(Gia_200,index_0+1);
               ArrayResize(Gda_204,index_0+1);
               ArrayResize(Gda_208,index_0+1);
               ArrayResize(Gsa_212,index_0+1);
               Gia_196[index_0] = iTime(NULL, TF, highest_8);
               Gia_200[index_0] = iTime(NULL, 0, 0) + 60 * RectShift * Period();
               Gda_204[index_0] = ihigh_48;
               Gda_208[index_0] = Ld_64;
               Gsa_212[index_0] = "R";
               index_0++;
              }
            Li_80=FALSE;
           }
         if(Li_84) 
           {
            Ld_32 = iOpen(NULL, TF, iLowest(NULL, TF, MODE_OPEN, highest_12 + 1));
            Ld_40 = iClose(NULL, TF, iLowest(NULL, TF, MODE_CLOSE, highest_12 + 1));
            if(Ld_40<Ld_32) Ld_64=Ld_40;
            else Ld_64=Ld_32;
            Li_4=FALSE;
            if(Ld_64>=ilow_56) 
              {
               for(Li_96=index_0; Li_96>=0; Li_96--) 
                 {
                  if(Gsa_212[Li_96]=="S" && Gia_200[Li_96]>iTime(NULL,TF,Li_92)) 
                    {
                     if(ilow_56>=Gda_204[Li_96] && Ld_64<=Gda_208[Li_96]) 
                       {
                        Li_4=TRUE;
                        continue;
                       }
                     if(ilow_56<Gda_204[Li_96]) 
                       {
                        Gia_200[Li_96]=iTime(NULL,TF,highest_12);
                        continue;
                       }
                     if(Ld_64>=Gda_208[Li_96] && ilow_56<=Gda_208[Li_96] && ilow_56>=Gda_204[Li_96]) 
                       {
                        Gia_200[Li_96]=iTime(NULL,TF,highest_12);
                        ilow_56=Gda_204[Li_96];
                       }
                    }
                 }
              }
            if(Ld_64>=ilow_56 && Li_4==FALSE) 
              {
               ArrayResize(Gia_196,index_0+1);
               ArrayResize(Gia_200,index_0+1);
               ArrayResize(Gda_204,index_0+1);
               ArrayResize(Gda_208,index_0+1);
               ArrayResize(Gsa_212,index_0+1);
               Gia_196[index_0] = iTime(NULL, TF, highest_12);
               Gia_200[index_0] = iTime(NULL, 0, 0) + 60 * RectShift * Period();
               Gda_204[index_0] = ilow_56;
               Gda_208[index_0] = Ld_64;
               Gsa_212[index_0] = "S";
               index_0++;
              }
            Li_84=FALSE;
           }
        }
     }
   if(G_bars_180!=G_bars_176) 
     {
      G_bars_180=G_bars_176;
      for(Li_92=0; Li_92<MaxBars/3; Li_92++) 
        {
         ObjectDelete("R"+Gs_184+Li_92);
         ObjectDelete("R"+Gs_184+"t"+Li_92);
         ObjectDelete("R"+Gs_184+"l"+Li_92);
         ObjectDelete("S"+Gs_184+Li_92);
         ObjectDelete("S"+Gs_184+"t"+Li_92);
         ObjectDelete("S"+Gs_184+"l"+Li_92);
        }
      for(Li_92=0; Li_92<ArraySize(Gia_196); Li_92++) 
        {
         if(iBarShift(NULL,TF,Gia_200[Li_92])<=0) Gia_200[Li_92]=iTime(NULL,0,0)+60*RectShift*Period();
         if(Gsa_212[Li_92]=="R") 
           {
            ObjectCreate("R"+Gs_184+Li_92,OBJ_RECTANGLE,0,Gia_196[Li_92],Gda_204[Li_92],Gia_200[Li_92],Gda_208[Li_92]);
            ObjectSet("R"+Gs_184+Li_92,OBJPROP_COLOR,Rcolor);
            ObjectSet("R"+Gs_184+Li_92,OBJPROP_BACK,BackGround);
            ObjectSet("R"+Gs_184+Li_92,OBJPROP_WIDTH,RectangleWidth);
            ObjectSet("R"+Gs_184+Li_92,OBJPROP_STYLE,RectangleStyle);
            if(Gda_204[Li_92]==Gda_208[Li_92]) ObjectSet("R"+Gs_184+Li_92,OBJPROP_BACK,FALSE);
            if(iBarShift(NULL,TF,Gia_200[Li_92])<=0) 
              {
               ObjectCreate("R"+Gs_184+"l"+Li_92,OBJ_TREND,0,Gia_196[Li_92],Gda_208[Li_92],Gia_200[Li_92],Gda_208[Li_92]);
               ObjectSet("R"+Gs_184+"l"+Li_92,OBJPROP_COLOR,TxtColor);
               ObjectSet("R"+Gs_184+"l"+Li_92,OBJPROP_STYLE,STYLE_DOT);
               ObjectCreate("R"+Gs_184+"t"+Li_92,OBJ_TEXT,0,Gia_200[Li_92],Gda_208[Li_92]+TxtSize/4*Point);
               ObjectSetText("R"+Gs_184+"t"+Li_92,"R"+Gs_184,TxtSize,"Arial",TxtColor);
              }
              } else {
            if(Gsa_212[Li_92]=="S") 
              {
               ObjectCreate("S"+Gs_184+Li_92,OBJ_RECTANGLE,0,Gia_196[Li_92],Gda_204[Li_92],Gia_200[Li_92],Gda_208[Li_92]);
               ObjectSet("S"+Gs_184+Li_92,OBJPROP_COLOR,Scolor);
               ObjectSet("S"+Gs_184+Li_92,OBJPROP_BACK,BackGround);
               ObjectSet("S"+Gs_184+Li_92,OBJPROP_WIDTH,RectangleWidth);
               ObjectSet("S"+Gs_184+Li_92,OBJPROP_STYLE,RectangleStyle);
               if(Gda_204[Li_92]==Gda_208[Li_92]) ObjectSet("S"+Gs_184+Li_92,OBJPROP_BACK,FALSE);
               if(iBarShift(NULL,TF,Gia_200[Li_92])<=0) 
                 {
                  ObjectCreate("S"+Gs_184+"l"+Li_92,OBJ_TREND,0,Gia_196[Li_92],Gda_208[Li_92],Gia_200[Li_92],Gda_208[Li_92]);
                  ObjectSet("S"+Gs_184+"l"+Li_92,OBJPROP_COLOR,TxtColor);
                  ObjectSet("S"+Gs_184+"l"+Li_92,OBJPROP_STYLE,STYLE_DOT);
                  ObjectCreate("S"+Gs_184+"t"+Li_92,OBJ_TEXT,0,Gia_200[Li_92],Gda_208[Li_92]);
                  ObjectSetText("S"+Gs_184+"t"+Li_92,"S"+Gs_184,TxtSize,"Arial",TxtColor);
                 }
              }
           }
        }
     }
 
Последнее редактирование модератором:
Верх