ФОРТС: В помощь начинающим - страница 10

 
Dmi3:

по сути вопроса, как обычно, возразить нечего?

А вопроса никто не видел - видели только Ваши ничем не подтверждённые обвинения. Напомню - здесь в первую очередь технический форум и каждое сотрясание воздуха должно быть подтверждено техническими деталями. Считайте это первым и последним предупреждением.

 

В индикатор candle_time_end_and_spread вделал расчет времени экспирации. Все время забываю про нее. Может кому будет полезно:

Файлы:
 

Есть-ли простой способ получать имя базового актива на фьюч? basis это не то, на Si-3.21 возвращает Si, а надо USDRUB. В данный момент пишу длинную таблицу соответствия, но наверняка есть способ проще. Может запросом через moex?Но неясно, как запрашивать, там черт ногу сломит. 

   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:

Есть-ли простой способ получать имя базового актива на фьюч? basis это не то, на Si-3.21 возвращает Si, а надо USDRUB. В данный момент пишу длинную таблицу соответствия, но наверняка есть способ проще. Может запросом через moex?Но неясно, как запрашивать, там черт ногу сломит. 

Нет способов брать спот, можно самому написать:

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");
} 
У нефти нет спота на ММВБ
 
vponed:

В индикатор candle_time_end_and_spread вделал расчет времени экспирации. Все время забываю про нее. Может кому будет полезно:

Я давал функцию GetExpiration()  не для того, чтобы Вы её выкладывали от своего имени, а для ЛИЧНОГО использования!

 
prostotrader:

Я давал функцию GetExpiration()  не для того, чтобы Вы её выкладывали от своего имени, а для ЛИЧНОГО использования!

я очень извиняюсь, сразу написал что функцию взял отсюда, и что индикатор тоже сторонний. могу в код внедрить Ваши данные. Или удалить, раз Вы протестуете против модернизаций. 
 Стырить ничего не собирался, просто думал, что может кому-нибудь пригодится.
в коде даже не написал, что он мой(все равно мне как-то)

да, и спасибо большое за функцию

 
prostotrader:

Нет способов брать спот, можно самому написать:

У нефти нет спота на ММВБ
Знаю, стоит задача получать с базового актива объемы за месяц, вот и возвращаю BR Splice, объемы там будут точно
А почему USDRUB_TOM используете, а не TOD, там ликвидность больше?
 
vponed:
Знаю, стоит задача получать с базового актива объемы за месяц, вот и возвращаю BR Splice, объемы там будут точно
А почему USDRUB_TOM используете, а не TOD, там ликвидность больше?

Нет, ТОМ дольше по времени доступен 

 
prostotrader:

Нет, ТОМ дольше по времени доступен 

Потом надо приделать переброс по времени

 
prostotrader:

Нет способов брать спот, можно самому написать:

У нефти нет спота на ММВБ

часто возвращается одна и та же инфа из SymbolInfoString(_Symbol,SYMBOL_BASIS)

Поэтому кажется функцию можно сильно сократить. Возвращать только то, что отличается:

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;

  }

и сплайсы будут работать

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