Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 904

 
Pode dizer-me, por favor, a que se deve o erro quando se depura com dados reais: "o símbolo especificado não está seleccionado".
Obrigado!
MT5
 
IlyaDemidenko:
Por favor, informe qual poderá ser a razão do erro de depuração com dados reais: "o símbolo especificado não está seleccionado".
Obrigado!
MT5

Antes de testar (antes de executar um teste a partir do MetaEditor) ir para as definições do MetaEditor e olhar para o separador "Debug". Neste separador pode ver o símbolo que será utilizado para os testes:

Agora abra o terminal e verifique se o símbolo seleccionado está na janela "Market Watch".


 
Vladimir Karputov:

Antes de testar (antes de executar um teste a partir do MetaEditor) ir para as definições do MetaEditor e olhar para o separador "Debug". Neste separador pode ver o símbolo que será utilizado para os testes:

Agora abra o terminal e verifique se o símbolo seleccionado está na janela "Market Watch"?

Muito obrigado )
Processo iniciado ))

 
Olá. O preço às 17:30 do último dia. Como é que posso descobrir? Ou seja, o preço de fecho de qualquer bar às 17:30 horas.
 
bij:
Olá. O preço às 17:30 do último dia. Como conhecê-lo? Ou seja, o preço de fecho de qualquer bar às 17:30 horas.

LerCopyOpen(segunda forma de invocação).

 
Vladimir Karputov:

LerCopyOpen(segunda forma de invocação).

Obrigado, não percebi como definir a hora excepto a hora=D'2018.07.26 17:30';

        time=???;      //Как сюда передать 17:30 прошлого дня?
        int barIndex = iBarShift(NULL,PERIOD_M1, time);        // Определение индекса бара, соответствующего времени time
        double openPrice = CopyOpen(NULL, PERIOD_M1, barIndex);// Определение Bid цены открытия бара barIndex
 
bij:

Obrigado, não me apercebi como marcar o tempo.

Acabei de fazer um guião rápido:

//+------------------------------------------------------------------+
//|                                                  TestOpenDay.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
//--- enums
enum ENUM_DAY
  {
   DAY_CURRENT,            // Сегодня
   DAY_YESTERDAY,          // Вчера
   DAY_BEFORE_YESTERDAY    // Позавчера
  };
//--- input parameters
input ENUM_DAY InpDay      =  DAY_YESTERDAY; // День:
input uint     InpHours    =  17;            // Часы
input uint     InpMinutes  =  30;            // Минуты
//--- global variables
datetime day;
int      day_shift;
int      hours;
int      minutes;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   hours=int(InpHours> 23 ? 23 : InpHours);
   minutes=int(InpMinutes>59 ? 59 : InpMinutes);
   day_shift=(int)InpDay;
   day=iTime(NULL,PERIOD_D1,day_shift);
   Print("Сегодня: ",TimeToString(TimeCurrent(),TIME_DATE),", день: ",InputDayToString(),", дата/время: ",TimeToString(GetTime(day)));
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime GetTime(const datetime time)
  {
   MqlDateTime tm;
   if(!TimeToStruct(time,tm))
      return 0;
   tm.hour=hours;
   tm.min=minutes;   
   return StructToTime(tm);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string InputDayToString(void)
  {
   return(InpDay==DAY_CURRENT? "Сегодня" : InpDay==DAY_YESTERDAY ? "Вчера" : "Позавчера");
  }
//+------------------------------------------------------------------+

O diário de bordo mostrará o dia seleccionado, a sua data e hora após o lançamento.

 
Artyom Trishkin:

Acabei de fazer um guião rápido:

O diário de bordo mostrará o dia seleccionado, a sua data e hora após o início.

Obrigado, quero colocar uma linha no indicador da história ao preço das 17:30, todos os dias. Como é que me ponho todos os dias? Para não escrever todas as datas, mas apenas a hora 17:30

É assim que coloco a linha no preço de fecho do dia, todos os dias.

 if(!TrendCreate(0,"close"+time[i],0,iTime(NULL,PERIOD_D1,i+1),iClose(NULL,PERIOD_D1,i+1),iTime(NULL,PERIOD_D1,i),0,clrLime,STYLE_SOLID,2,false,false,false,false,0))
        {
         continue;
        }
 
bij:

Obrigado, quero colocar uma linha no indicador da história ao preço das 17:30, todos os dias. Como é que me ponho todos os dias?

É assim que eu estabeleço o preço de fecho do dia, todos os dias.

Se a data passada (ano, mês, dia) não for igual à data actual, e a hora e o minuto forem iguais à data fixada, então, ponha uma linha.

Ou: Se a data anterior (ano, mês, dia) for igual à data actual, ou se a hora e o minuto não forem iguais aos definidos, então continuar;

Em qualquer caso, haverá saltos - nem todas as barras do período seleccionado têm o tempo definido.

 
Artyom Trishkin:

Se a data passada (ano, mês, dia) não for igual à data actual, e a hora e o minuto forem iguais a especificados...

if(iTime(NULL,PERÍODO_D1,i+1)!=iTime(NULL,PERÍODO_D1,i)&& aqui como escrever? )

Razão: