FUERTES: Para ayudar a los principiantes - página 10

 
Dmi3:

Como siempre, no tienes nada que decir sobre el fondo de la cuestión...

Y nadie ha visto la pregunta, sólo han visto tus acusaciones sin fundamento. Permítanme recordarles que este es principalmente un foro técnico y que cada movimiento aéreo debe estar respaldado por detalles técnicos. Considere esto como su primera y última advertencia.

 

El indicador candle_time_end_and_spread ha calculado la hora de vencimiento. Me sigo olvidando de ello. Puede ser útil para alguien:

Archivos adjuntos:
 

¿Hay alguna forma sencilla de obtener el nombre del activo subyacente en los futuros? De momento estoy escribiendo una larga tabla de correspondencias, pero seguro que hay una forma más fácil. Quizás pueda usar moex para solicitarlo, pero no está claro cómo hacerlo, no sé qué demonios estoy haciendo ahí.

   if(future_basis == "Si") return "USDRUB_TOD";
   if(future_basis == "RVI") return future_basis;
   if(future_basis == "GAZR") return "GAZP";
   if(future_basis == "VTBR") return future_basis;
   if(future_basis == "Eu") return "EURRUB_TOD";
   if(future_basis == "SBRF") return "SBER";
   if(future_basis == "BR") return "BR Splice";
 
vponed:

¿Hay alguna forma sencilla de obtener el nombre del activo subyacente en los futuros? De momento estoy escribiendo una larga tabla de correspondencias, pero seguro que hay una forma más fácil. Tal vez pueda utilizar moex para enviar una solicitud, pero no está claro cómo hacerlo.

No hay manera de tomar un lugar, puedes escribir uno tú mismo:

string GetSpot(const string a_symbol)
{
  if(StringFind(a_symbol, "AFLT-") > -1) return("AFLT"); else
  if(StringFind(a_symbol, "AFKS-") > -1) return("AFKS"); else
  if(StringFind(a_symbol, "ALRS-")> -1) return("ALRS"); else
  if(StringFind(a_symbol, "CHMF-")> -1) return("CHMF"); else
  if(StringFind(a_symbol, "Eu-")> -1) return("EURRUB_TOM"); else
  if(StringFind(a_symbol, "FEES-")> -1) return("FEES"); else
  if(StringFind(a_symbol, "GMKR-")> -1) return("GMKN"); else
  if(StringFind(a_symbol, "GMKN-")> -1) return("GMKN"); else
  if(StringFind(a_symbol, "GAZR-")> -1) return("GAZP"); else
  if(StringFind(a_symbol, "HYDR-")> -1) return("HYDR"); else
  if(StringFind(a_symbol, "LKOH-")> -1) return("LKOH"); else
  if(StringFind(a_symbol, "MAGN-")> -1) return("MAGN"); else
  if(StringFind(a_symbol, "MOEX-")> -1) return("MOEX"); else
  if(StringFind(a_symbol, "MGNT-")> -1) return("MGNT"); else
  if(StringFind(a_symbol, "MTSI-")> -1) return("MTSS"); else
  if(StringFind(a_symbol, "NOTK-")> -1) return("NVTK"); else
  if(StringFind(a_symbol, "NLMK-")> -1) return("NLMK"); else
  if(StringFind(a_symbol, "PLZL-")> -1) return("PLZL"); else
  if(StringFind(a_symbol, "ROSN-")> -1) return("ROSN"); else
  if(StringFind(a_symbol, "RTKM-")> -1) return("RTKM"); else
  if(StringFind(a_symbol, "SNGP-")> -1) return("SNGSP"); else
  if(StringFind(a_symbol, "SNGR-")> -1) return("SNGS"); else
  if(StringFind(a_symbol, "SBPR-")> -1) return("SBERP"); else
  if(StringFind(a_symbol, "SBRF-")> -1) return("SBER"); else
  if(StringFind(a_symbol, "Si-")> -1) return("USDRUB_TOM"); else
  if(StringFind(a_symbol, "TRNF-")> -1) return("TRNFP"); else
  if(StringFind(a_symbol, "TATN-")> -1) return("TATN"); else
  if(StringFind(a_symbol, "VTBR-")> -1) return("VTBR"); else
  if(StringFind(a_symbol, "FIVE-")> -1) return("FIVE"); else
  if(StringFind(a_symbol, "TCSI-")> -1) return("TCSG"); else
  if(StringFind(a_symbol, "YNDF-")> -1) return("YNDX"); else
  if(StringFind(a_symbol, "POLY-")> -1) return("POLY"); else
  if(StringFind(a_symbol, "IRAO-")> -1) return("IRAO"); else
  if(StringFind(a_symbol, "MAIL-")> -1) return("MAIL");
  return("NONE");
} 
El petróleo no tiene sitio en el MICEX
 
vponed:

El indicador candle_time_end_and_spread ha calculado la hora de vencimiento. Me sigo olvidando de ello. Puede ser útil para alguien:

He dado la función GetExpiration() no para que la publiques en tu nombre, ¡sino para uso PERSONAL!

 
prostotrader:

No he dado la función GetExpiration() para que la publiques en tu nombre, ¡sino para uso PERSONAL!

Lo siento mucho, escribí enseguida que tomé la función de aquí, y que el indicador también es de terceros. O bórralo, ya que protestas contra las modificaciones.
No pretendía robar nada, sólo pensé que podría ser útil para alguien.
Ni siquiera mencioné en el código que era mío (de alguna manera, no me importa)

Sí, y muchas gracias por el artículo.

 
prostotrader:

No hay manera de tomar un lugar, usted puede escribir su propio:

El petróleo no tiene sitio en el MICEX
Lo sé, la tarea es obtener los volúmenes mensuales del activo subyacente, por lo que devuelvo BR Splice, los volúmenes serán definitivamente allí
¿Y por qué estás usando USDRUB_TOM y no TOD, hay más liquidez?
 
vponed:
Lo sé, el objetivo es obtener los volúmenes mensuales del activo subyacente, por lo que vuelvo BR Splice, los volúmenes serán definitivamente allí
¿Y por qué estás usando USDRUB_TOM y no TOD, hay más liquidez?

No, TOM está disponible durante más tiempo

 
prostotrader:

No, TOM tarda más en llegar

Entonces tienes que añadir una anulación de tiempo

 
prostotrader:

No hay manera de tomar un lugar, puede escribir uno usted mismo:

El petróleo no tiene un lugar en el MICEX

La misma información se suele devolver desdeSymbolInfoString(_Symbol,SYMBOL_BASIS)

Por lo tanto, parece que la función puede reducirse en gran medida. Devuelve sólo lo que es diferente:

string basis_from_future(string future)
  {
  string future_basis = SymbolInfoString(_Symbol,SYMBOL_BASIS);

   if(future_basis == "Si")
      return "USDRUB_TOM";
   if(future_basis == "GAZR")
      return "GAZP";
   if(future_basis == "Eu")
      return "EURRUB_TOD";
   if(future_basis == "SBRF")
      return "SBER";
   if(future_basis == "BR")
      return "BR Splice";
   if(future_basis == "GMKR")
      return "GMKN"; 
        if(future_basis == "MTSI")
      return "MTSS"; 
if(future_basis == "NOTK")
      return "NVTK"; 
if(future_basis == "SNGP")
      return "SNGSP"; 
if(future_basis == "SNGR")
      return "SNGS"; 
if(future_basis == "SBPR")
      return "SBERP"; 
if(future_basis == "TRNF")
      return "TRNFP";
if(future_basis == "TCSI")
      return "TCSG";
if(future_basis == "TCSI")
      return "TCSG";
if(future_basis == "YNDF")
      return "YNDX";

   return future_basis;

  }

y el empalme funcionará

Документация по MQL5: Получение рыночной информации / SymbolInfoString
Документация по MQL5: Получение рыночной информации / SymbolInfoString
  • www.mql5.com
SymbolInfoString - Получение рыночной информации - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5