OnTick открытие позиции каждый тик

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Str1987
63
Str1987  
Добрый день!

Прошу сильно не ругаться ибо изучаю 2-ой день!

Есть условия на откртие и закртие позиций, которые исполняются в 

void OnTick()
 {
   CheckForOpen();
   CheckForClose();
 }

Дело в том, что условие на открытие в рамках одной свечи открывает и закрывает муллион раз))))  (оно и опнтяно, тк условие верно на каждом моменте тика)

Вопрос:
Как правилльно прописать, что бы условия на открытие позиции проверялось (или исполнялось) только тогда, когда закрыта предыдущая сделка?



Vladislav Andruschenko
175995
Vladislav Andruschenko  
Str1987:
Добрый день!

Прошу сильно не ругаться ибо изучаю 2-ой день!

Есть условия на откртие и закртие позиций, которые исполняются в 

void OnTick()
 {
   CheckForOpen();
   CheckForClose();
 }

Дело в том, что условие на открытие в рамках одной свечи открывает и закрывает муллион раз))))  (оно и опнтяно, тк условие верно на каждом моменте тика)

Вопрос:
Как правилльно прописать, что бы условия на открытие позиции проверялось (или исполнялось) только тогда, когда закрыта предыдущая сделка?


Вам необходимо проверить, есть ли открытая позиция в терминале (Магик, символ, тип)

Самый простой способ это PositionsTotal() Далее, если нужно перебирать по определенному символу или магику или типу, то считайте через цикл 

bool EPs(string sSymbol,int type=-1,ulong magic=-1)
  {
   int  PosTotal=PositionsTotal();
   for(int i=PosTotal-1;i>=0;i--)
     {

      if((PositionSelectByTicket(PositionGetTicket(i))==true || (!PositionSelectByTicket(PositionGetTicket(i)) && PositionSelect(sSymbol)))
         && (PositionGetSymbol(i)==sSymbol || sSymbol=="")
         && (PositionGetInteger(POSITION_TYPE)==type || type==-1)
         && (PositionGetInteger(POSITION_MAGIC)==magic || magic==-1))
        {

         return(true);
        }
     }
   return(false);

  }
Evgeny Belyaev
160086
Evgeny Belyaev  
Str1987:
Добрый день!

Прошу сильно не ругаться ибо изучаю 2-ой день!

Есть условия на откртие и закртие позиций, которые исполняются в 

void OnTick()
 {
   CheckForOpen();
   CheckForClose();
 }

Дело в том, что условие на открытие в рамках одной свечи открывает и закрывает муллион раз))))  (оно и опнтяно, тк условие верно на каждом моменте тика)

Вопрос:
Как правилльно прописать, что бы условия на открытие позиции проверялось (или исполнялось) только тогда, когда закрыта предыдущая сделка?



Нужно посчитать количество позиций, если позиций нет то открываться.

Str1987
63
Str1987  
Evgeny Belyaev:

Нужно посчитать количество позиций, если позиций нет то открываться.

А как это в коде реализовать?




а может так?


void OnTick()
 {

if(OrdersTotal() >=1)  CheckForClose();
else CheckForOpen();
}

Evgeny Belyaev
160086
Evgeny Belyaev  
Str1987:
А как это в коде реализовать?




а может так?


void OnTick()
 {

if(OrdersTotal() >=1)  CheckForClose();
else CheckForOpen();
}

MT4?

Str1987
63
Str1987  
Evgeny Belyaev:

MT4?

Да

Alexey Volchanskiy
27327
Alexey Volchanskiy  
Str1987:

Да

тогда приведенный вами код годится

Str1987
63
Str1987  
Alexey Volchanskiy:

тогда приведенный вами код годитс

Ога работает )))

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