FORTS: Um Anfängern zu helfen - Seite 10

 
Dmi3:

Wie üblich haben Sie zum Inhalt der Frage nichts zu sagen?

Und niemand hat die Frage gesehen - man hat nur Ihre unbegründeten Anschuldigungen gesehen. Ich möchte Sie daran erinnern, dass dies in erster Linie ein technisches Forum ist und dass jeder Airshake mit technischen Details belegt werden muss. Betrachten Sie dies als Ihre erste und letzte Warnung.

 

Der Indikator candle_time_end_and_spread hat die Verfallszeit berechnet. Ich vergesse es immer wieder. Es könnte für jemanden nützlich sein:

 

Gibt es eine einfache Möglichkeit, den Namen des Basiswerts der Futures zu erfahren? Im Moment schreibe ich eine lange Tabelle, aber es gibt sicher einen einfacheren Weg. Vielleicht kann ich moex benutzen, um es anzufordern, aber es ist nicht klar, wie man es macht, ich weiß nicht, was zum Teufel ich da mache.

   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:

Gibt es eine einfache Möglichkeit, den Namen des Basiswerts der Futures zu erfahren? Im Moment schreibe ich eine lange Tabelle, aber es gibt sicher einen einfacheren Weg. Vielleicht kann ich moex verwenden, um eine Anfrage zu senden, aber es ist nicht klar, wie man das macht.

Es gibt keine Möglichkeit, eine Stelle zu besetzen, Sie können selbst eine schreiben:

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");
} 
Öl hat keinen Platz an der MICEX
 
vponed:

Der Indikator candle_time_end_and_spread hat die Verfallszeit berechnet. Ich vergesse es immer wieder. Es könnte für jemanden nützlich sein:

Ich habe die Funktion GetExpiration() nicht für Sie zur Verfügung gestellt, um sie in Ihrem Namen zu veröffentlichen, sondern für den PERSÖNLICHEN Gebrauch!

 
prostotrader:

Ich habe die Funktion GetExpiration() nicht zur Verfügung gestellt, um sie in Ihrem Namen zu veröffentlichen, sondern für den PERSÖNLICHEN Gebrauch!

Es tut mir sehr leid, ich habe gleich geschrieben, dass ich die Funktion von hier übernommen habe, und dass der Indikator auch ein Indikator eines Drittanbieters ist. Oder löschen Sie ihn, da Sie ja gegen Änderungen protestieren.
Ich hatte nicht die Absicht, irgendetwas zu stehlen, ich dachte nur, er könnte für jemanden nützlich sein.
Ich habe im Code nicht einmal erwähnt, dass er mir gehört (irgendwie ist mir das egal)

Ja, und vielen Dank für den Beitrag.

 
prostotrader:

Es gibt keine Möglichkeit, einen Platz zu nehmen, Sie können Ihren eigenen schreiben:

Öl hat keinen Platz an der MICEX
Ich weiß, die Aufgabe ist es, monatliche Volumina aus dem Basiswert zu erhalten, so dass ich BR Splice zurück, die Volumina werden auf jeden Fall da sein
Und warum sind Sie mit USDRUB_TOM und nicht TOD, gibt es mehr Liquidität?
 
vponed:
Ich weiß, das Ziel ist es, monatliche Volumina aus dem Basiswert zu erhalten, so dass ich BR Splice zurück, die Volumina werden auf jeden Fall da sein
Warum verwenden Sie USDRUB_TOM und nicht TOD, es gibt mehr Liquidität?

Nein, TOM ist länger verfügbar

 
prostotrader:

Nein, TOM braucht länger zum Erreichen

Dann müssen Sie ein Timing Override hinzufügen

 
prostotrader:

Es gibt keine Möglichkeit, einen Platz zu nehmen, Sie können ihn selbst schreiben:

Öl hat keinen Platz an der MICEX

Die gleiche Information wird häufig vonSymbolInfoString(_Symbol,SYMBOL_BASIS) zurückgegeben.

Es scheint also, dass die Funktion stark reduziert werden kann. Geben Sie nur zurück, was anders ist:

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;

  }

und Spleißen wird funktionieren

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