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

 

Olá a todos, existe algum comando pronto para exibir o histórico do negócio na tela?

semelhante a arrastar um negócio da história para o gráfico



seria possível percorrer a história dos ofícios e atribuir objetos, mas acho que há um caminho pronto

 
Mickey Moose:

Olá a todos, existe algum comando pronto para exibir o histórico do negócio na tela?

semelhante a arrastar um comércio da história para o gráfico

O mesmo, mas com a tecla de controle pressionada. Ctrl ou Shift - não me lembro - estou escrevendo de um telefone celular.
 
Artyom Trishkin:
O mesmo, mas com a tecla de controle pressionada. Não consigo lembrar se é Ctrl ou Shift - estou escrevendo de um telefone celular.



Quero colocar esta peça em meu robô não negociante para colocá-la em um gráfico e ver o que está acontecendo.

Para colocá-lo na tabela e ver quantos dados foram produzidos por ano para este símbolo
 
Ihor Herasko:

Não há como obter estas informações através da MQL. Você precisa acessar os controles do DateTimePricker, o que é feito através do WinAPI.

Obrigado, entendi!

Pode ser útil para alguém:

#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:

Obrigado, entendi!

Pode vir a ser útil para alguém:

Então uma contra pergunta: por que é necessário obter a data do intervalo de teste, onde ela pode vir a ser útil?

 
Artyom Trishkin:

Se eu for um múltiplo de dois.

Este é o restante de i dividido por 2

Obrigado. Como, no indicador, excluir dos cálculos as velas das 19 às 11 horas?

 
PolarSeaman:

Obrigado. Como o indicador pode excluir as velas entre 19 e 11 horas de seus cálculos?

É fácil observar o tempo e pular se não estiver dentro dos limites estabelecidos.

A lógica é simples: você sabe que a loja está fechada para o almoço entre 14h e 15h. Você olha para seu relógio e não vai à loja se estiver na hora do almoço. Então por que você está ficando confuso aqui? Qual é a diferença?

 
Oi, eu gostaria de criar uma condição pela qual
Durante o período de tempo 0-8 passo será igual a 5 pips, durante o resto do dia 10 pips. Mas se eu tiver pedidos que foram abertos desde o dia anterior, então no período de 0-8 etapa também serão 10 pips.


 
Artyom Trishkin:

É fácil observar o tempo e pular se ele não estiver dentro dos limites estabelecidos.

A lógica é simples: você sabe que entre 14:00 e 15:00 a loja está fechada para o almoço. Você olha para seu relógio e não vai à loja se estiver na hora do almoço. Então por que você está ficando confuso aqui? Qual é a diferença?

A questão é que se você definir o intervalo de tempo como na EA

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

Preciso excluir da história, castiçais que estão no intervalo, dos cálculos.

 
Tigerfreerun:
Olá, eu gostaria de criar uma condição pela qual
Durante o período de tempo 0-8 passo será igual a 5 pips, durante o resto do dia 10 pips. Mas se houver pedidos abertos do dia anterior, então no período de tempo 0-8 etapa também será igual a 10 pips.


Este pode ser o caso:

  if(Hour()>=0&&Hour()<=8&&OrdersTotal()==0)step = 5; else step =10;