Скачать MetaTrader 5

МТ4 много сделок

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Igor Kryuchkov
14687
Igor Kryuchkov  

Привет. Подскажите пожалуйста. Делаю сову для БО. Решил пойти проще. Взял свой индикатор и просто вместо алертов сделал покупку или продажу. Проблема в том что он покупает или продает бесконечно как только один раз сработает условие на вход.

   double old=0;
   double Buffer[];
   double Buffer2[];
   int j=0;
   int a=0;

   int is_first=1;
   int start()
     {
      int Counted_bars=IndicatorCounted();
      int i=Bars-Counted_bars-1;

      while(i>=0)
        {
         if(условие входа)
           {
            j=1;
            a=1;
           }
         else
         if(условие входа)
           {
            j=2;
            a=2;
           }
         i--;
        }
      if(is_first)
        {
         is_first=0;
         return 1;
        }

      if(a==1)
        {
         ордер на покупку
         a=0;
        }
      if(a==2)
        {
         ордер на продажу
         a=0;
        }
      return(0);
     }
Ihor Herasko
12129
Ihor Herasko  
Перед совершением торговой операции нужно просто проверить, какие ордера уже имеются (функции OrdersTotal(), OrderSelect(), OrderType() и т. д.). В самом простом случае, если уже имеется ордер, открытый советником, то не открывать новый.
Igor Kryuchkov
14687
Igor Kryuchkov  
Ihor Herasko:
Перед совершением торговой операции нужно просто проверить, какие ордера уже имеются (функции OrdersTotal(), OrderSelect(), OrderType() и т. д.). В самом простом случае, если уже имеется ордер, открытый советником, то не открывать новый.
Я в коде сделал проверку перед открытием ордера. Но смысл моего вопроса после вашего ответа не меняется.
Vitalii Ananev
9473
Vitalii Ananev  
Igor Kryuchkov:
Я в коде сделал проверку перед открытием ордера. Но смысл моего вопроса после вашего ответа не меняется.

А вот этот код зачем в советнике? И я не вижу в вашем коде проверку на наличии уже открытых позиций.

....

      int Counted_bars=IndicatorCounted();
      int i=Bars-Counted_bars-1;
....
Alexey Busygin
6563
Alexey Busygin  
Igor Kryuchkov:

Привет. Подскажите пожалуйста. Делаю сову для БО. Решил пойти проще. Взял свой индикатор и просто вместо алертов сделал покупку или продажу. Проблема в том что он покупает или продает бесконечно как только один раз сработает условие на вход.

А чего вы хотели с таким кодом
Alexey Busygin
6563
Alexey Busygin  
Vitalii Ananev:

А вот этот код зачем в советнике? И я не вижу в вашем коде проверку на наличии уже открытых позиций.

Этот код для того чтобы, цикл был бесконечным. Если бар больше нуля, то условие для входа. А где условие для выхода из цикла? Где брекит?
Alexey Volchanskiy
20880
Alexey Volchanskiy  
Igor Kryuchkov:
Я в коде сделал проверку перед открытием ордера. Но смысл моего вопроса после вашего ответа не меняется.
Вы же написали в первом посте, что для БО, то есть бинарных опционов? Тогда какие ордера? Или это те редкие ДЦ, которые дают доступ к БО через МТ4?
Igor Kryuchkov
14687
Igor Kryuchkov  
Alexey Volchanskiy:
Вы же написали в первом посте, что для БО, то есть бинарных опционов? Тогда какие ордера? Или это те редкие ДЦ, которые дают доступ к БО через МТ4?
Да те самые редкие. 
Igor Kryuchkov
14687
Igor Kryuchkov  
Alexey Busygin:
Этот код для того чтобы, цикл был бесконечным. Если бар больше нуля, то условие для входа. А где условие для выхода из цикла? Где брекит?
Без цикла индикатор показывает не нормальные результаты.  Пожалуйста покажте мне пример.
Alexey Busygin
6563
Alexey Busygin  
Igor Kryuchkov:
Без цикла индикатор показывает не нормальные результаты.  Пожалуйста покажте мне пример.
double old=0;
   double Buffer[];
   double Buffer2[];
   int j=0;
   int a=0;

   int is_first=1;
   int start()
     {
      int Counted_bars=IndicatorCounted();
      int i=Bars-Counted_bars-1;

      while(i>=0)
        {
         if(условие входа)
           {
            j=1; //функция открытия ордера(): break;
            a=1; //или флаг: break;
           }

         if(условие входа)
           {
            j=2;//функция открытия ордера(): break;
            a=2;//или флаг: break;
           }
         i--;
        }
      if(is_first)
        {
         is_first=0;
         return 1;
        }

      if(a==1)//флаг 1
        {
         ордер на покупку
         a=0;
        }
      if(a==2)//флаг 2
        {
         ордер на продажу
         a=0;
        }
      return(0);
     }
примерно так, после срабатывания условий, выход из цикла и дальше по строчкам
Igor Kryuchkov
14687
Igor Kryuchkov  
Alexey Busygin:
примерно так, после срабатывания условий, выход из цикла и дальше по строчкам
Спасибо большое. Попробуй когда рынок откроется, отпишусь о результатах.
1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий