开放项目 - 内部测试器-优化器 - 页 3 1234567 新评论 Forex Trader 2005.03.01 17:45 #21 我在这里发布了源代码 -http://forexsystems.ru/phpBB/viewtopic.php?p=4379#4379 你可以看到那些评论,这些评论不得不被删除。 那里介绍了TradeOrdersArray和ClosedOrdersArray数组的用途。还有一些。 Forex Trader 2005.03.01 19:32 #22 被重写的OrderSend交易函数。 函数CorrectPrice()和DrawArrowOnChart()还没有被定义。 我把它贴在这里 -http://forexsystems.ru/phpBB/viewtopic.php?p=4380#4380 不得不把所有的变量从init()块拖到头顶上--否则变量就不可见了。我的第一个错误。 第二个问题是,编译器对我试图将函数中的一个参数的默认值设置为NULL的做法表示诅咒。 第三,当代码中遇到未定义/未定义的函数(CorrectPrice() 和 DrawArrowOnChart() )时,编译器不会崩溃。 也许它会偶然发现NULL,不会再有抱怨。 这个函数的定义很愚蠢--我是从字典里抄来的,所以如果开发者会责怪我的错误声明,....。 //+------------------------------------------------------------------+ //| Redefine OrderSend() function | //+------------------------------------------------------------------+ int fut_OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=[b]NULL[/b],int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) { if (CorrectPrice(symbol,cmd,price,myCurrentTime)) { TradeOrdersArray[myOrdersTotal,0]= symbol; TradeOrdersArray[myOrdersTotal,1]=pool_pos; TradeOrdersArray[myOrdersTotal,2]=myOrderTicket+1; TradeOrdersArray[myOrdersTotal,3]=cmd; TradeOrdersArray[myOrdersTotal,4]=volume; TradeOrdersArray[myOrdersTotal,5]=price; TradeOrdersArray[myOrdersTotal,6]=slippage; TradeOrdersArray[myOrdersTotal,7]=stoploss; TradeOrdersArray[myOrdersTotal,8]=stoploss; TradeOrdersArray[myOrdersTotal,9]=comment; TradeOrdersArray[myOrdersTotal,10]=magic; TradeOrdersArray[myOrdersTotal,11]=myCurrentTime; DrawArrowOnChart(symbol,myCurrentTime,price,arrow_color); myOrderTicket++; myOrdersTotal++; pool_pos++; return(myOrderTicket); } else return(-1); } 明天我将尝试重新定义OrderClose() - 在那里将更容易解释测试的想法。 PS 已经有两个人下载了它--有希望了 Forex Trader 2005.03.01 23:41 #23 你可以看到那些不得不删除的评论 Rosh,我想出了如何在这个论坛上插入俄文文本(我必须自己想出来:) 当你在编辑器中复制代码时,你应该把它写成俄语。而当你把它粘贴到一个论坛上时,也分别如此。 而且所有的评论都会被保存下来;) Forex Trader 2005.03.02 03:38 #24 雷纳特,斯拉瓦... 这里有一个关于空操作符 的讨论的好例子。 隐式类型转换比小括号后的";"更糟糕,更危险。 在这种情况下,我们有一个明确的错误,但编译器甚至不会产生一个警告。 罗什。 该页又消失了。 Forex Trader 2005.03.02 07:07 #25 再试一试。 int fut_OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) { if (CorrectPrice(symbol,cmd,price,myCurrentTime)) { TradeOrdersArray[myOrdersTotal,0]= symbol;// записали иструмент TradeOrdersArray[myOrdersTotal,1]=pool_pos;// записали номер в списке терминала TradeOrdersArray[myOrdersTotal,2]=myOrderTicket+1;// записали номер тикета у брокера TradeOrdersArray[myOrdersTotal,3]=cmd;// записали тип ордера TradeOrdersArray[myOrdersTotal,4]=volume;// записали размер ордера TradeOrdersArray[myOrdersTotal,5]=price;// записали цену открытия TradeOrdersArray[myOrdersTotal,6]=slippage;// записали проскальзывание в пунктах TradeOrdersArray[myOrdersTotal,7]=stoploss;// записали stoploss TradeOrdersArray[myOrdersTotal,8]=stoploss;// записали takeprofit TradeOrdersArray[myOrdersTotal,9]=comment;// записали комментарии TradeOrdersArray[myOrdersTotal,10]=magic;// записали MagicNumber TradeOrdersArray[myOrdersTotal,11]=myCurrentTime;// записали дату выставления/открытия ордера DrawArrowOnChart(symbol,myCurrentTime,price,arrow_color); myOrderTicket++; myOrdersTotal++; pool_pos++; return(myOrderTicket); } else return(-1); } //+------------------------------------------------------------------+ Forex Trader 2005.03.02 09:08 #26 文中有一个严重的错误。 Forex Trader 2005.03.02 10:58 #27 谢谢你,小迈。简洁是人才的姐妹。 Forex Trader 2005.03.02 11:28 #28 罗什。 我只是想让雷纳特自己看一下,找到错误的地方。 但似乎他们不看这里,或者认为我的帖子很愚蠢。 (引用 - "我们不回答愚蠢的问题." - :) 这是关于MQL语法(和/或编译器)的缺点的话题。 编译器不会对这个错误作出反应,尽管它可以警告你。 我只是想在语言中禁止这种错误(隐式类型转换)。 具体说来。 TradeOrdersArray数组的类型是double。 在几个地方,你给它分配了字符串值。 比如说。 TradeOrdersArray[myOrdersTotal,0]= symbol; 编译器会把它全部吃掉,甚至测试器也会工作,但不是你想要的方式。 而且很难寻找这样的错误,特别是如果它是一个月前犯的。 而今天当你在程序中加入几行时才显示出来。 (请修复脚本--页面已经消失,不方便查看。) Forex Trader 2005.03.02 11:37 #29 那么我如何定义一个数组来存储不同类型的数据? 以下是这份声明 string comment=NULL,编译器会得到一个错误。 但我只是按模式从字典中抄写。 Forex Trader 2005.03.02 11:42 #30 我如何定义一个数组来存储不同类型的数据? 我怀疑你不能。 只有在2个不同的数组中。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你可以看到那些评论,这些评论不得不被删除。
那里介绍了TradeOrdersArray和ClosedOrdersArray数组的用途。还有一些。
函数CorrectPrice()和DrawArrowOnChart()还没有被定义。
我把它贴在这里 -http://forexsystems.ru/phpBB/viewtopic.php?p=4380#4380
不得不把所有的变量从init()块拖到头顶上--否则变量就不可见了。我的第一个错误。
第二个问题是,编译器对我试图将函数中的一个参数的默认值设置为NULL的做法表示诅咒。
第三,当代码中遇到未定义/未定义的函数(CorrectPrice() 和 DrawArrowOnChart() )时,编译器不会崩溃。
也许它会偶然发现NULL,不会再有抱怨。
这个函数的定义很愚蠢--我是从字典里抄来的,所以如果开发者会责怪我的错误声明,....。
明天我将尝试重新定义OrderClose() - 在那里将更容易解释测试的想法。
PS 已经有两个人下载了它--有希望了
Rosh,我想出了如何在这个论坛上插入俄文文本(我必须自己想出来:)
当你在编辑器中复制代码时,你应该把它写成俄语。而当你把它粘贴到一个论坛上时,也分别如此。
而且所有的评论都会被保存下来;)
这里有一个关于空操作符 的讨论的好例子。
隐式类型转换比小括号后的";"更糟糕,更危险。
在这种情况下,我们有一个明确的错误,但编译器甚至不会产生一个警告。
罗什。
该页又消失了。
我只是想让雷纳特自己看一下,找到错误的地方。
但似乎他们不看这里,或者认为我的帖子很愚蠢。
(引用 - "我们不回答愚蠢的问题." - :)
这是关于MQL语法(和/或编译器)的缺点的话题。
编译器不会对这个错误作出反应,尽管它可以警告你。
我只是想在语言中禁止这种错误(隐式类型转换)。
具体说来。
TradeOrdersArray数组的类型是double。
在几个地方,你给它分配了字符串值。
比如说。
编译器会把它全部吃掉,甚至测试器也会工作,但不是你想要的方式。
而且很难寻找这样的错误,特别是如果它是一个月前犯的。
而今天当你在程序中加入几行时才显示出来。
(请修复脚本--页面已经消失,不方便查看。)
以下是这份声明
但我只是按模式从字典中抄写。
我怀疑你不能。
只有在2个不同的数组中。