Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 540

 
Rustam Bikbulatov:

Obrigado!!!!! Agora vou tentar espremê-lo em meu código! Por que na primeira linha (vazio) ?

E por que você precisa especificar o tipo de pedido se o nome da função diz que ela considera os pedidos de compra?
 
Artyom Trishkin:
E por que você precisa especificar o tipo de pedido se o nome da função diz que ela considera os pedidos de compra?

O nome pode ser mudado em segundos, mas o próprio código é um problema

 
Rustam Bikbulatov:

Você pode mudar o nome em segundos, mas há um problema com o próprio código

O problema não é com o código, mas com sua compreensão do que você está fazendo :)

//+------------------------------------------------------------------+
int fMarketOrdersOpen(const ENUM_ORDER_TYPE order_type)
  {
   int total=OrdersTotal(), count=0;
   for(int i=total-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS))
        {
         if(OrderType()!=order_type) continue;
         if(OrderMagicNumber()==123 && OrderSymbol()==Symbol())
            count++;
        }
     }
   return count;
  }
//+------------------------------------------------------------------+
 
Rustam Bikbulatov:
Gente. Meu cérebro já está borbulhando((( Por favor, informe como usar esta definição da quantidade de pedidos

fazer a quantidade de volume em lotes? O que precisa ser mudado ou afinado?

double fMarketOrdersOpenB(int type){
   double c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount+=OrderLots();break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Se você não selecionar pelo menos um pedido, esta função retornará -1.

Se o tipo corresponder ao OP_BUY - você receberá o volume COMPRAR lotes

Se o valor do tipo for diferente, a função retornará 0.

Se entendi a tarefa corretamente - mudar a contagem de unidades para a contagem de lotes de pedidos de COMPRA
 
Kirill Belousov:

Se pelo menos uma ordem não for selecionada corretamente, a função retornará -1

Se o tipo corresponder ao OP_BUY - você receberá o volume COMPRAR lotes

Se o valor do tipo for diferente, esta função retornará 0.

Se entendi a tarefa corretamente, é mudar a contagem das peças para a contagem do lote do pedido de compra.

Sim, exatamente. Eu não consigo entender

 
Artyom Trishkin:

O problema não é com o código, mas com sua compreensão do que você faz :)

concordo que não entendo completamente de programação. bem, não é a minha cena((((

 
Inicialmente este código
int fMarketOrdersOpenB(int type){
   int c=0,aBuyCount=0;
   for(int i=0;i<OrdersTotal();i++){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==123){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
              }}}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;return(c);}

Preciso inserir

     .........
double lts=fMarketOrdersOpenB(OP_BUY);
   if(lts>0){
         int irv2=OrderSend(Symbol(),OP_BUY,lts,Ask,3,0,0,NULL,123,0,CLR_NONE);}

Meu código imprime o número de pedidos, mas eu preciso do volume de lote de todos os pedidos de compra

 
Rustam Bikbulatov:
Este código é originalmente

Preciso inserir

Meu código imprime o número de pedidos e eu preciso do volume de lote de todos os pedidos de compra

O mais importante é fazer a pergunta certa.

Descubra por si mesmo o que você precisa

Только "Полезные функции от KimIV".
Только "Полезные функции от KimIV".
  • 2011.02.18
  • www.mql5.com
Все функции взяты из этой ветки - http://forum.mql4...
 
Vitaly Muzichenko:

O mais importante é fazer a pergunta certa.

Procure o que você precisa

Visto e experimentado. Já ajudei muito, mas há um limite para minha compreensão

 
Rustam Bikbulatov:
Gente. Já meu cérebro está fervendo((( Você pode me dizer como fazer o número de pedidos com base nesta definição?

fazer a quantidade de volume em lotes? O que precisa ser mudado ou afinado?

double fMarketOrdersOpenB(const ENUM_ORDER_TYPE type)
{
     double lots=0;
     for(int i=0;i<OrdersTotal();i++)
     {
          if( !OrderSelect(i,SELECT_BY_POS,MODE_TRADES) )   continue;
          if( OrderSymbol()!=Symbol() )                     continue;
          if( OrderMagicNumber()!=123 )                     continue;
          if( OrderType() != type )                         continue;
          lots += OrderLots();
     }
     return(lots);
}
Razão: