初学者的问题 MQL5 MT5 MetaTrader 5 - 页 31

 
是的,当然我在理论上编码正确,但在五号机上,打印功能不太正常,很乱,而且经常不写。是的!!!。
 
Dimka-novitsek:

是的,这实际上是提供给我写的剧本,显然,我把它插入了我的专家的he tick功能中!"。

不,这不是一个剧本。这些是你的台词。脚本必须输出类似Print(EnumToString((ENUM_TIMEFRAMES)i)+"="+IntegerToString(i))的行。
 
Dimka-novitsek:
......在五号机上,打印功能的工作原理不知为何不太正确,有一个转折,经常不写。是的!!!。
专家 "选项卡可能不会显示一个正在运行的程序的所有信息。要看到所有的信息,你必须看一下日志(鼠标右键,"打开")。
 

事实证明,CSymbolInfo.Refresh()函数并没有刷新刻度线,而是应该使用CSymbolInfo.RefreshRates()来代替;)

CSymbolInfo.Refresh() - 更新符号数据

CSymbolInfo.RefreshRates() - 更新引号=)

如果用第二种方法一切都很清楚,但第一种方法的目的是什么?

 
WiND:

事实证明,CSymbolInfo.Refresh()函数并没有刷新刻度线,而是应该使用CSymbolInfo.RefreshRates()来代替;)

CSymbolInfo.Refresh() - 更新符号数据

CSymbolInfo.RefreshRates() - 更新引号=)

如果用第二种方法一切都很清楚,但第一种方法的目的是什么?

嗯,你永远不知道。也许,有人需要更新掉期的数据,进入市场时检查资金,等等。更多细节见代码。
bool CSymbolInfo::Refresh(void)
  {
   long tmp=0;
//---
   if(!SymbolInfoDouble(m_name,SYMBOL_POINT,m_point))                               return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE,m_tick_value))               return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE_PROFIT,m_tick_value_profit)) return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_VALUE_LOSS,m_tick_value_loss))     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_TICK_SIZE,m_tick_size))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_TRADE_CONTRACT_SIZE,m_contract_size))         return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_MIN,m_lots_min))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_MAX,m_lots_max))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_STEP,m_lots_step))                     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_VOLUME_LIMIT,m_lots_limit))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_SWAP_LONG,m_swap_long))                       return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_SWAP_SHORT,m_swap_short))                     return(false);
   if(!SymbolInfoInteger(m_name,SYMBOL_DIGITS,tmp))                                 return(false);
   m_digits=(int)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_EXEMODE,tmp))                          return(false);
   m_trade_execution=(ENUM_SYMBOL_TRADE_EXECUTION)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_CALC_MODE,tmp))                        return(false);
   m_trade_calcmode=(ENUM_SYMBOL_CALC_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_TRADE_MODE,tmp))                             return(false);
   m_trade_mode=(ENUM_SYMBOL_TRADE_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_SWAP_MODE,tmp))                              return(false);
   m_swap_mode=(ENUM_SYMBOL_SWAP_MODE)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_SWAP_ROLLOVER3DAYS,tmp))                     return(false);
   m_swap3=(ENUM_DAY_OF_WEEK)tmp;
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_INITIAL,m_margin_initial))             return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_MAINTENANCE,m_margin_maintenance))     return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_LONG,m_margin_long))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_SHORT,m_margin_short))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_LIMIT,m_margin_limit))                 return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_STOP,m_margin_stop))                   return(false);
   if(!SymbolInfoDouble(m_name,SYMBOL_MARGIN_STOPLIMIT,m_margin_stoplimit))         return(false);
   if(!SymbolInfoInteger(m_name,SYMBOL_EXPIRATION_MODE,tmp))                        return(false);
   m_trade_time_flags=(int)tmp;
   if(!SymbolInfoInteger(m_name,SYMBOL_FILLING_MODE,tmp))                           return(false);
   m_trade_fill_flags=(int)tmp;
//--- ok
   return(true);
  }
Документация по MQL5: Торговые функции / OrderCheck
Документация по MQL5: Торговые функции / OrderCheck
  • www.mql5.com
Торговые функции / OrderCheck - Документация по MQL5
 

谢谢你!!!

当然,我的台词。想写我是个傻瓜,它们是我的台词,看到你的评论。

你必须看一下日志(鼠标右键,"打开")才能看到所有的帖子。谢谢你!!!

 

在utf8编码中,有一个作为字符串的字符代码(例如:"041e" )。

如何在10-系统中得到这个代码的等价物,然后把它转换成一个字符(代码041e=俄罗斯字母O)。

真是一团糟,但我也想不明白:)

 
早上好!我不太清楚今天早上我在做什么。请告诉我,这前两个变量,它们有什么问题?
 
Dimka-novitsek:
早上好,我不太知道我在做什么。请告诉我这前两个变量,它们有什么问题?

你定义的第一个字符串变量作为一个函数,使其为空(=NULL或="")。然后在OnInit中你可以使=_Symbol .

第二。要么把;放在5后面,要么把第二个int删除。

 
谢谢你!!!
原因: