Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 904

 
Potreste dirmi a cosa potrebbe essere dovuto l'errore quando si esegue il debug con dati reali: "il simbolo specificato non è selezionato".
Grazie!
MT5
 
IlyaDemidenko:
Per favore consigliatemi quale può essere la ragione dell'errore di debug con dati reali: "il simbolo specificato non è selezionato".
Grazie!
MT5

Prima del test (prima di eseguire un test dal MetaEditor) andate nelle impostazioni del MetaEditor e guardate la scheda "Debug". In questa scheda si può vedere il simbolo che verrà utilizzato per i test:

Ora apri il terminale e controlla se il simbolo selezionato è nella finestra "Market Watch".


 
Vladimir Karputov:

Prima del test (prima di eseguire un test dal MetaEditor) andate nelle impostazioni del MetaEditor e guardate la scheda "Debug". In questa scheda si può vedere il simbolo che verrà utilizzato per i test:

Ora apri il terminale e controlla se il simbolo selezionato è nella finestra "Market Watch"?

Grazie mille )
Processo iniziato ))

 
Salve. Il prezzo alle 17:30 dell'ultimo giorno. Come posso scoprirlo? Cioè il prezzo di chiusura di qualsiasi bar alle 17:30.
 
bij:
Salve. Il prezzo alle 17:30 dell'ultimo giorno. Come saperlo? Cioè il prezzo di chiusura di qualsiasi bar alle 17:30.

LeggiCopyOpen(seconda forma di invocazione).

 
Vladimir Karputov:

LeggiCopyOpen(seconda forma di invocazione).

Grazie, non ho capito come impostare l'ora tranne time=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:

Grazie, non avevo capito come impostare l'ora.

Ho appena fatto uno script veloce:

//+------------------------------------------------------------------+
//|                                                  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 ? "Вчера" : "Позавчера");
  }
//+------------------------------------------------------------------+

Il registro mostrerà il giorno selezionato, la sua data e l'ora dopo il lancio.

 
Artyom Trishkin:

Ho appena fatto uno script veloce:

Il registro mostrerà il giorno selezionato, la sua data e l'ora dopo l'avvio.

Grazie, voglio mettere una linea nell'indicatore nella storia al prezzo alle 17:30, ogni giorno. Come faccio a impostare ogni giorno? Non scrivere tutte le date, ma solo l'ora 17:30

Questo è il modo in cui metto la linea sul prezzo di chiusura del giorno, ogni giorno.

 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:

Grazie, voglio mettere una linea nell'indicatore nella storia al prezzo alle 17:30, ogni giorno. Come faccio a impostare ogni giorno?

Ecco come l'ho impostato sul prezzo di chiusura del giorno, ogni giorno.

Se la data passata (anno, mese, giorno) non è uguale alla data attuale, e l'ora e i minuti sono uguali a quelli impostati, allora mettete una linea.

Oppure: se la data precedente (anno, mese, giorno) è uguale alla data attuale, o l'ora e i minuti non sono uguali a quelli impostati, allora continua;

In ogni caso, ci saranno dei salti - non tutte le barre del timeframe selezionato hanno il tempo impostato.

 
Artyom Trishkin:

Se la data passata (anno, mese, giorno) non è uguale alla data attuale, e l'ora e i minuti sono uguali a quelli specificati...

if(iTime(NULL,PERIOD_D1,i+1)!=iTime(NULL,PERIOD_D1,i)&& qui come scrivere? )

Motivazione: