¿Cómo importar el bid/ask de otro par de divisas? - página 2

 

He leído la documentación de Market Info y me he dado cuenta de que sólo se pueden extraer los precios de compra y venta. ¿Cómo podría intentar extraer los datos de precios (HLOC) de, por ejemplo, hace 6 barras?


Para ser honesto, he pasado mucho tiempo leyendo la documentación y no es tan útil como otros lenguajes como Python o PRT, así que estaba buscando algo de orientación.

Saludos cordiales,

 
Simone Gill:

He leído la documentación de Market Info y me he dado cuenta de que sólo se pueden extraer los precios de compra y venta. ¿Cómo podría intentar extraer los datos de precios (HLOC) de, por ejemplo, hace 6 barras?


Para ser honesto, he pasado mucho tiempo leyendo la documentación y no es tan útil como otros lenguajes como Python o PRT, así que estaba buscando algo de orientación.

Saludos cordiales,

Utilice iOpen(),iClose(),iHigh() y/o iLow()

 

Hola profesionales,

Me he enfadado mucho al leer este tema, perdón por sacar el tema. Pero como he tenido el mismo problema, he decidido comentar aquí.

Aquí está mi código:

double Ask2,Bid2;

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

void start()

{

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

}


El comentario muestra 00

¿Por qué no puede importar el Ask y Bid de otro Symbols?


Cualquier consejo es apreciado,
Hossein

 
HosseinKOGO: ¿Por qué no se puede importar el Ask y Bid de otro Símbolo?
En MT4: A menos que el gráfico actual sea ese par/TF específico referenciado, debe manejar los errores 4066/4073antes de acceder a los precios.
Descargar el historial en el EA MQL4 - MQL4 y MetaTrader 4 - Foro de programación MQL4

En MT5: A menos que el gráfico sea ese par/TF específico, debe sincronizar los datos del terminal desde el servidor.
Acceso a series de tiempo e indicadores / Acceso a datos - Referencia sobre el lenguaje de trading algorítmico/automatizado para MetaTrader 5
Sincronizar los Datos del Servidorcon los Datos del Terminal - Símbolos - General - Foro de programación MQL5

 
William Roeder:
En MT4: A menos que el gráfico actual sea ese par/TF específico referenciado, debe manejar los errores 4066/4073antes de acceder a los precios.
Descargar el historial en el EA MQL4 - MQL4 y MetaTrader 4 - Foro de programación MQL4

En MT5: A menos que el gráfico sea ese par/TF específico, debe sincronizar los datos del terminal desde el servidor.
Acceso a series de tiempo e indicadores / Acceso a datos - Referencia sobre el lenguaje de trading algorítmico/automatizado para MetaTrader 5
Sincronizar los Datos del Servidorcon los Datos del Terminal - Símbolos - General - Foro de programación MQL5

Gracias por su ayuda.

Utilizo Tick Data Suite de eareview.net y he descargado el historial de mis pares objetivo, incluyendo el GBPUSD, antes de realizar el backtesting. Además, Journal no me da ningún error. ¿Es algo relacionado con la integración? ¿Debo buscar una solución contactando con el soporte de Tick Data Suite?

(Yo uso MQL4 para la codificación)
 

¿Puede alguien probar este código mientras hace backtesting en el gráfico GBPAUD -4H? Estoy realmente atascado :(
¿Recibes 00 como comentario?

double Ask2,Bid2;

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

void start()

{

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

}
 
HosseinKOGO: Yo uso Tick Data Suite de eareview.net y he descargado el historial de mis pares objetivo, incluyendo el GBPUSD, antes de hacer el backtesting. Además, Journal no me da ningún error. ¿Es algo relacionado con la integración? ¿Debería buscar una solución contactando con el soporte de Tick Data Suite? (Utilizo MQL4 para la codificación)

No tiene nada que ver con el TDS. Tienes que hacer que el terminal lea los datos antes de acceder a ellos. ¿Qué parte de "antes de acceder a los precios" no quedó clara?

HosseinKOGO : Estoy realmente atascado :( ¿Recibes 00 como comentario?

Te vas a quedar así cuando ignores la ayuda que recibes. ¿Qué parte de "debe manejar" no estaba clara?

 
William Roeder:

No tiene nada que ver con el TDS. Tienes que hacer que el terminal lea los datos antes de acceder a ellos. ¿Qué parte de "antes de acceder a los precios" no quedó clara?

Te vas a quedar así cuando ignores la ayuda que recibes. ¿Qué parte de "debe manejar" no estaba clara?

Lo siento, soy un codificador novato y parece que no pude entender lo que quieres decir. En realidad lo que entendí por tu consejo es "esperar a descargar el historial y los datos de precios actuales del segundo par de divisas antes de hacer nada".

¿Podrías darme más detalles sobre lo que debo hacer con este código que has publicado?

#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;
}

He copiado el código superior en mi área global y me da error y advertencias.

También he copiado esta línea de código en mi función de inicio:

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

¿Podrías aconsejarme qué y dónde debo insertar suficiente información y puntuación?

De nuevo lo siento por mi bajo nivel de habilidad...

 
  1. HosseinKOGO: y me da error y advertencias.

    HosseinKOGO : ¿Podría darme más detalles sobre lo que debo hacer con este código que ha publicado?

    1. ¿No pudiste resolver estas pequeñas correcciones?
      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. Ya lo publicaste para un EA.
      while(!download_history(PERIOD_M15) ){ Sleep(1000); RefreshRates(); }
 
William Roeder:
    1. ¿No pudo resolver estas correcciones menores?

    2. Ya lo has publicado para un EA.

Gracias por su respuesta,

De hecho no soy codificador sin embargo he tratado de codificar algunos EAs. Mi trabajo está relacionado con la creatividad y la estrategia por lo que el cerebro stormed 600-700 ideas para hacer EAs y construido hasta ahora. Sólo puedo codificar EAs muy fáciles y no estoy acostumbrado a su codificación de alto nivel...

He puesto esos códigos en mi EA pero devuelve sólo este error: 2019.05.06 15:37:56.586 2018.01.02 00:00:07 ¡MyEA! GBPAUD,H4: iTime(GBPUSD,240) Failed: 0

Estoy probando GBPAUD como mi gráfico abierto y GBPUSD como mi segundo par.

¿Cuál es el problema?

Razón de la queja: