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

 
Tigerfreerun:
Se (OP_BUY==0)

Por que você está enganando? Ou você não se conhece, então por favor, mantenha sua ignorância fora de uma linha de ajuda ou você está apenas brincando mas esqueceu que você está em uma linha de ajuda séria para iniciantes.

SanNneK:
aqui está a condição se todas as ordens forem zeroif(OrdersTotal()==0). e qual condição para escrever se houver zero baías?

Precisamos fazer loop em todos os pedidos e calcular o número de pedidos com OrderType()==ORDER_TYPE_BUY

 
Artyom Trishkin:

Por que você está enganando? Ou você não sabe, então por favor mantenha sua ignorância fora de uma linha de ajuda, ou você está apenas brincando, mas esqueceu que está em uma linha de ajuda séria para iniciantes.

Preciso fazer loop em todos os pedidos e calcular o número de pedidos com OrderType()==ORDER_TYPE_BUY.

Ouçam. Gostaria que você me ajudasse com esta função, sobre a qual escrevi na página anterior. Eu mesmo utilizo esta função para a contagem de pedidos:

int Count(int type,string sy)
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {if(sy==OrderSymbol() && OrderMagicNumber()==Magic && (type==-1 || OrderType()==type)) count++;}
     }
   return(count);
  }
 
Tigerfreerun:

Ouçam. Ficaria grato se você pudesse ajudar com a função sobre a qual escrevi na última página. Eu mesmo utilizo esta função para a contagem de pedidos:

De que tipo de ajuda você precisa? É uma função bastante funcional no estilo de Kim.
 
Alexey Viktorov:
De que ajuda você precisa? É uma função bastante funcional no estilo de Kim.

Na última página escrevi uma função com uma posição inicial incorreta de erro 0 para afunção ArraySort.E um pedido para uma explicação da função. Estou duplicando

void MaxMinProfit()
{
int i, N, MaxTic, MinTic;
double   MinProf=0, MaxProf=0, OP, g, a[][2];
string MinSym, MaxSym;
ArrayResize(a, 0);
 
for (i=OrdersTotal()-1; i>=0; i--) 
  {    
   if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) 
    { 
     if (OrderType()==OP_SELL ||  OrderType()==OP_BUY )
      {
       OP = NormalizeDouble(OrderProfit()+OrderSwap()+OrderCommission(),2);
       
      if (MinProf>OP) 
      {
       
          MinProf=OP;
          MinTic=OrderTicket();
          MinSym=OrderSymbol();
          
         }
         
      if (OP>0) 
      {
       
          N++;
            ArrayResize(a, N);
            a[N-1][0]=OP;
            a[N-1][1]=OrderTicket();
          
         }
         
         }
         }
         
         }
         
      ArraySort(a, WHOLE_ARRAY, 0, MODE_DESCEND);//MODE_ASCEND);
      
      for (i=0; i<Level; i++) 
       {
     
     g+=a[i][0];
     //int ti=a[i-2][1];
     }
         
         
     
     if(MinProf <0 && (g+MinProf)>=ProcMax)
      {
       for (i=0; i<Level; i++) 
       {
       if (OrderSelect(a[i][1], SELECT_BY_TICKET, MODE_TRADES))
        {
        //Alert(a[i][1]);
         if (OrderType()== OP_BUY)
         {
          OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
           OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }
         }
          
          
          
          if (OrderSelect(MinTic, SELECT_BY_TICKET, MODE_TRADES))
        {
         if (OrderType()== OP_BUY)
         {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), Slip, CLR_NONE);
          }
          if (OrderType()== OP_SELL)
           {
          OrderClose(MinTic, OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), Slip, CLR_NONE);
           }
          }}       
return;
}
 

Qual é a melhor maneira de passar parâmetros entre os elementos de classe, que por sua vez também são elementos de classe?

Dado:

class element{
public:
int a;
        void fnc(){
        a++;            
        }
};

class elementBase{
public:
	 int b;
        element one;
        element two;
};

Existe alguma forma de alterar o valor de dois.a da função a.fnc() ?


Em meu problema, as variáveis da classe dois devem ser recalculadas quando os elementos da classe um são alterados. (Você pode me dizer como fazer isso bem?)

Existe alguma maneira de obter o valor de b da classeelementBase?

 
Tigerfreerun:

Na última página escrevi uma função com uma posição inicial incorreta de erro 0 para afunção ArraySort.E um pedido para uma explicação da função. Duplicata

A direção para pensar: Se o lucro for inferior a zero... qual será o tamanho da matriz durante a triagem???

Qual será o tamanho da matriz se não houver nenhuma ordem???
 
Alexey Viktorov:

Direção para pensar: Se o lucro for inferior a zero... qual será o tamanho da matriz durante a triagem???

E qual será o tamanho da matriz se não houver nenhuma ordem???
Eu não entendo bem o que exatamente esta função faz. Mas, como o autor mencionou, minha tarefa é sobrepor a perda de pedidos com pedidos lucrativos entre símbolos. Eu ficaria feliz se você pudesse me ajudar a corrigir e entender esta função.
 
Tigerfreerun:
Eu realmente não entendo o que exatamente esta função faz. Mas, como disse o autor, sua tarefa é sobrepor a perda de pedidos com pedidos lucrativos entre símbolos. Eu ficaria feliz se você pudesse me ajudar a corrigir e entender a função

Quais são seus erros de compilação? Mostrar uma captura de tela.

Não há erros no código, mas há algumas falhas menores que não afetam a funcionalidade

 
Vitaly Muzichenko:

Quais são seus erros de compilação? Mostrar uma captura de tela.

Não há erros no código, mas há alguns erros menores que não afetam o desempenho

Ao executar o robô "posição inicial incorreta 0 para afunçãoArraySort", você poderia explicar esta função, talvez eu entenda o que está errado...
Arquivos anexados:
yOXZsAXZ-X4.jpg  479 kb
Pe3JLH8tgCc.jpg  556 kb
 
Tigerfreerun:
Quando meu robô iniciar "posição inicial incorreta 0 para afunçãoArraySort", você poderia explicar esta função, talvez eu entenda o que está errado...

Bem, você mostrou os erros não críticos.

Como a função funciona, você mesmo a respondeu:

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Qualquer dúvida que os novatos tenham sobre MQL4, ajuda e discussão sobre algoritmos e códigos

Tigerfreerun, 2018.09.06 21:53

Eu realmente não entendo exatamente o que esta função faz. Mas, como disse o autor - a tarefa é sobrepor as ordens perdidas com as lucrativas entre os símbolos. Eu ficaria feliz se você pudesse me ajudar a corrigir e entender esta função

Razão: