Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 165

 
Sepulca:


Если ошибка возникает периодически, может это Ваш ДЦ приписывает к строке что то непотребное. ДЦ может и имеет право.

У меня вон чего приписывает


Возможно и ДЦ - на демо вот гоняю ошибок нет, на реал поставил опять ордер не открылся, пишет ошибка!


Просто другие советники работает нормально а этот периодически дает ошибку, что еще может быть???

 
T-G:

Возможно и ДЦ - на демо вот гоняю ошибок нет, на реал поставил опять ордер не открылся, пишет ошибка!


Просто другие советники работает нормально а этот периодически дает ошибку, что еще может быть???


- проверьте все строковые переменные в программе, чтобы явно задавалось начальное значение. Ошибка эта возникает, скорее всего, когда неинициализированная строка попадает в какую-то функцию в качестве параметра.
- сделайте распечатку значений строковых переменных (вместе с номером строки программы, для удобства) и значения GetLastError() перед вызовом таких функций.

 
Уважаемые форумчане, подскажите,
void BU()
{
   for(int a=0; a<OrdersTotal(); a++) 
      {
       if(OrderSelect(a, SELECT_BY_POS))
        {      
         if(OrderType()==OP_BUY) 
          {
           if(OrderOpenPrice()<=(Bid-BULevel)&&OrderOpenPrice()>OrderStopLoss())
            {      
             OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
            }
           }       
 
         if(OrderType() == OP_SELL) 
           {
            if(OrderOpenPrice()>=(Ask+BULevel)&&OrderOpenPrice()<OrderStopLoss()) 
             {
              OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Red);
             }
           } 
         }
       }
}
  return(0);

почему не работает Безубыток?

Объявлено extern int BULevel = 80;

В старте if (BULevel!=0) BU();

 
alexey1979621:
Уважаемые форумчане, подскажите,

почему не работает Безубыток?

Объявлено extern int BULevel = 80;

В старте if (BULevel!=0) BU();




BULevel*Point
 
   double Red_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_TENKANSEN,1); // красная линия 
   double Blue_Line = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_KIJUNSEN,1); // синяя линия 
   double UpO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANA,1); // верхняя граница облака 
   double DounO = iIchimoku (Symbol(),0,Tenkan,Kijun,Senkou,MODE_SENKOUSPANB,1); // нижняя граница облака 

      
   if(Volume[0]>1) return;

    // продажа
   if (Open[1]>Close[1] && Close[1] < DounO && Open[1]>DounO && Close[1] < Red_Line && Close[1] < Blue_Line) // продажа
     {
     Price = NormalizeDouble(Bid, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
          if(StopLoss > 0)
      {
       SL = Price - StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;

      if(TakeProfit > 0)
      {
       TP = Price - TakeProfit*Point;
       TP = NormalizeDouble(TP, Digits); 
      }
       else TP = 0;

      { 
      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,SL,TP,"Pattern_1",Magic,0,Red);
      return;
      }
    }
     
//---- buy conditions
   // покупка
   if (Open[1]<Close[1] && Close[1] > UpO && Open[1] < UpO && Close[1] > Red_Line && Close[1] > Blue_Line) // bay
   {
     Price = NormalizeDouble(Ask, Digits); // округляем до нужного нам числа цифр после запятой
     if(StopLoss >= STOPLEVEL)
     if(StopLoss > 0)
      {
       SL = Price - StopLoss*Point; // вычисляем стоплос
       SL = NormalizeDouble(SL, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else SL = 0;
      if(TakeProfit > 0)
      {
       TP = Price + TakeProfit*Point; // вычисляем тейкпрофит
       TP = NormalizeDouble(TP, Digits); // округляем до нужного нам числа цифр после запятой
      }
       else TP = 0;

      {
      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,SL,TP,"Pattern_1",Magic,0,Blue);
      return;
      } 
   }
 }

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

На рисунке показано красной стрелочкой вниз, где должна открыться сделка на продажу и красной стрелочкой вверх, где должна открыться сделка на покупку. Совершенная сделка на покупку, открылась с неправильным входом (по идее ее там бять не должно)


 
Можно ли определить время срабатывания отложенного ордера без перебора пересечения цены ордера?
 
zfs:
Можно ли определить время срабатывания отложенного ордера без перебора пересечения цены ордера?


В моем понимании, когда отложка исполняется она превращается в OP_BUY или OP_SELL, (или ето не так?)

если в комент (меджик) забить инфу про тип ордера и сравнивать каждый раз изменился ли он на значение 0 или 1 то можно узнать время срабатывания,

но метод как-то туг в виду нужности постоянного соединение и в целом, надеюсь есть что-то проще))

 
ALXIMIKS:


В моем понимании, когда отложка исполняется она превращается в OP_BUY или OP_SELL, (или ето не так?)

если в комент (меджик) забить инфу про тип ордера и сравнивать каждый раз изменился он на значение 0 или 1 то можно узнать время срабатывания,

но метод как-то туг в виду нужности постоянного соединение и в целом, надеюсь есть что-то проще))

Да, спасибо, до этого варианта я додумался, а вот как быть на реале?)

 
zfs:
Можно ли определить время срабатывания отложенного ордера без перебора пересечения цены ордера?

datetime OrderOpenTime( )
 

zfs:

Да, спасибо, до этого варианта я додумался, а вот как быть на реале?)


писать номер тикета. и его состояние... если изменился то ордер опен прайс... зачем магику прописывать не свойственное или в коменты пхать всякое...

в файлик скидывать историю. открыт закрыт... или вообще просто листать хистори...

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