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

 

Hola a todos, ¿hay algún comando preparado para mostrar el historial de operaciones en la pantalla?

similar a arrastrar un acuerdo de la historia a la carta



sería posible recorrer el historial de operaciones y asignar objetos, pero creo que hay una forma preparada

 
Mickey Moose:

Hola a todos, ¿hay algún comando preparado para mostrar el historial de operaciones en la pantalla?

similar a arrastrar una operación del historial al gráfico

Lo mismo, pero con la tecla de control pulsada. Ctrl o Shift - no recuerdo - estoy escribiendo desde un teléfono móvil.
 
Artyom Trishkin:
Lo mismo, pero con la tecla de control pulsada. No recuerdo si es Ctrl o Shift - estoy escribiendo desde un teléfono móvil.



Quiero poner esta pieza en mi robot no comercial para ponerla en un gráfico y ver qué pasa.

Para ponerlo en el gráfico y ver cuántos dados se han producido por año para este símbolo
 
Ihor Herasko:

No hay manera de obtener esta información a través de MQL. Es necesario acceder a los controles de DateTimePricker, lo que se hace a través de la WinAPI.

Gracias, lo tengo.

Puede ser útil para alguien:

#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,int &lParam[]);
#import

#define  DTM_GETSYSTEMTIME 0x1001

int SystemTime[4];

.....

//+------------------------------------------------------------------+
//|          Функция преобразования в формат datetime                |
//+------------------------------------------------------------------+
datetime FormatDateTime(int &DT[]){
   string sMonth,sDay,sHour,sMin,sSec;
      int nYear,nMonth,nDay,nHour,nMin,nSec;   
      
   //---- parse date and time from array
         nYear=DT[0]&0x0000FFFF;
         nMonth=DT[0]>>16;
         nDay=DT[1]>>16;
         nHour=DT[2]&0x0000FFFF;
         nMin=DT[2]>>16;
         nSec=DT[3]&0x0000FFFF;
         
   //---- format date and time items
         sMonth=100+nMonth;
         sMonth=StringSubstr(sMonth,1);
         sDay=100+nDay;
         sDay=StringSubstr(sDay,1);
         sHour=100+nHour;
         sHour=StringSubstr(sHour,1);
         sMin=100+nMin;
         sMin=StringSubstr(sMin,1);
         sSec=100+nSec;
         sSec=StringSubstr(sSec,1);

   //----
         return(StrToTime(StringConcatenate(nYear,".",sMonth,".",sDay," ",sHour,":",sMin,":",sSec)));
  }
  
void OnInit(void){
  if (IsTesting()){
    SendMessageA(0x0000000000010288,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date From: ",TimeToString(FormatDateTime(SystemTime)));
    
    SendMessageA(0x000000000001028E,DTM_GETSYSTEMTIME,0, SystemTime);
    Print("date To: ",TimeToString(FormatDateTime(SystemTime)));
  }
  .....
}

void OnTick(void){
  .....
}
//+------------------------------------------------------------------+
 
mrumskiy:

Gracias, lo tengo.

Puede ser útil para alguien:

A continuación, una contrapregunta: ¿Por qué es necesario obtener la fecha del intervalo de prueba, dónde puede ser útil?

 
Artyom Trishkin:

Si i es un múltiplo de dos.

Es el resto de i dividido por 2

Gracias. ¿Cómo, en el indicador, excluir de los cálculos las velas de las 19 a las 11?

 
PolarSeaman:

Gracias. ¿Cómo puede el indicador excluir de sus cálculos las velas entre las 19 y las 11 horas?

Vigilar el tiempo y saltar si no está dentro de los límites establecidos es fácil.

La lógica es sencilla: sabes que la tienda está cerrada para comer entre las 14 y las 15 horas. Miras el reloj y no vas a la tienda si es la hora de comer. Entonces, ¿por qué te confundes aquí? ¿Cuál es la diferencia?

 
Hola, me gustaría crear una condición por la cual
Durante el período de tiempo 0-8 paso será igual a 5 pips, durante el resto del día 10 pips. Pero si tengo órdenes que se abrieron desde el día anterior, entonces en el período de tiempo 0-8 paso también será 10 pips.


 
Artyom Trishkin:

Vigilar el tiempo y saltar si no está dentro de los límites establecidos es fácil.

La lógica es sencilla: sabes que entre las 14:00 y las 15:00 la tienda está cerrada para comer. Miras el reloj y no vas a la tienda si es la hora de comer. Entonces, ¿por qué te confundes aquí? ¿Cuál es la diferencia?

La cuestión es que si se establece un intervalo de tiempo como en el EA

if(Hour()>=17&&Hour()<=11)return(0);

Necesito excluir del historial, las velas que están en el intervalo, de los cálculos.

 
Tigerfreerun:
Hola, me gustaría crear una condición por la cual
Durante el período de tiempo 0-8 paso será igual a 5 pips, durante el resto del día 10 pips. Pero si hay órdenes abiertas desde el día anterior, entonces en el período de tiempo 0-8 paso también será igual a 10 pips.


Este puede ser el caso:

  if(Hour()>=0&&Hour()<=8&&OrdersTotal()==0)step = 5; else step =10;
Razón de la queja: