[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 579

 

Voy a duplicar mi pregunta en este hilo - no puedo encontrarla en el otro hilo :(

Por favor, aconséjeme:

1. ¿Cómo funciona el EA si hay una interrupción de la conexión?

2. ¿Iniciará de nuevo la función init()?

3. ¿Cómo puedo utilizar el evento "old tick" en el registro de EA?

 

1. Depende del EA, si la lógica prevé su parada, dejará de funcionar, si no, estará dando caña durante un tiempo... compruébalo tú mismo el lunes, arranca el EA y tira del cable de alimentación y verás...

2. no, el init no funcionará, todo empezará desde el principio, así que prevea una interrupción de la conexión - guarde la hora del último inicio del EA, y si hubo un lapso de tiempo entre los dos inicios, haga una llamada al init

3. escribir una función que lea las últimas líneas del registro para este evento

 
SergNF >>:


Вы заполняете массив, а потом на него натравливаете "стандартный индикатор" (RSIOnArray, CCIOnArray и т.п. - около 7 штук).

Крайнее упоминание на форуме , а вообще F1, учебник и т.п.


//+------------------------------------------------------------------+
//|                                                    onArrayBB.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 SeaGreen
#property indicator_color2 SeaGreen
#property indicator_color3 SeaGreen
#property indicator_color4 SeaGreen

extern int maper = 14;
extern int bbper = 14;

double Buf_0[],Buf_1[],Buf_2[],Buf_3[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(1,Buf_1);
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(2,Buf_2);
SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,1);
SetIndexBuffer(3,Buf_3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
   int i,Counted_bars;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
   while(i>=0)
   {
      Buf_3[i]=iMA(Symbol(),0,maper,0,MODE_SMA,PRICE_CLOSE,i);
      Buf_0[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,0,i);
      Buf_1[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,1,i);
      Buf_2[i]=iBandsOnArray(Buf_3[i],0,bbper,2,0,2,i);
      Print(Buf_0[0]);
      i--;
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+


¿Correcto?, Así que sólo se dibuja la línea del medio, pero las líneas superior e inferior no se dibujan.

 
keekkenen >>:


3. напишите функцию, которая бы читала из лога последние строки на предмет этого события


OK

más sobre el 3er punto por favor, los dos primeros no tengo ninguna duda

gracias

 
trader_fx >>:

Правильно?, Так только средняя отрисовывается, а верхняя и нижняя линии не отрисовываются.

Poner el llenado del buffer Buf_3 en un bucle separado.
 
IgorM >>:


OK

про 3-й пункт плз подробнее, первые два у меня вопросов не возникает

спс

No lo he hecho, pero la solución no debe ser muy complicada, ya que no puedes obtener los registros en tu propio idioma, tienes que obtener el archivo y leerlo usando WinAPI,

quizá haya una solución más sencilla...

 
keekkenen >>:

..решение не должно быть сложным, т.к. родным языком логи не достать..


es extraño que las capacidades de mql no permitan leer los registros de la terminal

No parece haber ningún problema de conectividad, hay una función sobre la que tendremos que construir un bloque de comprobación.

bool IsConnected(

)

 

Buenas tardes. Estoy tratando de entender cómo escribir un EA en mql4. Para empezar, he tomado el ejemplo sugerido en el tutorial: Simple Expert Advisor. Este es el enlace: https://c.mql4.com/book/mq4/experts/tradingexpert.mq4

Cuando intenté probarlo en futuros RTS (plataforma Broco) a través del Probador de Estrategias, obtuve un resultado interesante - las operaciones positivas son consideradas como "negativas" - ¿qué tiene que ver?

No cambié nada en el código, sólo puse SP y TP en OrderSend para que fueran "0" para hacer una inversión pura sin tomar ganancias en el stop y el take.


 
No soy un experto en futuros, pero tengo una pregunta: ¿has tenido en cuenta el diferencial?
 

No sé mucho sobre divisas. De hecho, las acciones y los futuros no tienen spread en la plataforma de cotización, pero no sé cómo funciona en MetaTrader (acabo de mirar en las propiedades del símbolo en MT, spread = 0). No ha cambiado nada en el algoritmo, excepto SP = TP = 0, ¿cómo se contabiliza el diferencial?