Нужна помошь: советник с кастомным индикатором не торгует по сигналам индикатора! - страница 4

 
Reshetov писал (а):
Индюк трендовый, поэтому такие запаздывания во флете.
В корзину не за запаздывание, а за подчистку сигналов, фактически переписку.
 
Moriarty:
МДЯ... Куда я попал. 8(((

Во первых: похоже я так и не смог донести мысль о том, что в индюке
по умолчанию пустым значениям буферов присваиваются значения EMPTY_VALUE
вместо 0 ...

Во вторых: это автоматический перевод (слегка подправленный)
с МТ3 (зато глючный)...

В третьих: у меня всё работает 0_о ...


Не бойтесь. Вы попали по адресу! ;)
Я проверил вариант с иКустом (...)!=EMPTY_VALUE;
Всё равно была ошибка. Она так и осталась.
Пришлите кто-нибудь рабочий кусочек отвечающий за закрытие (если есть что закрывать) предыдущей позы и открытии новой позы. Система то переворотная.
 
granit77:
Reshetov писал (а):
Индюк трендовый, поэтому такие запаздывания во флете.
В корзину не за запаздывание, а за подчистку сигналов, фактически переписку.


да я это скорее имел ввиду! запаздывание еще куда ни шло

пусь запаздал но верно показал и тенденция продолжилась! но не в ситуации когда показал покупку там где продаваться надо!

 
Удалил свой предыдущий пост, т.к. не нашёл написанного вчера эксперта, подтверждающего мой пост (про всё работает).
Думал никто его не успел прочитать, однако ошибся. Я правил код выложенного индюка и писал своего экспа. Всё работало.
Завтра опять сделаю, выложу, чтобы (как сегодня) не быть голословным. Просто я всегда удаляю лишние проверочные коды
из МТ, чтобы не засорять и без того переполненные папки.
 
meta-trader2007 писал (а):

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

Возможно, подойдет MACD Sample ?
 
granit77:
meta-trader2007 писал (а):

Как я понял это устанавливает принудительно эээ "пустые"
буфера,  когда нет стрелки, на нуль. Верно?
Да.
Нет. См. справку.
 
granit77:
meta-trader2007 писал (а):



Пришлите кто-нибудь рабочий кусочек отвечающий за закрытие

(если есть что закрывать) предыдущей позы и открытии новой позы.


Система то переворотная.


Возможно, подойдет MACD Sample ?





При чём тут  MACD Sample? Там не так.

Нужно чтобы по сигналу индикатора на покупку закрывалась если есть поза на продажу и открывалась поза напокупку. А если сработает закрытие позы по тралу или стопу или тэйку - то ждём образования следующей стрелочки.  

У меня это делает такой код:
int r=0;
if (OrdersTotal()!=0)
{
for(r=0; r<=50; r++)
{
//=EMPTY_VALUE
 if (iCustom(NULL,0,"Stop_reversals",nPips,1,r)!=0 && iCustom(NULL,0,"Stop_reversals",nPips,0,r)!=EMPTY_VALUE)
  {
  if(our==2)
  {
  Zakr_Pokypka();
  break;
  }
  }
 
 if (iCustom(NULL,0,"Stop_reversals",nPips,0,r)!=0 && iCustom(NULL,0,"Stop_reversals",nPips,0,r)!=EMPTY_VALUE)
  {
  if (our==1) 
  {
  Zakr_Prodaza();
  break;
  }
  }
}
} 
   
int i=0;  
int war=0;
if (OrdersTotal()==0)
{
for(i=0; i<=50; i++)
{
 if ((our==2 ||our==0)&&iCustom(NULL,0,"Stop_reversals",nPips,1,i)!=0 && iCustom(NULL,0,"Stop_reversals",nPips,0,r)!=EMPTY_VALUE)
  {
  war=1;
  our=1;
  break;
  }
 
 if ((our==1 ||our==0)&&iCustom(NULL,0,"Stop_reversals",nPips,0,i)!=0 && iCustom(NULL,0,"Stop_reversals",nPips,0,r)!=EMPTY_VALUE)
  {
  war=2;
  our=2;
  break;
  }
}
if(war==1)Prodaza();
if(war==2)Pokypka();
}

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

 
   if (action==106)
      {
      if(OrdersTotalByType(OP_SELL)>0) CloseOrders(OP_SELL);
      OpenOrder(OP_BUY);
      }
   // закрыли бай + окрыть shell
   if (action==107)
      {
      if(OrdersTotalByType(OP_BUY)>0) CloseOrders(OP_BUY);
      OpenOrder(OP_SELL);
      }
 
Prival:
   if (action==106)
      {
      if(OrdersTotalByType(OP_SELL)>0) CloseOrders(OP_SELL);
      OpenOrder(OP_BUY);
      }
   // закрыли бай + окрыть shell
   if (action==107)
      {
      if(OrdersTotalByType(OP_BUY)>0) CloseOrders(OP_BUY);
      OpenOrder(OP_SELL);
      }



Слишком мало кода... Не понял что и куда. :(
Что такое action ?
 
if (action==106)
      {
      if(OrdersTotalByType(OP_SELL)>0) Zakr_Prodaza();
      Pokypka();
      }
   // закрыли бай + окрыть shell
   if (action==107)
      {
      if(OrdersTotalByType(OP_BUY)>0) Zakr_Pokypka();
      Prodaza();
      }
 В моём случае будет так , но что такое OrdersTotalByType?
А также не понятно как происходит защита от открытия позиции в том же направлении если сработал какой-либо ордер (тэйк, стоп, трал).
Причина обращения: