Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 861

 
Artyom Trishkin:

Ver os ofícios pertencentes à posição e ver o seu volume.

Apenas desfaça todas as posições comerciais encontradas (as propriedades de cada um) - descubra o que precisa de encontrar lá.

Obrigado.

 

Preciso de ajuda na criação de um ficheiro, em particular, especificando o local correcto para o seu armazenamento.

Utilizo a versão portátil do MT5 e preciso que o ficheiro seja criado na pasta MT5\MQL5\Files, mas é criado no MT5\Tester/Agent-127.0.0.1-3000\MQL5\Files durante a inicialização no Testador de Estratégia.

   filename = (Dir=="" ? filename : Dir+"\\"+filename)+".csv";
   handle= Common ? FileOpen(filename,FILE_CSV|FILE_COMMON|FILE_READ|FILE_WRITE|FILE_SHARE_READ) :
                        FileOpen(filename,FILE_CSV|FILE_READ|FILE_WRITE|FILE_SHARE_READ);
 
Aleksey Vyazmikin:

Preciso de ajuda na criação de um ficheiro, em particular, especificando o local correcto para o seu armazenamento.

Utilizo a versão portátil do MT5 e preciso que o ficheiro seja criado na pasta MT5\MQL5\Files durante a inicialização no Strategy Tester, mas é criado no MT5\Tester/Agent-127.0.0.1-3000\MQL5\Files.

Não há solução em MQL puro. Tem de utilizar o WinAPI. Ou à mão))))

A forma como os ficheiros são distribuídos foi especialmente feita para segurança.

 
Ihor Herasko:

Não há solução em MQL puro. Apenas através da utilização de WinAPI. Ou à mão))))

Esta distribuição de ficheiros foi feita por razões de segurança.

O optimizador armazena dados não na pasta de agentes, mas na pastaMT5\MQL5\Files - não é lógico.

 
if(crossed==1)
     {
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {

Como posso definir um número mágico diferente para a ordem a ser colocada neste código? Diferente deste genérico -

int OnInit()
//---
   m_trade.SetExpertMagicNumber(m_magic);
//---
 
ilyav:

Como posso definir um número mágico diferente para a ordem a ser colocada neste código? Diferente deste genérico -

Antes de enviar uma ordem de abertura com um mágico diferente, execute esta linha com o mágico desejado. A seguir, devolver o mágico ao seu lugar.
 
Por exemplo, para abrir um número especificado de encomendas sem mais. em mql4
 
Este é o último parâmetro da função OrderSend no MQL-4:

arrow_color=clrNONE[in] A cor da seta de abertura na tabela. Se CLR_NONE - não há seta. Em MT5, a seta é sempre exibida - não há parâmetro correspondente na estrutura MqlTradeRequest. Como se lida com isso? É fácil de o fazer na sua tabela. No entanto, se outro gráfico for aberto para o símbolo, terá de tentar novamente...


 
Лауреат:
Por favor, aconselhe como fazer uma função que estabeleça o número certo de encomendas! por exemplo, quero que abra as encomendas que especificámos mas não mais do que isso. em mql4
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("O número necessário de encomendas está aberto");
 
Artyom Trishkin:
Antes de enviar uma ordem de abertura com outro mágico, executar esta linha com o mágico desejado. A seguir, devolver o mágico ao seu lugar.


if(crossed==1)
     {
      m_trade.SetExpertMagicNumber(m_magic2); // меняем мэджик на новый
      double sl=(InpStopLoss==0)?0.0:m_symbol.Bid()+ExtStopLoss;
      double tp=(InpTakeProfit==0)?0.0:m_symbol.Bid()-ExtTakeProfit;
      m_trade.Sell(InpLots,m_symbol.Name(),m_symbol.Bid(),
                   m_symbol.NormalizePrice(sl),
                   m_symbol.NormalizePrice(tp));
      m_trade.SetExpertMagicNumber(m_magic);  // меняем мэджик на оригинал
      datetime time=TimeCurrent();
      for(int i=0;i<4;i++)
        {
Isso é correcto? Obrigado
Razão: