Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 35

 
alxm:
Документация говорит, что напрягатсья не надо.
тогда ок.
 
alxm:
Документация говорит, что напрягатсья не надо.

Да вот фраза "Для объектов, содержащих строки и динамические  массивы, производится вызов ZeroMemory() для каждого члена" является немного двусмысленной. То ли самой функцией ZeroMemory  производится это обнуление, то ли программисту необходимо самому производить вызов для каждого члена, содержащего динамический массив.

..Хотя. Случаи неприменимости чётко указаны.

 
Yedelkin:
Да вот фраза "Для объектов, содержащих строки и динамические  массивы, производится вызов ZeroMemory() для каждого члена" является двусмысленной. То ли самой функцией ZeroMemory  производится это обнуление, то ли программисту необходимо самому обнулять каждый динамический массив.
А фразу "Для массивов сложных объектов происходит вызов ZeroMemory() для каждого элемента" тоже следует понимать как призыв обнулять каждый элемент отдельно?
 
alxm:
А фразу "Для массивов сложных объектов происходит вызов ZeroMemory() для каждого элемента" тоже следует понимать как призыв обнулять каждый элемент отдельно?
Ну и в крайнем случае это можно легко проверить. :)
 
alxm:
А фразу "Для массивов сложных объектов происходит вызов ZeroMemory() для каждого элемента" тоже следует понимать как призыв обнулять каждый элемент отдельно?
Ну да, сравнили значение русского глагола "производится" с значением русского глагола "происходит" :) Ответ: нет, не следует.
 
Yedelkin:
Ну да, сравнили значение русского глагола "производится" с значением русского глагола "происходит" :) Ответ: нет, не следует.
Согласен. Документация должна быть написана так, не возникало даже мысли о двойном толковании.
 

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

 

И еще, структура ругается

 MqlTradeRequest request={0};
      MqlTradeResult result={0};

      request.action= TRADE_ACTION_DEAL;
      request.magic =MagicNumber;
      request.symbol=symb;
      request.price=BID
      request.deviation=30* Point(symb);
      request.volume=Lot;
      request.sl=s;
      request.tp=t;
      request.type=type;
      OrderSend(request,result);  

 'deviation' - some operator expected htghtgfhthf.mq5 103 15   оператор рассчитывал....  Ну, рассчитывал.

 'Point' - wrong parameters count htghtgfhthf.mq5 103 30

 

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

 
Dimka-novitsek: И еще, структура ругается

Ругается вот на это:

Point(symb);

Для этой функции аргументы не предусмотрены.

Кроме того, см. описание поля deviation. Незачем присваивать ему double-значения. 

 

Теперь такая ситуация. Я хочу задать лот для встречной позиции, для этого я узнаю лот сделки, которая участвовала в этой совокупной позиции, и выставляю встречную позицию, то-есть, хотел бы попробовать выставить. Этот лот я узнаю функцией  HistoryDealGetDouble( TicetTojSdelki,DEAL_VOLUME).

В общем, вот функция и ее вызов

    if ( HistoryDealGetInteger( TicetTojSdelki,DEAL_TYPE)== DEAL_TYPE_BUY){
     OrderSendSELL( Symbol(),"OP_SELL",  HistoryDealGetDouble( TicetTojSdelki,DEAL_VOLUME), 10,10, 300,  300, " com " , 600, 600,0)
  ;}
  
  
                                                          }
 
   
   }
   
   
   
   
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+     
 ulong OrderSendSELL(string symb, string OP_POZA, double Lot, double BIDd,int slip, double  s,  double  t, string com, int MagicNumber, datetime expiration,color c){
  
         ENUM_ORDER_TYPE   type;
         if(OP_POZA=="OP_SELL"){type=ORDER_TYPE_SELL;}
        double BID =BID( symb);
          if(OP_POZA=="OP_BUY"){type=ORDER_TYPE_BUY;}
            BID =ASK( symb);
          

      MqlTradeRequest request={0};
      MqlTradeResult result={0};

      request.action= TRADE_ACTION_DEAL;
      request.magic =MagicNumber;
      request.symbol=symb;
      request.price=BID
     
      request.volume=Lot;
      request.sl=s;
      request.tp=t;
      request.type=type;
      OrderSend(request,result);    
      
        return (result.   deal );       }
 
 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double BID(string symbol) 
  {
   MqlTick last_tick;
   SymbolInfoTick(symbol,last_tick);
   double BID=last_tick.bid;
   return(BID);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ASK(string symbol) 
  {

   MqlTick last_tick;
   SymbolInfoTick(symbol,last_tick);
   double ASK=last_tick.ask;
   return(ASK);  
  }

 'volume' - some operator expected htghtgfhthf.mq5 104 15

 'Lot' - expression has no effect htghtgfhthf.mq5 104 22

Это ругается собственно на структуру. Переменная доубле..   Лот равен лоту.. Не пойму!

 
Спасибо!!
Причина обращения: