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

 
Rewerpool:
Isso é um toque agradável. Removido do código.

Parar agora está se contorcendo a cada tique )))))

Acrescente-o.

          double    OOP = OrderOpenPrice(),
                    OSL = OrderStopLoss(),
                    OTP = OrderTakeProfit();
          if ((OSL!=0&&stoploss==0) && (OTP!=0&&takeprofit==0)) continue;
 

Boa noite novamente. Síntese completa da pergunta.

Estou colocando uma EA (trabalhando) no mercado. Plataforma MT4. Eu posso exibir um único arquivo. Um arquivo do Consultor Especialista. Deve passar a validade, mas não pode porque é uma EA sem indicadores. Eles estão em arquivos separados. O Expert Advisor trabalha com quatro indicadores. Eles têm que estar de alguma forma ligados ao Consultor Especialista. Você tem que especificar o caminho, ou seja, escreva-os no Consultor Especialista. O quê? e onde? Por favor, informe qual forma e como fazer isso.

Pelo que entendi, temos que usar os "Recursos" . Não sei como registrá-lo corretamente no Expert Advisor. Talvez você conheça algumas outras soluções.

Obrigado .

Aqui está o que diz quando não passa a validade

 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2]01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\HA_Smooth'.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:00 não pode abrir o arquivo 'MQL4\indicators\TrendLord'.ex4' [2] 2016.04.01 00:00:00:05 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00:05 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:00:0504.01 00:00:05 não pode abrir o arquivo 'MQL4\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:00:05 não pode abrir o arquivo 'MQL4\MA in Color_wAppliedPrice.ex4' [2] 2016.04.0101 00:00:05 não pode abrir o arquivo 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 não pode abrir o arquivo 'MQL4\indicators\HA_Smooth.ex4' [2] 2016.04.01 00:00:05 não pode abrir o arquivo 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.0101 00:00:05 não pode abrir o arquivo 'MQL4\indicators\TrendLord.ex4' [2] 2016.04.01 00:00:10 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime.ex4' [2] 2016.04.01 00:00:10 não pode abrir o arquivo 'MQL4\indicators\Heiken_Ashi_Smoothed1lime'.ex4' [2] 2016.04.01 00:00:10 não pode abrir o arquivo 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2] 2016.04.01 00:00:10 não pode abrir o arquivo 'MQL4\indicators\MA in Color_wAppliedPrice.ex4' [2]

 
Boa noite, como se faz um deslize? Procurei em toda a Internet, não encontrei nada....
 
Oleksandr Kulibaba:

Boa noite novamente. Síntese completa da pergunta.

Estou colocando uma EA (trabalhando) no mercado. Plataforma MT4. Eu posso exibir um único arquivo. Um arquivo do Consultor Especialista. Deve passar a validade, mas não pode porque é uma EA sem indicadores. Eles estão em arquivos separados. O Expert Advisor trabalha com quatro indicadores. Eles têm que estar de alguma forma ligados ao Consultor Especialista. Você tem que especificar o caminho, ou seja, escreva-os no Consultor Especialista. O quê? e onde? Por favor, informe qual forma e como fazer isso.

Pelo que entendi, temos que usar os "Recursos" . Não sei como registrá-lo corretamente no Expert Advisor. Talvez você conheça algumas outras soluções.

Obrigado .

Aqui está o que diz se a validade não for passada

Acho triste que você tenha escrito um EA e não possa acrescentar indicadores a ele.

 
Vladislav Andruschenko:

É triste que você tenha escrito um EA e não possa acrescentar indicadores para que ele funcione.

 
Oleksandr Kulibaba:
Estou trabalhando nisso. Espero que dê certo. Sua resposta não me ajudou em nada. E eu não estou nada triste, pelo contrário, estou entusiasmado. E eu vou fazer isso.
 
//+------------------------------------------------------------------+
//|                                                        temp1.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int    Slippage=29;

int Slippage1;

int OnInit()
  {
//---
   Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }
//+------------------------------------------------------------------+

Saudações.

Um novo tick deve atribuir o valor do parâmetro de entradaSlippage à variávelSlippage1,emitiro valor deSlippage1 em um comentário e mostrar"Parâmetros alterados"no log.

Com o que não funciona: QuandoSlippage1!=Slippage, a opção"Parâmetros alterados" não é impressa no registro.

Pergunta: O que estou fazendo de errado?

 
Andrey Sokolov:

Saudações.

Um novo tick deve atribuir o valor do parâmetro de entradaSlippage à variávelSlippage1,emitiro valor deSlippage1 em um comentário e mostrar"Parâmetros alterados"no diário.

Com o que não funciona: QuandoSlippage1!=Slippage, os"Parâmetros mudados" não são impressos no registro.

Pergunta: O que estou fazendo de errado?

Se um parâmetro de entrada for alterado, então é atribuído à variável Slippage1 o valor de Slippag no OnInit.Portanto, eles não podem ser desiguais.

extern int    Slippage=29;

int Slippage1 = 0;

int OnInit()
  {
//---
   //Slippage1=Slippage;
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  if(Slippage1!=Slippage){Slippage1=Slippage; Print("Параметры изменены");}
//---
   Comment(Slippage1);
  }

 
Alexey Viktorov:

Se o parâmetro de entrada for alterado, a variável Slippage1 é definida como Slippag no OnInit.Portanto, eles não podem ser desiguais.

Sim, obrigado. Acabei de recebê-lo.

 

Olá, por favor me ajude com o erro que ocorre no testador quando tento modificar uma ordem (transferência para Breakeven): coloquei a função OrderOpenPrice() em vez de SL, mas o testador mostra erro1 (de acordo com a documentação significa que há uma tentativa de passarvalores inalterados como parâmetros para a função). Eu anexei o código! Agradecemos antecipadamente!

void DeleteOrderFunction2() //função que apaga a segunda ordem e define a segunda ordem para Breakeven em uma determinada noite

{

bool flag = falso;

se (FlagDeleteSecondOrder2 == verdadeiro)

{

if(DayOfWeek() == DAYOFWEEK && // se for selecionado um dia da semana

Hora() == 22 // se noite

)

{

if(BuyCount() == 1 && if(há uma ordem de compra em aberto

SellStopCount() == 1 // e há uma ordem de venda pendente

)

{

for( int i = 0; i < OrderTotal(); i++) //criar pedidos

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_BUY: if(OrderProfit() > 0 &&

Licitação > OrderOpenPrice()

)

{

OrderModifyX(OrderTicket(),OrderOpenPrice(),OrderTakeProfit(),0,Arrow_Color);

bandeira = verdadeiro;

}

pausa;

caso OP_SELLSTOP: if(flag===verdadeiro)

{

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}

if(SellCount() == 1 && // se houver uma ordem de venda em aberto

BuyStopCount() == 1 // e há uma ordem de compra pendente

)

{ Imprimir("IS!!!!");

for( int i = 0; i < OrderTotal(); i++) //criar pedidos

{

OrderSelectX(i, SELECT_BY_POS, MODE_TRADES;)

switch(OrderType())

{

caso OP_SELL: se (OrderProfit() > 0 &&

Pergunte < EncomendarPreço Aberto()

)

{

OrderModifyX(OrderTicket(), OrderOpenPrice(),OrderTakeProfit(),0, Arrow_Color);

bandeira = verdadeiro;Imprimir("bandeira =", bandeira);

}

pausa;

caso OP_BUYSTOP: if(flag == verdadeiro)

{

Imprimir("bandeira =", bandeira);

OrderDeleteX(OrderTicket(), Arrow_Color);

}

pausa;

}

}

}


}


}

}

Razão: