Советник для moex. Получение цены

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
refounder83
72
refounder83  
Здравствуйте, я начинающий, делаю советника для moex (forts) инстумент фьюч сбера, счет реал,  подскажите, почему процедура refreshrates возвращает true
bool RefreshRates(void)
  {

   if(!m_symbol.RefreshRates())
     {
      Print("error");
      return(false);
     }

   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);

   return(true);
 }

хотя код из процедуры

   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);

возвращает  false

Vladimir Karputov
Модератор
174090
Vladimir Karputov  
refounder83:
Здравствуйте, я начинающий, делаю советника для moex (forts) инстумент фьюч сбера, счет реал,  подскажите, почему процедура refreshrates возвращает true

хотя код из процедуры

возвращает  false

Кто такой в Вашем коде m_symbol? Как проводите его инициализацию? Когда именно цена Ask и/или Bid возвращает ноль? В курсе, что если это при первом старте - то это нормально?

refounder83
72
refounder83  
#include <Trade\SymbolInfo.mqh> 

CSymbolInfo    m_symbol;                     // symbol info object

int OnInit()
  {

   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {

 
  }

void OnTick()
  {

Print(m_symbol.Ask());
  }
 

bool RefreshRates(void)
  {

   if(!m_symbol.RefreshRates())
     {
      Print("error");
      return(false);
     }

   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);

   return(true);
  }

в таком случае ноль

ну да похоже при первом старте это нормально.....хотя команда ниже работает сразу

 
void OnTick()
  {
Print(SymbolInfoDouble(_Symbol,SYMBOL_ASK));
  }


Vladimir Karputov
Модератор
174090
Vladimir Karputov  
refounder83:

в таком случае ноль

ну да похоже при первом старте это нормально.....хотя команда ниже работает сразу


Ваш код полностью неработоспособен. 


Сейчас дам минимальный пример ...

refounder83
72
refounder83  
Спасибо, я видели только учусь..) прощупываю команды на FORTS,  а то поговаривают что стандартные заготовки не работают на FORTS
Vladimir Karputov
Модератор
174090
Vladimir Karputov  
refounder83:
Спасибо, я видели только учусь..) прощупываю команды на FORTS,  а то поговаривают что стандартные заготовки не работают на FORTS

Пример:

//+------------------------------------------------------------------+
//|                                               Display prices.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.000"
//---
#include <Trade\SymbolInfo.mqh>  
CSymbolInfo    m_symbol;                     // symbol info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   RefreshRates();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(!RefreshRates())
      return;
   Comment("Ask: ",DoubleToString(m_symbol.Ask(),m_symbol.Digits()),"\n",
           "Bid: ",DoubleToString(m_symbol.Bid(),m_symbol.Digits()));
  }
//+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates(void)
  {
//--- refresh rates
   if(!m_symbol.RefreshRates())
     {
      Print("RefreshRates error");
      return(false);
     }
//--- protection against the return value of "zero"
   if(m_symbol.Ask()==0 || m_symbol.Bid()==0)
      return(false);
//---
   return(true);
  }
//+------------------------------------------------------------------+


Добавлено: нет никаких FORTS :) . Есть работа на бирже, а есть форекс. 

Файлы:
refounder83
72
refounder83  
Благодарю!
prostotrader
7521
prostotrader  
А что создать новую тему было нельзя?
Vladimir Karputov
Модератор
174090
Vladimir Karputov  
prostotrader:
А что создать новую тему было нельзя?

Уже можно :)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий