Come importare bid/ask da un'altra coppia di valute? - pagina 2

 

Ok, ho letto la documentazione di Market Info e mi sono reso conto che si possono estrarre solo i prezzi bid/ask. Come potrei tentare di estrarre i dati di prezzo (HLOC) da diciamo 6 barre fa?


Ad essere onesti ho speso un sacco di tempo a leggere la documentazione e non è così utile come dire altri linguaggi come Python o PRT, quindi stavo solo cercando una guida

Cordiali saluti,

 
Simone Gill:

Ok, ho letto la documentazione di Market Info e mi sono reso conto che si possono estrarre solo i prezzi bid/ask. Come potrei tentare di estrarre i dati di prezzo (HLOC) da diciamo 6 barre fa?


Ad essere onesti ho speso un sacco di tempo a leggere la documentazione e non è così utile come in altri linguaggi come Python o PRT, quindi stavo solo cercando una guida

Cordiali saluti,

Usa iOpen(),iClose(),iHigh() e/o iLow()

 

Ciao Pro,

Mi sono davvero arrabbiato quando ho letto questo argomento, scusate se l'ho tirato fuori. Ma dato che ho avuto lo stesso problema, ho deciso di commentare qui.

Ecco il mio codice:

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}


Il commento mostra 00

Perché non può importare Ask e Bid da un altro Symbols?


Qualsiasi consiglio è apprezzato,
Hossein

 
HosseinKOGO: Perché non può importare Ask e Bid da un altro Symbols?
Su MT4: A meno che il grafico corrente non sia quella specifica coppia/TF di riferimento, è necessario gestire gli errori 4066/4073prima di accedere ai prezzi.
Cronologia di download in MQL4 EA - MQL4 e MetaTrader 4 - Forum di programmazione MQL4

Su MT5: A meno che il grafico non sia quella specifica coppia/TF, è necessario sincronizzare i dati del terminale dal server.
Accesso alle serie temporali e agli indicatori / Accesso ai dati - Riferimento al linguaggio di trading algoritmico/automatico per MetaTrader 5
Sincronizzare i dati del server con i dati del terminale - Simboli - Generale - Forum di programmazione MQL5

 
William Roeder:
Su MT4: A meno che il grafico corrente non sia quella specifica coppia/TF di riferimento, è necessario gestire gli errori 4066/4073prima di accedere ai prezzi.
Cronologia di download in MQL4 EA - MQL4 e MetaTrader 4 - Forum di programmazione MQL4

Su MT5: A meno che il grafico sia quella specifica coppia/TF, è necessario sincronizzare i dati del terminale dal server.
Accesso alle serie temporali e agli indicatori / Accesso ai dati - Riferimento al linguaggio di trading algoritmico/automatico per MetaTrader 5
Sincronizzare i dati del server con i dati del terminale - Simboli - Generale - Forum di programmazione MQL5

Grazie per il vostro aiuto.

Uso Tick Data Suite di eareview.net e ho scaricato la cronologia delle mie coppie target tra cui GBPUSD prima del backtesting. Inoltre, Journal non mi dà alcun errore. È qualcosa che riguarda l'integrazione? Devo cercare una soluzione contattando il supporto di Tick Data Suite?

(Io uso MQL4 per la codifica)
 

Qualcuno può provare questo codice durante il backtesting sul grafico GBPAUD -4H? Sono davvero bloccato :(
Ricevi 00 come commento?

double Ask2,Bid2;

----------------------------

void start()

{

Ask2=MarketInfo("GBPUSD",MODE_ASK);
Bid2=MarketInfo("GBPUSD",MODE_BID);
Comment(Ask2, Bid2);

}
 
HosseinKOGO: Io uso Tick Data Suite di eareview.net e ho scaricato lo storico delle mie coppie target tra cui GBPUSD prima del backtesting. Inoltre, Journal non mi dà alcun errore. È qualcosa che riguarda l'integrazione? Devo cercare una soluzione contattando il supporto di Tick Data Suite (uso MQL4 per la codifica)?

Non ha niente a che fare con il TDS. Devi fare in modo che il terminale legga i dati prima di accedervi. Quale parte di "prima di accedere ai prezzi" non era chiara?

HosseinKOGO : Sono davvero bloccato :( Ricevi 00 come commento?

Rimarrai così quando ignorerai l'aiuto che ricevi. Quale parte di "deve gestire" non era chiara?

 
William Roeder:

Non ha niente a che fare con il TDS. Devi fare in modo che il terminale legga i dati prima di accedervi. Quale parte di "prima di accedere ai prezzi" non era chiara?

Rimarrai così quando ignorerai l'aiuto che ricevi. Quale parte di "deve gestire" non era chiara?

Scusa, sono un codificatore principiante e sembra che non riesca a capire cosa intendi. In realtà quello che ho capito dal tuo consiglio è "aspettare di scaricare la storia e i dati dei prezzi attuali della seconda coppia di valute prima di fare qualsiasi cosa".

Potresti darmi ulteriori dettagli su cosa dovrei fare con questo codice che hai postato?

#define  HR2400 PERIOD_D1 * 60    // 86400 = 24 * 3600
int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when % HR2400 );            }
datetime DateOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                          return( when - TimeOfDay(when) );   }
#define  SYMBOL string
#define  THIS_SYMBOL ""
bool  download_history(ENUM_TIMEFRAMES period=PERIOD_CURRENT){
   return download_history(_Symbol, period); 
}
bool  download_history(
      SYMBOL            symbol=THIS_SYMBOL,     ///< The symbol required.
      ENUM_TIMEFRAMES   period=PERIOD_CURRENT   /**< The standard timeframe.*/){
   if(symbol == THIS_SYMBOL)     symbol = _Symbol;
   if(period == PERIOD_CURRENT)  period = _Period;
   datetime today = DateOfDay();
   ResetLastError();
   datetime other = iTime(symbol, period, 0);
   if(_LastError == 0 
   && today == DateOfDay(other)) return true;   
   if(_LastError != ERR_HISTORY_WILL_UPDATED
   && _LastError != ERR_NO_HISTORY_DATA
      Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
   return false;
}

Ho copiato il codice superiore nella mia area globale e mi dà errore e avvertimenti.

Ho copiato questa linea di codice anche nella mia funzione start:

while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }

Potresti consigliarmi cosa e dove devo inserire informazioni e punteggiatura sufficienti?

Di nuovo scusa per il mio basso livello di abilità...

 
  1. HosseinKOGO: e mi dà errore e avvertimenti.

    HosseinKOGO : Potresti darmi ulteriori dettagli su cosa dovrei fare con questo codice che hai postato?

    1. Non sei riuscito a capire queste piccole correzioni?
      int      TimeOfDay(datetime when=0){      if(when == 0)  when = TimeCurrent();
                                                return( int( when % HR2400) );            }
      
        if(_LastError != ERR_HISTORY_WILL_UPDATED
         && _LastError != ERR_NO_HISTORY_DATA
         )  Print(StringFormat("iTime(%s,%i) Failed: %i", symbol, period,_LastError));
      

    2. L'hai già postato per un EA.
      while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }
 
William Roeder:
    1. Non sei riuscito a capire queste correzioni minori?

    2. L'hai già postato per un EA.

Grazie per la tua risposta,

In realtà non sono un codificatore, tuttavia ho provato a codificare alcuni EA. Il mio lavoro è collegato con la creatività e la strategia, quindi ho avuto 600-700 idee per fare EAs e li ho costruiti fino ad ora. Posso solo codificare EA molto semplici e non sono abituato alla tua codifica di alto livello...

Ho messo quei codici nel mio EA ma restituisce solo questo errore: 2019.05.06 15:37:56.586 2018.01.02 00:00:07 MyEA! GBPAUD,H4: iTime(GBPUSD,240) Fallito: 0

Sto provando GBPAUD come grafico aperto e GBPUSD come seconda coppia.

Qual è il problema?