错误、漏洞、问题 - 页 591 1...584585586587588589590591592593594595596597598...3184 新评论 Konstantin Chernov 2011.12.06 11:01 #5901 alexvd:我们去服务台吧。请澄清服务究竟是如何被切断的?你是否删除(冻结)了这些服务?请附上问题代理商的日志。你日志中的代理设置 有些奇怪。你在你的代理配置中写了代理设置吗?请附上你的管理器的common.ini。事实证明,我看了昨天的日志...一切都很好。 Ilyas 2011.12.06 11:41 #5902 TheXpert:下一个代码。输出。2011.12.05 22:01:28 RectLabel (EURUSD,H1) pos = {12, 176314750}。 2011.12.05 22:01:28 RectLabel (EURUSD,H1) other = {123, 456}。所以,初始化列表没有工作,结构中存在垃圾。这到底是不是一个错误? 这是编译器的一个错误--它没有生成一个错误,说明该结构不能以这种方式初始化(没有复制构造函数)。固定的。谢谢你的帖子。 Konstantin Chernov 2011.12.06 16:05 #5903 我无法理解去初始化。为什么会出现两次 "专家顾问从配对中卸载... "的信息?//+------------------------------------------------------------------+//| testDeinit.mq5 |//| Copyright 2011, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2011, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"//+------------------------------------------------------------------+ class CTest_Expert { public: CTest_Expert(); ~CTest_Expert() { Deinit(); } void Processing(); void Deinit(); bool StartTimer(int nCounSeconds); void StopTimer(); string Exp_Symbol; }; CTest_Expert arSymbols[];//+------------------------------------------------------------------+//| Конструктор |//+------------------------------------------------------------------+ CTest_Expert::CTest_Expert() { }//+------------------------------------------------------------------+//| Функция удаления динамических объектов |//+------------------------------------------------------------------+ void CTest_Expert::Deinit() { Print("Эксперт выгружен с пары "+Exp_Symbol); Comment(""); }//+------------------------------------------------------------------+//|Инициализация таймера |//+------------------------------------------------------------------+ bool CTest_Expert::StartTimer(int nCountSeconds) { return(EventSetTimer(nCountSeconds)); }//+------------------------------------------------------------------+//|Уничтожение таймера |//+------------------------------------------------------------------+ void CTest_Expert::StopTimer() { EventKillTimer(); }//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+ int OnInit() { ArrayResize(arSymbols, 5); arSymbols[0].Exp_Symbol="0"; arSymbols[1].Exp_Symbol="1"; arSymbols[2].Exp_Symbol="2"; arSymbols[3].Exp_Symbol="3"; arSymbols[4].Exp_Symbol="4"; return(0); }//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+ void OnDeinit(const int reason) { int nSize=ArraySize(arSymbols); Print("nSize = " + IntegerToString(nSize)); for(int i=0;i<nSize;i++) { Print("-------"+IntegerToString(i)+"--------"); arSymbols[i].Deinit(); Print("---------------"); } }//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+ void OnTick() {//--- }//+------------------------------------------------------------------+结果2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:00:00 PM 专家顾问已经从货币对4卸载。 2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:02:00 PM testDeinit (EURUSD,M5) E.T.A已经从货币对3中卸载。 2011.12.06 16:59:52 testDeinit (EURUSD,M5) 从货币对2下载。 2011.12.06 16:59:52 testDeinit (EURUSD,M5) 从货币对1下载。 2011.12.06 16:59:52 testDeinit (EURUSD,M5) Ekspert unloaded from pair 0 2011.12.06 16:59:52 testDeinit (EURUSD,M5) --------------- 2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14 2011.12.06 16:59:52 testDeinit (EURUSD,M5) -------4-------- 2011.12.06 16:59:52 testDeinit (EURUSD,M5) --------------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已从货币对3中卸载。 2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------3-------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) --------------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已经从货币对2中卸载。 2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------2-------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) --------------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已从货币对1中卸载。 2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------1-------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) --------------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家从0号货币对中卸载。 2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------0-------- 2011.12.06 16:59:51 testDeinit (EURUSD,M5) nSize = 5 Errors, bugs, questions 请帮助我 [已解决] 专家顾问 - 杂项问题 Slava 2011.12.06 16:35 #5904 Konstantin83: 我无法理解去初始化的问题。为什么 "专家从对中卸下...... "的信息会发生两次? ~CTest_Expert() { Deinit(); } CTest_Expert arSymbols[];//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+ void OnDeinit(const int reason) { int nSize=ArraySize(arSymbols); Print("nSize = " + IntegerToString(nSize)); for(int i=0;i<nSize;i++) { Print("-------"+IntegerToString(i)+"--------"); arSymbols[i].Deinit(); Print("---------------"); } } 来自OnDeinit的第一次调用。从析构器第二次调用 TheXpert 2011.12.06 22:37 #5905 mql5: 这是编译器的一个错误--它没有产生一个错误,说结构不能这样初始化(没有复制构造函数)。固定的。谢谢你的帖子。呃,没有。更多细节出现在这里。在Help中说,简单的结构 可以作为简单类型的变量被复制。{ Pos pos = {100, 100}; Pos pos1 = pos; // копи конструктор pos = pos1; // копи оператор }那么为什么不能在初始化列表中进行呢?我不想明确地定义构造函数,这样就不会失去上面使用的初始化方法。原则上不批评,只是想听听最后的意见。 Документация по MQL5: Основы языка / Типы данных / Структуры и классы www.mql5.com Основы языка / Типы данных / Структуры и классы - Документация по MQL5 Konstantin Chernov 2011.12.07 12:18 #5906 我 在打开12个窗口的情况下运行终端,它吃掉了325MB的内存。运行多货币专家顾问,终端占用990Mb的内存。专家顾问查看过去48小时的5分钟条形图+使用 "分形 "指标。如果我只运行一个符号的交易,它需要400Mb。在处理12个符号时,这种内存消耗是否正常? Rashid Umarov 2011.12.07 12:23 #5907 Konstantin83: 我正在运行一个多币种的专家顾问,该终端占用了990Mb的内存。该专家通过过去48小时的5分钟条形图+使用 "分形 "指标。如果我只运行一个符号的交易,它需要400Mb。在处理12个符号时,这种内存消耗是否正常? 请看文章《指标的经济性重新计算的原则 Konstantin Chernov 2011.12.07 12:42 #5908 Rosh: 查看《指标的经济性重新计算的原则》一文 我忘了指出,分形是一个标准的指标+所有的计算都是每5分钟进行的 --- 2011.12.07 13:03 #5909 Konstantin83: 我忘了说,分形是一个标准的指标+所有的计算都是每5分钟进行的开发人员如何知道你在做什么以及你是如何做的? 尝试在你的代码中清楚地制定和解释问题的根源。 以技术方式描述问题。 Konstantin Chernov 2011.12.07 13:41 #5910 sergeev:开发人员如何知道你在做什么以及你是如何做的? 试着在你的代码中明确提出并突出问题的本质。在什么条件下消耗开始增长,制作并展示日志打印结果。 以技术方式描述问题。 我以前没有注意过内存大小,因为它肯定不多。昨天和今天我注意到系统滞后,打开任务管理器,终端吃了900MB。开始寻找。在启动时,打开了12个窗口--325MB,我把它放在专家顾问窗口--990MB,所以我认为它在吃专家顾问。我已将 "图表--每个窗口的最大条数 "设置为无限。在我把它改为50000后,我启动了终端, 它的重量是110,然后我又把它改为无限。现在我的专家顾问是208MB,也就是说,它是OK的。 1...584585586587588589590591592593594595596597598...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们去服务台吧。
请澄清服务究竟是如何被切断的?你是否删除(冻结)了这些服务?请附上问题代理商的日志。
你日志中的代理设置 有些奇怪。你在你的代理配置中写了代理设置吗?请附上你的管理器的common.ini。
事实证明,我看了昨天的日志...
一切都很好。
下一个代码。
输出。
2011.12.05 22:01:28 RectLabel (EURUSD,H1) pos = {12, 176314750}。
2011.12.05 22:01:28 RectLabel (EURUSD,H1) other = {123, 456}。
所以,初始化列表没有工作,结构中存在垃圾。这到底是不是一个错误?
//| testDeinit.mq5 |
//| Copyright 2011, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
class CTest_Expert
{
public:
CTest_Expert();
~CTest_Expert() { Deinit(); }
void Processing();
void Deinit();
bool StartTimer(int nCounSeconds);
void StopTimer();
string Exp_Symbol;
};
CTest_Expert arSymbols[];
//+------------------------------------------------------------------+
//| Конструктор |
//+------------------------------------------------------------------+
CTest_Expert::CTest_Expert()
{
}
//+------------------------------------------------------------------+
//| Функция удаления динамических объектов |
//+------------------------------------------------------------------+
void CTest_Expert::Deinit()
{
Print("Эксперт выгружен с пары "+Exp_Symbol);
Comment("");
}
//+------------------------------------------------------------------+
//|Инициализация таймера |
//+------------------------------------------------------------------+
bool CTest_Expert::StartTimer(int nCountSeconds)
{
return(EventSetTimer(nCountSeconds));
}
//+------------------------------------------------------------------+
//|Уничтожение таймера |
//+------------------------------------------------------------------+
void CTest_Expert::StopTimer()
{
EventKillTimer();
}
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ArrayResize(arSymbols, 5);
arSymbols[0].Exp_Symbol="0";
arSymbols[1].Exp_Symbol="1";
arSymbols[2].Exp_Symbol="2";
arSymbols[3].Exp_Symbol="3";
arSymbols[4].Exp_Symbol="4";
return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
int nSize=ArraySize(arSymbols);
Print("nSize = " + IntegerToString(nSize));
for(int i=0;i<nSize;i++)
{
Print("-------"+IntegerToString(i)+"--------");
arSymbols[i].Deinit();
Print("---------------");
}
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
结果
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:00:00 PM 专家顾问已经从货币对4卸载。
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14:02:00 PM testDeinit (EURUSD,M5) E.T.A已经从货币对3中卸载。
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 从货币对2下载。
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 从货币对1下载。
2011.12.06 16:59:52 testDeinit (EURUSD,M5) Ekspert unloaded from pair 0
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) 14
2011.12.06 16:59:52 testDeinit (EURUSD,M5) -------4--------
2011.12.06 16:59:52 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已从货币对3中卸载。
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------3--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已经从货币对2中卸载。
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------2--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家已从货币对1中卸载。
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------1--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) ---------------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) 专家从0号货币对中卸载。
2011.12.06 16:59:51 testDeinit (EURUSD,M5) -------0--------
2011.12.06 16:59:51 testDeinit (EURUSD,M5) nSize = 5
我无法理解去初始化的问题。为什么 "专家从对中卸下...... "的信息会发生两次?
CTest_Expert arSymbols[];
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
int nSize=ArraySize(arSymbols);
Print("nSize = " + IntegerToString(nSize));
for(int i=0;i<nSize;i++)
{
Print("-------"+IntegerToString(i)+"--------");
arSymbols[i].Deinit();
Print("---------------");
}
}
这是编译器的一个错误--它没有产生一个错误,说结构不能这样初始化(没有复制构造函数)。固定的。谢谢你的帖子。
呃,没有。更多细节出现在这里。
在Help中说,简单的结构 可以作为简单类型的变量被复制。
那么为什么不能在初始化列表中进行呢?我不想明确地定义构造函数,这样就不会失去上面使用的初始化方法。
原则上不批评,只是想听听最后的意见。
我 在打开12个窗口的情况下运行终端,它吃掉了325MB的内存。
运行多货币专家顾问,终端占用990Mb的内存。专家顾问查看过去48小时的5分钟条形图+使用 "分形 "指标。如果我只运行一个符号的交易,它需要400Mb。在处理12个符号时,这种内存消耗是否正常?
我正在运行一个多币种的专家顾问,该终端占用了990Mb的内存。该专家通过过去48小时的5分钟条形图+使用 "分形 "指标。如果我只运行一个符号的交易,它需要400Mb。在处理12个符号时,这种内存消耗是否正常?
查看《指标的经济性重新计算的原则》一文
我忘了说,分形是一个标准的指标+所有的计算都是每5分钟进行的
开发人员如何知道你在做什么以及你是如何做的?
尝试在你的代码中清楚地制定和解释问题的根源。
以技术方式描述问题。
开发人员如何知道你在做什么以及你是如何做的?
试着在你的代码中明确提出并突出问题的本质。在什么条件下消耗开始增长,制作并展示日志打印结果。
以技术方式描述问题。