Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 368

 
msl271170: Enseña cómo detener el Asesor Experto e iniciarlo cuando aparece una nueva vela.

hay un ejemplo de Moving Average.mq4 en el terminal - tiene esto:

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

Lo he visto en otro:

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170: Tengo entendido que MT5 tiene un lenguaje de programación diferente. ¿Mi código no funcionará allí?

Utilice MT4Orders - biblioteca para MetaTrader 5

 

Estoy tratando de entender CopyTime, pero no entiendo por qué DayData[] no se rellena (quiero ver la fecha redondeada a todo el día). He añadido un ejemplo a continuación, si alguien se da cuenta de un error, por favor, señálelo o corríjalo:

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

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

Una página entera de mensajes vacíos (error del foro). Tuve que borrarlo.

 

¡Buenos días a todos!


Estoy aprendiendo poco a poco mql4 del libro de Evgeniy Zhdanov.

Describe un ejemplo de aplicación de Envelopes, Zigzag.

Allí se describen las funciones iCustom y iEnvelopes para recibir los datos de los indicadores Envelopes y ZigZag.

¿Puede aconsejar dónde encontrar información y conocer los datos - que describir los otros indicadores?

¿Tal vez haya un enlace a un recurso en el que pueda aprender qué funciones se describen con qué indicadores?

¿O todo esto está en la ayuda?

Se lo agradezco de antemano.

 
Список функций языка 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 y iBands

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


¡Muchas gracias!


Cogí mi equipo de buceo y me fui a bucear.

 

También está esta cuestión.

Se prescribe el siguiente Asesor Experto

Si el ZigZag es inferior a dos sobres, abra la compra.

Si el ZigZag es mayor que dos Sobres - abra la Venta.

Entonces, si una orden es abierta por un EA - modifique la orden por tal y tal Take Stop y tal y tal Stop.

No hay errores de compilación.

Y aquí está el problema, no importa cómo trate de probarlo, el probador de estrategias siempre abre la primera orden de compra que el probador se niega obstinadamente a modificar. Además, todas las órdenes se abren sólo para la venta, que se modifican perfectamente y no causan ningún problema.

¿Hay algún tipo de error en el código?

¿O es una característica del probador? Siempre empiezo con cualquier fecha que elija "fecha de uso" y la primera orden de compra es siempre inmodificable. Entonces todas mis órdenes de venta que se modifican y funcionan bien.

Todavía no he encontrado ninguna información al respecto.

Gracias por su amable atención.

 

¿Por qué el probador produce resultados diferentes con

extern bool Tral =true;

...

void OnTick()

{

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

y si Tral no se traslada a variables externas, sino que simplemente utiliza la misma función con las mismas variables:

void OnTick()

{

   Trailing();


 
RichLux:

¿Por qué el probador da resultados diferentes en ....

Inténtalo:

input bool Tral =true;

... ¿o es que realmente se necesita un externo?

Razón de la queja: