FORTS: Per aiutare i principianti - pagina 10

 
Dmi3:

Come al solito, non hai niente da dire sulla sostanza della domanda?

E nessuno ha visto la domanda - hanno visto solo le tue accuse infondate. Lasciate che vi ricordi che questo è principalmente un forum tecnico e ogni colpo d'aria deve essere supportato da dettagli tecnici. Consideratelo come il vostro primo e ultimo avvertimento.

 

L'indicatore candle_time_end_and_spread ha calcolato il tempo di scadenza. Continuo a dimenticarmene. Può essere utile a qualcuno:

 

C'è un modo semplice per ottenere il nome dell'attività sottostante sui futures? Al momento sto scrivendo una lunga tabella di corrispondenza, ma sicuramente c'è un modo più semplice. Forse potrei usare moex per richiederlo, ma non è chiaro come farlo, non so cosa diavolo ci faccio lì.

   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:

C'è un modo semplice per ottenere il nome dell'attività sottostante sui futures? Al momento sto scrivendo una lunga tabella di corrispondenza, ma sicuramente c'è un modo più semplice. Forse potrei usare moex per inviare una richiesta, ma non è chiaro come farlo.

Non c'è modo di prendere un posto, potete scriverne uno voi stessi:

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");
} 
Il petrolio non ha posto sul MICEX
 
vponed:

L'indicatore candle_time_end_and_spread ha calcolato il tempo di scadenza. Continuo a dimenticarmene. Può essere utile a qualcuno:

Ho dato la funzione GetExpiration() non perché tu la pubblichi a tuo nome, ma per uso PERSONALE!

 
prostotrader:

Non ho dato la funzione GetExpiration() perché tu la pubblicassi per conto tuo, ma per uso PERSONALE!

Mi dispiace molto, ho scritto subito che ho preso la funzione da qui, e che l'indicatore è anche un indicatore di terzi. O cancellarlo, visto che protesti contro le modifiche.
Non avevo intenzione di rubare nulla, ho solo pensato che potesse essere utile a qualcuno.
Non ho nemmeno menzionato nel codice che era mio (non mi interessa)

Sì, e grazie mille per la caratteristica.

 
prostotrader:

Non c'è modo di prendere un posto, si può scrivere il proprio:

Il petrolio non ha posto sul MICEX
Lo so, il compito è quello di ottenere i volumi mensili dal sottostante, quindi restituisco BR Splice, i volumi saranno sicuramente lì
E perché stai usando USDRUB_TOM e non TOD, c'è più liquidità?
 
vponed:
Lo so, l'obiettivo è quello di ottenere volumi mensili dal sottostante, quindi restituisco BR Splice, i volumi saranno sicuramente lì
Perché usi USDRUB_TOM e non TOD, c'è più liquidità?

No, TOM è disponibile per più tempo

 
prostotrader:

No, TOM impiega più tempo per raggiungere

Allora dovete aggiungere un override di temporizzazione

 
prostotrader:

Non c'è modo di prendere un posto, potete scriverne uno voi stessi:

Il petrolio non ha un posto sul MICEX

La stessa informazione è spesso restituita daSymbolInfoString(_Symbol,SYMBOL_BASIS)

Quindi sembra che la funzione possa essere notevolmente ridotta. Restituire solo ciò che è diverso:

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;

  }

e la giunzione funzionerà

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