Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 35

 
alxm:
A documentação diz que não tem de se esforçar.
OK, então.
 
alxm:
A documentação diz que não há necessidade de se preocupar.

Mas a frase"Para objectos contendo cordas e matrizes dinâmicas, ZeroMemory() é chamada para cada membro" é um pouco ambígua. Ou a própria função ZeroMemory executa esta zeragem, ou o próprio programador deve fazer a chamada para cada membro contendo uma matriz dinâmica.

...Embora. Os casos de inaplicabilidade são claramente especificados.

 
Yedelkin:
Mas a frase"Para objectos contendo cordas e matrizes dinâmicas, ZeroMemory() é chamada para cada membro" é ambígua. Ou esta zeragem é realizada pela própria função ZeroMemory ou o próprio programador deve zerar cada matriz dinâmica.
E a frase"para matrizes de objectos complexos ZeroMemória() é chamada para cada item" também deve ser entendida como uma chamada para zerar cada item separadamente?
 
alxm:
E a frase"Para matrizes de objectos complexos ZeroMemória() é chamada para cada elemento" também deve ser entendida como uma chamada para zerar cada elemento separadamente?
Bem, e como último recurso, pode ser facilmente verificado. :)
 
alxm:
E a frase"Para matrizes de objectos complexos ZeroMemória() é chamada para cada elemento" também deve ser entendida como uma chamada para zerar cada elemento separadamente?
Bem, sim, compare o significado do verbo russo "produzido" com o significado do verbo russo "ocorre" :) Resposta: não, não deve.
 
Yedelkin:
Sim, compare o significado do verbo russo "produzido" com o significado do verbo russo "ocorre" :) A resposta é não, não deve ser.
Concordo. A documentação deve ser escrita de modo a que não se pense numa dupla interpretação.
 

Boa tarde! Suponha que eu fecho parte de uma posição abrindo uma posição inversa. Que paragem de perdas e lucros devo estabelecer? Provavelmente será aquele que eu fixei, e não aquele que eu tive? Não, não pode ser, vou abrir um comércio inverso para reduzir a posição e os lucros e perdas são os mesmos que no anterior. Em suma, fiquei confuso. Por favor, ajude-me a esclarecer.

Além disso, a estrutura tem um erro

 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);  

'desvio' - algum operador esperado htghtgfhthf.mq5 103 15 operador calculado.... Bem, calculado.

'Ponto' - parâmetros errados contam htghtgfhthf.mq5 103 30

Penso que está tudo correcto?? Em suma, por favor, diga-me o que devo colocar que não jure?

 
Dimka-novitsek: Além disso, a estrutura é amaldiçoada com

Isto é o que diz:

Point(symb);

Não são apresentados argumentos para esta função.

Ver também a descrição do campo de desvio. Não há necessidade de lhe atribuir valores duplos.

 

Agora aqui está a situação. Quero definir o lote para a posição oposta, para isso descubro o lote do comércio, que participou nesta posição combinada, e definir a posição oposta, ou seja, gostaria de tentar definir. Este lote reconheço com a função HistoryDealGetDouble( TicetTojSdelki,DEAL_VOLUME).

De qualquer forma, aqui está a função e a sua chamada

    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 - algum operador esperava htghtgfhthf.mq5 104 15

'Lote' - expressão não tem efeito htghtgfhthf.mq5 104 22

É a própria estrutura que está a ser repreendida. Dowble variável... Lote é igual a lote... Não o compreendo!

 
Obrigado!!!