'MACD_MA model.mq5' MACD_MA model.mq5 11'Trade.mqh' Trade.mqh 11'Object.mqh' Object.mqh 11'StdLibErr.mqh' StdLibErr.mqh 11'SymbolInfo.mqh' SymbolInfo.mqh 11'OrderInfo.mqh' OrderInfo.mqh 11'HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 11'PositionInfo.mqh' PositionInfo.mqh 11'DealInfo.mqh' DealInfo.mqh 11'AccountInfo.mqh' AccountInfo.mqh 11'model_macd.mqh' model_macd.mqh 11'Model.mqh' Model.mqh 11'List.mqh' List.mqh 11'TableOrders.mqh' TableOrders.mqh 11'Time.mqh' Time.mqh 11'mm.mqh' mm.mqh 11'stdlib.mqh' stdlib.mqh 11'model_ma.mqh' model_ma.mqh 11'model_bollinger.mqh' model_bollinger.mqh 11returnvalue of 'OrderSelect' should be checked TableOrders.mqh 1204implicitenum conversion TableOrders.mqh 5044'new_message' - conversion is not accessible because of inheritance access Time.mqh 18521
possible use of uninitialized variable 'lot_limit' mm.mqh 12910't' - conversion is not accessible because of inheritance access Model.mqh 25227
declaration of 'trade' hides global variable Model.mqh 28216
see previous declaration of 'trade' MACD_MA model.mq5 188
declaration of 'i' hides local variable Model.mqh 31015
see previous declaration of 'i' Model.mqh 30712
possible loss of data due to type conversion Model.mqh 42847
possible loss of data due to type conversion model_macd.mqh 8611
possible loss of data due to type conversion model_macd.mqh 9014
possible loss of data due to type conversion model_macd.mqh 9114
possible loss of data due to type conversion model_macd.mqh 9216
expression not boolean model_macd.mqh 22811
expression not boolean model_macd.mqh 25411
possible loss of data due to type conversion model_ma.mqh 8511
possible loss of data due to type conversion model_ma.mqh 898
possible loss of data due to type conversion model_ma.mqh 9019
expression not boolean model_ma.mqh 21911
expression not boolean model_ma.mqh 24211
declaration of 'k_ATR' hides global variable model_bollinger.mqh 97110
see previous declaration of 'k_ATR' MACD_MA model.mq5 2516
possible loss of data due to type conversion model_bollinger.mqh 9922
possible loss of data due to type conversion model_bollinger.mqh 10422
possible loss of data due to type conversion model_bollinger.mqh 10722
variable 'rezult' not used model_bollinger.mqh 1709
variable 'rezult' not used model_bollinger.mqh 1959
expression not boolean model_bollinger.mqh 23811
expression not boolean model_bollinger.mqh 263112 errors, 25 warnings 326
class Test : public CObject {
public:
int i_;
Test(int i) {
i_ = i;
};
int get_i() {
return i_;
};
};
CList *list = new CList();
for (int i = 0; i < 10; i++) {
Test *t = new Test(i);
list.Add(t);
}
for (int i = 0; i < list.Total(); i++) {
Test *t = list.GetNodeAtIndex(i);
if (i == 5) {
list.DeleteCurrent();
}
if (CheckPointer(t) == POINTER_INVALID) {
continue;
}
Print(t.get_i());
}
删除索引 5 的节点后,迭代索引 6,但下一个元素仍是索引 5。
更好的办法是使用 GetFirstNode / GetNextNode。
for (Test *t = list.GetFirstNode(); t != NULL;) {
t_current = t;
if (t.get_i() == 5) {
list.DeleteCurrent();
t = list.GetCurrentNode();
if (t == t_current) {break;}
continue;
}
Print(t.get_i());
t = list.GetNextNode();
}
谢谢,这是一篇好文章,也是一个好框架。正是我想要的。
我打算用真钱来使用它,它是最新版本吗?
谢谢
下午好!
我试着改正了几个错误,但又有一个错误不断出现......如果说我们的目的是为了让初学者更轻松地学习,那么这样做就越来越难了,我都快疯了......
请帮帮我!
我必须修改两处才能正常工作。
在文件 "TableOrders.mqh "的 bool CTableOrders::Add(ulong Ticket,double stop_loss,double take_profit) 第 89 行,变量 m_type 应替换为:
From:
m_type=order_info.Type();
改为
m_type=order_info.OrderType();
第二个变量也在 "TableOrders.mqh "中:
From:
class CTableOrders : CObject
到
class CTableOrders : public CObject
Regards,
A.HUPP
下午好!
我试着改正了几个错误,但又有一个错误不断出现......如果说我们的目的是为了让初学者更轻松地学习,那么现在的情况却越来越难,我都快疯了...
请帮帮我!
Airton 这篇文章对于初学者来说是非常高深的,您必须首先了解面向对象应用程序开发、层次结构、多态性、继承、虚方法的概念,也就是说,您需要了解高级编程知识。然而,在这些示例中发现的错误与类声明有关,其中一些示例中缺少了您必须手工插入的 public 关键字,也许以前版本的 MQL 在编译时不需要这些关键字,但这个版本需要更正。
为了编译 simple_model.mq5 文件,我必须添加 "public":
类 CModel:第 12 行的 publicCObject
在编译 MACD_MA_model.mq5 时,我一直遇到这个错误:
MODE_OPEN' - 枚举标识符已定义 stdlib.mqh 13 4
我无法绕过这个涉及底层库的错误。
感谢您的文章,感谢您为建立一个通用测试框架所做的努力。
为了编译 simple_model.mq5 文件,我必须添加 "public":
类 CModel: 公有 CObject 在第 12 行
在编译 MACD_MA_model.mq5 时,我一直遇到这个错误:
MODE_OPEN' - 枚举标识符已定义 stdlib.mqh 13 4
我无法绕过这个涉及底层库的错误。
感谢您的文章,感谢您为建立一个通用测试框架所做的努力。
https://www.mql5.com/en/forum/244512
尝试解编译,出现错误
有修复代码的计划吗?
min_risk = point * tick_value *symbol_info_.LotsStep();
应使用 tick 计数而不是点计数。
tick_count = MathAbs(open_price - stop_loss) / symbol_info_.TickSize();
因为在某些符号中,tick size != point
例如
Futures\Agricultural Commodities\#Coffee_H21:
迭代列表时不应该删除节点。
例如
删除索引 5 的节点后,迭代索引 6,但下一个元素仍是索引 5。
更好的办法是使用 GetFirstNode / GetNextNode。
感谢您的贡献!