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

 
msl271170: Ensine como parar o Expert Advisor e iniciá-lo quando uma nova vela aparece.

um exemplo de Moving Average.mq4 no terminal - ele tem isto:

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

Já vi isso em outro:

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170: Eu entendo que o MT5 tem uma linguagem de programação diferente. Será que meu código não funcionará lá?

Use MT4Orders - biblioteca para MetaTrader 5

 

Estou tentando descobrir o CopyTime, mas não entendo porque o DayData[] não preenche (quero ver a data arredondada para o dia inteiro). Eu adicionei um exemplo abaixo, se alguém notar um erro, por favor, aponte-o ou corrija-o:

datetime Data[3]={D'2017.09.22 08:05',D'2017.09.22 10:05',D'2017.09.22 12:05'};
int count=0;
datetime DayData[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   count++;
   
   if(count<4)
     {
      int copied=CopyTime(NULL,PERIOD_D1,Data[count-1],1,DayData);
      ArrayResize(DayData,count);
      Print("0 Data[",count-1,"]= ",Data[count-1]," DayData[count-1]= ",DayData[count-1]); // 1 control
     }

   for(int i=0; i<ArraySize(DayData);i++)
      Print("1 Data[",i,"]= ",Data[i]," DayData[i]= ",DayData[i]);  // 2 control

  }
//+------------------------------------------------------------------+
 

Uma página inteira de postagens vazias (erro no fórum). Tinha que apagar.

 

Bom dia a todos vocês!


Estou aprendendo gradualmente o mql4 do livro de Evgeniy Zhdanov.

Ele descreve um exemplo de Envelopes, aplicação Zigzag.

As funções iCustom e iEnvelopes são descritas ali para receber os dados dos indicadores Envelopes e ZigZag.

Você pode aconselhar onde encontrar informações e aprender os dados - do que descrever os outros indicadores?

Talvez haja um link para um recurso onde eu possa aprender quais funções são descritas por quais indicadores?

Ou tudo isso está na ajuda?

Estou sinceramente agradecido de antemão!

 
Список функций языка MQL4 - Справочник MQL4
Список функций языка MQL4 - Справочник MQL4
  • docs.mql4.com
Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime
 
Taras Slobodyanik:

ver iRsi e iBands

https://docs.mql4.com/ru/function_indices


Muito obrigado!


Peguei meu equipamento de mergulho, fui dar um mergulho!

 

Há também esta questão.

O seguinte consultor especializado é prescrito

Se o ZigZag for inferior a dois Envelopes - compra aberta.

Se o ZigZag for maior que dois Envelopes - venda aberta.

Então, se uma ordem for aberta por um EA - modifique a ordem por Fulano de Tal Take Stop e Fulano de Tal Stop.

Não há erros na compilação.

E aqui está o problema, não importa como eu tente testá-lo, o testador de estratégia sempre abre o primeiro pedido de compra que o testador teimosamente se recusa a modificar. Além disso, todos os pedidos abertos somente para Venda, que são perfeitamente modificados e não causam nenhum problema.

Existe algum tipo de erro no código?

Ou esta é uma característica do testador? Eu sempre começo com qualquer data que escolho "data de uso" e o primeiro pedido de compra é sempre inalterável. Depois, todas as minhas ordens de venda que são modificadas e funcionam bem.

Ainda não encontrei nenhuma informação sobre isto.

Obrigado por sua atenção amável!

 

Por que o testador produz resultados diferentes com

extern bool Tral =true;

...

void OnTick()

{

    if (Tral)Trailing();....

e se Tral não é movido para variáveis externas, mas simplesmente usa a mesma função com as mesmas variáveis:

void OnTick()

{

   Trailing();


 
RichLux:

Por que o testador dá resultados diferentes em ....

Tente :

input bool Tral =true;

... ou você realmente precisa do exterior?