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

 
trader781:

1) o compilador reclamará se a segunda dimensão não for definida, "especificar tipo de classe, parâmetros desconhecidos" surgirá imediatamente

2) então o bot morrerá imediatamente na partida com "matriz de erros críticos fora de alcance".

3) setint count1=-1; depois passar pelo laço. O que há de errado aqui?

Bem, reveja as respostas de vez em quando: 1 e 2 e 3 e ...

Você vem fazendo a mesma coisa há mais de uma semana e a situação piora a cada vez, embora já tenha recebido uma resposta e tenha apontado o erro. Então, o compilador não reclamou da ausência da segunda dimensão no primeiro código, mas começa a reclamar nas dimensões seguintes? O compilador ficou ruim? Você também pode abrir qualquer código com arrays e ver como eles são criados e fazer o mesmo.

 
Artyom Trishkin:

Não existe tal coisa. Os MAs já foram tão arrastados, por tantas pessoas, que basta esperar um novo pensamento de um comerciante ambicioso recém-cunhado. Estava brincando.

A verdade é que estou cansado de bisbilhotar com uma garrafa de MA por tantos anos. Eles ficam para trás. Eles provavelmente deveriam ser utilizados em outra área, mas não para capturar fluxos de tendências.

Há todos os tipos de mashkas.

De modo geral, só há empurradores em todos os lugares.

 
Victor Nikolaev:

Há todos os tipos de mash-ups.

De modo geral, todos os cogumelos estão sendo utilizados em todos os lugares

Então, o que estou dizendo? É o que estou dizendo - com uma aparência diferente, não de frente.
 
Vitaly Muzichenko:


Ainda não está pronto. Eu não teria escrito aqui se tivesse encontrado um semelhante com outros. Penso que você mesmo entende que uma seqüência numérica e uma lista de estruturas não são a mesma, caso contrário, haverá outra equação com um número infinito de incógnitas.

Artyom Trishkin:

Que tal isso?



#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1);
         orders[count1-1].Ticket=OrderTicket();
         orders[count1-1].lot=OrderLots();
         orders[count1-1].orderopenprice=OrderOpenPrice();
         orders[count1-1].ordertype=OrderType();
         orders[count1-1].profit=OrderProfit();
         orders[count1-1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
E quanto a lançar o código aqui - me irrita quando alguém o afixará e depois terá que percorrer as páginas. É mais compacto desta forma.
 
trader781:
até que eu o faça. Eu não estaria escrevendo aqui se tivesse encontrado um semelhante com outros.
Por favor, cole o código não como um arquivo, mas em uma mensagem. Isto é como se vê de um telefone celular?
 
trader781:
até que eu o faça. Eu não teria escrito aqui se tivesse encontrado a mesma coisa com os outros. Eu acho que você mesmo entende que a série numérica e a lista de estruturas não são a mesma, caso contrário, você terá outra equação com um número infinito de incógnitas.
#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         orders[count1].lot=OrderLots();
         orders[count1].orderopenprice=OrderOpenPrice();
         orders[count1].ordertype=OrderType();
         orders[count1].profit=OrderProfit();
         orders[count1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
E quanto a lançar o código aqui - me irrita quando alguém o afixará e depois terá que percorrer as páginas. É mais compacto desta forma.

Errado. Trace de seu código qual será o tamanho de sua matriz.

Você tem que pensar, pelo menos um pouco. Não é preciso adivinhar. Pense. Cada passo do programa. Ou você está esperando que alguém o escreva para você? Este é um serviço freelance - às vezes eles ordenam que você escreva funções.

 
Artyom Trishkin:

Errado. Trace de seu código qual será o tamanho de sua matriz.

Você deveria pensar um pouco sobre isso. Você não deve tentar adivinhar. Basta pensar. Cada passo do programa. Ou você está esperando que alguém o escreva para você? Este é um serviço freelance - às vezes eles ordenam que você escreva funções.

Do meu ponto de vista

1) adicionar a zero se o pedido for encontrado

2) mudar o tamanho para 0, reservar 10

3) Escreva 0 como o primeiro número de pedido, 1 como o segundo, etc.

Quanto ao freelance, não estou contestando que eles escreverão qualquer coisa, mas você ainda tem que reescrevê-lo você mesmo. Você não tem que ir lá sem parar.
 
trader781:
até que eu o faça. Eu não teria escrito aqui se eu tivesse encontrado o mesmo com os outros. Eu acho que você mesmo entende que a seqüência numérica e a lista de estruturas não é a mesma, caso contrário, será outra equação com um número infinito de incógnitas.
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
E quanto a jogar o código aqui - me irrita quando alguém vai afixá-lo e depois tem que rolar pelas páginas. A razão para isto é que a codificação não tem efeito sobre a qualidade do projeto.

Eu não escrevi muito, apenas gravei uma pequena resposta em vídeo.

Artem certamente ajuda o máximo que pode, mas ele não me dá um peixe, apenas uma cana de pesca)

comerciante781, procure na documentação às vezes, ela agora está cheia a cada volta.
 
trader781:

do jeito que eu vejo

1) adicionar a zero se for encontrado um pedido

2) mudar o tamanho para 0, reservar 10

3) Escreva 0 como primeiro número de pedido, 1 como segundo número de pedido, etc.

Quanto à agência autônoma, não estou contestando que eles escreverão qualquer coisa, mas você ainda tem que reescrevê-la você mesmo. Não vá lá sem parar.

E como você quer escrever algo em uma matriz com tamanho zero?

Coloque dinheiro em uma carteira que você não tem...

 
Artyom Trishkin:

E como você quer escrever algo em um array com um tamanho zero?

Para colocar dinheiro em uma carteira que não existe ...

revisado pelo correio 844, para não ter que escrever código aqui novamente.

Quanto à matriz de tamanho zero - 0 pode ser um número inteiro, pode ser o equivalente a um falso booleano, pode ser um vazio, e pode ser um ponto de partida.