Assim, retire a funcionalidade necessária da classe e escreva-a para si próprio.
Obrigado. A minha pergunta é muito mais fácil - abri uma encomenda através de OrderSend(pedido,resultado) e quero operar imediatamente com os seus parâmetros - por exemplo, imprimi-los. Assim:
//============================================================//--- declare and initialize the trade request and result of trade requestMqlTradeRequest request={0};
MqlTradeResult result={0};
//--- parameters of request
request.action = TRADE_ACTION_DEAL; // type of trade operation
request.symbol = Pair1; // symbol
request.volume = lots; // volume of lot
request.type = oper; // order type
request.price = priceOpen; // price for opening
request.deviation= Slippage; // allowed deviation from the price
request.magic = magic;
//=================================== if(OrderSend(request,result))
Print ("retcode = " + retcode + "; ");
Print ("deal = " + deal + "; ");
Print ("order = " + order + "; ");
Print ("volume = " + volume + "; ");
Print ("price = " + price + "; ")
Alguns dos parâmetros, tais como código retc, ordem e volume são impressos, mas negócio e preço não são. Especialmente o preço é de interesse. Todos os resultados estão em MqlTradeResult. Imprimo-os todos da mesma forma, mas alguns deles são impressos enquanto outros não. A questão - por que razão certos parâmetros são impressos enquanto outros não o são?
Eu compreendo queo ArrayCopy copia apenas matrizes unidimensionais?
Não, ArrayCopy copia quaisquer matrizes que sejam permitidas em mql5\4. Mas devem ser idênticos para serem copiados. A segunda dimensão da primeira matriz tem 50, e a segunda matriz tem apenas 20. É o mesmo para a terceira dimensão.
Algotrader18: Obrigado. A minha pergunta é muito mais fácil - abri uma encomenda através de OrderSend(pedido,resultado) e quero operar imediatamente com os seus parâmetros - por exemplo, imprimi-los. Assim: Alguns dos parâmetros como código retc, ordem e volume são impressos, mas negócio e preço não são. Especialmente o preço é de interesse. Todos os resultados estão disponíveis em MqlTradeResult. Imprimo-os igualmente, mas alguns deles são impressos enquanto outros não. A questão - por que razão certos parâmetros são impressos enquanto outros não o são?
//============================================================//--- declare and initialize the trade request and result of trade requestMqlTradeRequest request={0};
MqlTradeResult result={0};
//--- parameters of request
request.action = TRADE_ACTION_DEAL; // type of trade operation
request.symbol = Pair1; // symbol
request.volume = lots; // volume of lot
request.type = oper; // order type
request.price = priceOpen; // price for opening
request.deviation= Slippage; // allowed deviation from the price
request.magic = magic;
//=================================== if(!OrderSend(request,result))
return;
Print ("retcode = " + result. retcode + "; ");
Print ("deal = " + result. deal + "; ");
Print ("order = " + result. order + "; ");
Print ("volume = " + result. volume + "; ");
Print ("price = " + result. price + "; ");
Se averificação da estrutura básica (verificação de ponteiro) for bem sucedida, a verdade é devolvida - isto não indica a execução bem sucedida da operação comercial. Para obter uma descrição mais detalhada do resultado da função, devemos analisar os campos da estrutura de resultados.
Se o cheque básico for passado, só então o imprimimos. Tudo em um só tique. É por isso que escrevi
Tente pesquisar, fxsaber uma vez trabalhou neste problema. Não sei o que ele fez, não estou interessado. É mais fácil para mim obter todos estes parâmetros na OnTradeTransaction
Assim, retire a funcionalidade necessária da classe e escreva-a para si próprio.
Especialmente o preço é de interesse. Todos os resultados estão em MqlTradeResult. Imprimo-os todos da mesma forma, mas alguns deles são impressos enquanto outros não. A questão - por que razão certos parâmetros são impressos enquanto outros não o são?
Como fundir arrays?
Eu compreendo queo ArrayCopy copia apenas matrizes unidimensionais?
Como fundir arrays?
Eu compreendo queo ArrayCopy copia apenas matrizes unidimensionais?
Obrigado. A minha pergunta é muito mais fácil - abri uma encomenda através de OrderSend(pedido,resultado) e quero operar imediatamente com os seus parâmetros - por exemplo, imprimi-los. Assim: Alguns dos parâmetros como código retc, ordem e volume são impressos, mas negócio e preço não são.
Especialmente o preço é de interesse. Todos os resultados estão disponíveis em MqlTradeResult. Imprimo-os igualmente, mas alguns deles são impressos enquanto outros não. A questão - por que razão certos parâmetros são impressos enquanto outros não o são?
Era assim que era originalmente
Fórum sobre Comércio, Sistemas de Comércio Automatizados e Testes de Estratégia
Perguntas de principiantes MQL5 MT5 MetaTrader 5
Algotrader18, 2018.10.25 07:39
Boa tarde!
Abro uma posição e quero imprimir o conteúdo da MqlTradeResult desta forma:
resultado.retcode, encomenda e volume são impressos mas o negócio e o preço são sempre zeros.
Por favor, poderia dizer-me o que estou a fazer mal?
Porque se perdeu no próximo código.... Pergunta...
Penso que o regresso é inaceitável. Será impresso no próximo tick.
E eu penso que o regresso é inaceitável. Afinal de contas, será impresso no próximo tick.
Ordem de AprendizagemEnviar
Valor devolvido
Se averificação da estrutura básica (verificação de ponteiro) for bem sucedida, a verdade é devolvida - isto não indica a execução bem sucedida da operação comercial. Para obter uma descrição mais detalhada do resultado da função, devemos analisar os campos da estrutura de resultados.
Ordem de ExploraçãoEnviar
Se passar o cheque básico, só então imprima-o. Tudo na mesma carraça. Foi por isso que o escrevi.Este era originalmente o caso.
porque se perdeu no código seguinte... pergunta...
Mas, na minha opinião, esta é inaceitável. Será impresso no próximo tick.
Experimentei várias variantes, incluindo esta:
Não copiei tudo para a pergunta por engano.
Já tentei diferentes opções, incluindo esta:
e copiado para a pergunta por engano...
Olá a todos!
Não há nada de semelhante. O MT5 é multithreaded.