Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 84
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Então, por favor, responda minha pergunta anterior
1) Escrever um conjunto de estruturas
2) Transferência para outras funções
3) Recuperando e comparando elementos de uma série de estruturas
4) imprimir um conjunto de estruturas
É importante para mim escrevê-lo na forma de código para que eu entenda como ele deve ser.
Tudo depende da tarefa em mãos. Como as tarefas podem ser tão diferentes quanto você quiser, o que deve ser mostrado?
Bem, vou escrevê-lo, vou perder meu tempo e o que eu escrevi é quadrado. E o buraco é triangular. E onde eu coloco a quadrada então?
Tudo depende da tarefa em mãos. Como as tarefas podem ser tão variadas quanto você quiser, o que deve ser mostrado?
Bem, vou escrevê-lo, perder meu tempo, mas o que eu escrevi é quadrado. E o buraco é triangular. Onde eu coloco a quadrada então?
vamos assumir o posto 699 e cerca de
como passar isso para outras funções e comparar um elemento da estrutura com o anterior
para que eu possa tomar qualquer pedido em ordem e emitir todos os valores para a impressão
A diferença é que não é um número e existem diferentes regras de registro.
vamos assumir o posto 699 e cerca de
como passar isso para outras funções e comparar o elemento estrutura com o anterior
e assim posso tomar qualquer pedido em ordem e imprimir todos os valores
A diferença é que não se trata de um número e aplicam-se regras de escrita diferentes.
Você precisa passar por todas as ordens necessárias.
Após determinar a próxima ordem necessária, você aumenta a matriz em 1, e registra todos os dados sobre esta ordem em sua nova célula. A própria célula da matriz é preenchida com o tempo de abertura do pedido (se você estiver procurando por pedidos fechados, então, tempo de fechamento). O restante dos dados deve ser escrito nos campos da estrutura.
Após o término do loop, ordenar a matriz em ordem ascendente de valores.
Você deve fazer isso primeiro. O resto pode ser discutido mais detalhadamente.
Este não é um problema que possa ser resolvido dentro de um único ciclo.
Obrigado.
//| test.mq4 |
//| Copyright 2014, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
struct myorder
{
int Ticket;
double orderopenprice;
int ordertype;
double profit;
double stoploss;
double lot;
};
myorder orders[][5];
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;
ArrayResize(orders,AccountInfoInteger(ACCOUNT_LIMIT_ORDERS),10);
for(i=OrdersTotal()-1; i>=0; i--)
{
if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
&& (OrderMagicNumber()==Magic) && (OrderType()<2))
{
count1++;
orders[count1][0].Ticket=OrderTicket();
orders[count1][1].lot=OrderLots();
orders[count1][2].orderopenprice=OrderOpenPrice();
orders[count1][3].ordertype=OrderType();
orders[count1][4].profit=OrderProfit();
orders[count1][5].stoploss=OrderStopLoss();
}
}
ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
}
//+------------------------------------------------------------------+
Eu coloquei seu código em seu posto.
Agora, se você começar a resolver isso
Eu coloquei seu código em seu posto.
Agora, se você começar a resolver isso
1) achou que o número de parâmetro X de ordem Y é mais apropriado para a tarefa em questão
2) Eu o tenho igual a 50 ou 100, dependendo do tipo de conta, e nada mais
3) portanto, secontarmos 1++; aumentará a cada passagem, e a matriz adquirirá seu valor
1) considerou que o número de parâmetro X de ordem Y é mais apropriado para esta tarefa
2) é igual a 50 ou 100, dependendo do tipo de conta, e nada mais
3) portanto, secontarmos 1++; aumentará a cada passagem, e a matriz adquirirá seu valor
1. Para que serve então a estrutura?
2. Você precisa deste parâmetro para uma série de posições de mercado "o que foi e o que foi"... A matriz antes do laço deve ter um tamanho zero .
3. É isso mesmo. A matriz tem um tamanho zero no início. A cada novo pedido encontrado, o conjunto torna-se igual em tamanho ao número de pedidos que você precisa.
1) Para que serve então a estrutura?
2. Você precisa deste parâmetro para a gama de posições de mercado "o que foi e o que foi". A matriz antes do laço deve ter um tamanho zero .
3. Isso mesmo. A matriz tem um tamanho zero no início. A cada novo pedido encontrado, o conjunto torna-se igual em tamanho ao número de pedidos que você precisa.
1) o compilador reclamará se a segunda dimensão não for colocada, "especificar tipo de classe, parâmetros desconhecidos" surgirá imediatamente
2) o bot morrerá imediatamente no lançamento com "matriz de erros críticos fora de alcance".
3) setint count1=-1; depois passar pelo laço. O que há de errado aqui?
1) o compilador irá reclamar se a segunda dimensão não estiver definida
2) então o bot morrerá imediatamente na partida com "matriz de erros críticos fora de alcance".
3) imediatamente definirint count1=-1; O que há de errado aqui?
É só para dizer que uma das dimensões deve ser removida. Você está declarando uma matriz unidimensional e quer escrevê-la em uma bidimensional. O que você obterá como resultado? Você receberá um erro do compilador, é claro.
2. Você tem que preencher a matriz corretamente no laço, e não apenas dar-lhe alguma variável de tamanho aleatório e depois enfiar algumas coisas de tamanho aleatório nela.
3. você é quem define a variável como -1. E a matriz deve ter tamanho zero antes do laço. O que você não entende?
Vamos jogar um jogo de associação:
- Imagine que você tem um balão deflacionado (matriz vazia) que tem volume interno zero (tamanho da matriz zero). Dentro deste balão (na matriz) você quer colocar moedas (as ordens que você quer). Aqui, cada moeda, uma vez que você decidir que é apropriada para ser armazenada no balão (cada ordem desejada encontrada), aumentará o volume interno do balão (somente a própria moeda esticará o balão, e você precisa fazê-lo você mesmo - aumente o tamanho da matriz em 1 e enfie uma ordem nele).
Aqui está uma associação para você.No final, quando você tiver encontrado todas as moedas e as amontoou na bola, ela não será deflacionada - seu volume interno foi esticado pelas moedas (ao final do ciclo de busca o tamanho da matriz será igual ao número de ordens necessárias encontradas, pois você aumentou o tamanho da matriz em 1 com cada ordem necessária encontrada).
Agora imagine que, inicialmente, você coloca suas moedas não em uma bola, que é de borracha e pode mudar seu tamanho, mas em uma pequena caixa de dinheiro que tem um tamanho limitado (você inicialmente definiu o tamanho da matriz e não a aumentou mais). O que vai acontecer? Nem todas as moedas caberão no porquinho mealheiro. O balão irá.