任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 900 1...893894895896897898899900901902903904905906907...1178 新评论 Vitalie Postolache 2015.06.04 17:48 #8991 lufer: 这并没有解决问题,现在看来,OnTick() 中出了问题--当我在终端窗口加载EA时,什么都没有发生,而当我试图删除它时,终端停滞了很长一段时间,然后在一段时间后删除了它。我试着给一些元素手动赋值,一切都很好。关于数组初始化循环的一些东西似乎是错误的。你说它 "不能解决 "是什么意思?你把低于1的双精度数据塞进Int数组,输出结果自然会包含0。好吧,这个循环也是残缺的。这段代码应该可以工作。#property strict extern int N=100; // Количество баров double Mas[]; // Объявление массива //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { ArrayResize(Mas,N); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { for(int i=0; i<N; i++) // Цикл записи данных { Mas[i]=iATR(NULL,0,5,i+1); // Вычисление значений } Print(DoubleToStr(Mas[0],_Digits),"," ,DoubleToStr(Mas[50],_Digits),"," ,DoubleToStr(Mas[99],_Digits)); // Вывод значений } lufer 2015.06.05 12:17 #8992 evillive:你说 "不起作用 "是什么意思?你把小于1的双倍数据塞进int数组,当然输出的结果是零。而这个循环是一个混乱的循环。这是一种应该工作的代码。 当然你 说的双倍 Mas[]是完全正确的(我考虑到ATP出于某种原因以整数值计算点数)。 关键是我改变了数组类型后也没有出现,但我已经意识到我的错误。 非常感谢您的帮助! Roman Zhitnik 2015.06.06 05:59 #8993 我不想创建一个单独的主题,所以我就在这里问。OrderSelect函数 的文档指出,所有订单数据都被复制到"程序环境 " 中。它只指当前的图表,还是 指整个终端?我问这个问题是因为我有一个问题,就是在安装了相同EA的不同图表上同时处理几个订单。 Vitalie Postolache 2015.06.06 10:38 #8994 .roman.: 我不想创建一个单独的主题,所以我就在这里问。OrderSelect函数的文档指出,所有订单数据都被复制到"程序环境 " 中。它只指当前的图表,还是 指整个终端?我问这个问题是因为我有一个问题,即同时处理来自安装有相同EA的不同图表的几个订单。 这些订单对所有运行在该订单的终端的用户应用程序都是可用的。 Roman Zhitnik 2015.06.06 10:59 #8995 evillive: 这些订单对所有在终端运行的用户程序都是可用的,在那里订单被打开。 那么,我们如何防止将另一个订单的数据错误地复制到软件环境中,而这个数据同时又是从不同的图表中选择的? Vitalie Postolache 2015.06.06 11:10 #8996 .roman.: 那么,我们如何防止将另一个订单的数据错误地复制到软件环境中,而这个数据同时又是从不同的图表中选择的? 不同订单的数据没有任何重叠,没有任何需要保护的地方。 Roman Zhitnik 2015.06.06 12:16 #8997 evillive: 不同订单的数据没有任何重叠,没有任何需要保护的地方。那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗?具体来说,我的问题是,尽管在OrderSelect函数 中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。也就是说,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"? Victor Nikolaev 2015.06.06 12:17 #8998 .roman.:那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗? 具体来说,我的问题是,尽管在OrderSelect函数中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。因此,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"? 我需要代码。这里面有一个错误 Vitalie Postolache 2015.06.06 12:40 #8999 .roman.:那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗?具体来说,我的问题是,尽管在OrderSelect函数中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。也就是说,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"?每个订单都有独特的参数,可以清楚地将其与其他订单区分开来。这些是票据和打开(或关闭,如果你搜索历史)的时间。它们在一个交易账户内就像视网膜图案一样独特。使用OrderSelect函数 选择订单是不够的,我们必须检查它是否是正确的订单,或者我们是否必须选择下一个订单。 Roman Zhitnik 2015.06.06 12:44 #9000 Vinin: 你需要一个密码。这里面有一个错误for(int i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) { if(OrderType()==OP_BUY) { double openPrice = 0; openPrice = OrderOpenPrice(); if(Ask>openPrice) { Print("OrderSymbol ",OrderSymbol()," OrderTicket ",OrderTicket()," OrderOpenPrice ",OrderOpenPrice()); } } if(OrderType()==OP_SELL) { double openPrice = 0; openPrice = OrderOpenPrice(); if(Bid<openPrice) { Print("OrderSymbol ",OrderSymbol()," OrderTicket ",OrderTicket()," OrderOpenPrice ",OrderOpenPrice()); } } } }不必要的计算(与问题无关)已被删除。打印机被添加到代码中,专门用来显示这个问题。尽管订单符号与符号进行了比较,但在EA开放的情况下,它可以显示这一点(从OSI图表中获取欧元的订单数据,例如,在这种情况下)。 1...893894895896897898899900901902903904905906907...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这并没有解决问题,现在看来,OnTick() 中出了问题--当我在终端窗口加载EA时,什么都没有发生,而当我试图删除它时,终端停滞了很长一段时间,然后在一段时间后删除了它。我试着给一些元素手动赋值,一切都很好。关于数组初始化循环的一些东西似乎是错误的。
你说它 "不能解决 "是什么意思?你把低于1的双精度数据塞进Int数组,输出结果自然会包含0。好吧,这个循环也是残缺的。
这段代码应该可以工作。
你说 "不起作用 "是什么意思?你把小于1的双倍数据塞进int数组,当然输出的结果是零。而这个循环是一个混乱的循环。
这是一种应该工作的代码。
我不想创建一个单独的主题,所以我就在这里问。OrderSelect函数的文档指出,所有订单数据都被复制到"程序环境 " 中。它只指当前的图表,还是 指整个终端?我问这个问题是因为我有一个问题,即同时处理来自安装有相同EA的不同图表的几个订单。
这些订单对所有在终端运行的用户程序都是可用的,在那里订单被打开。
那么,我们如何防止将另一个订单的数据错误地复制到软件环境中,而这个数据同时又是从不同的图表中选择的?
不同订单的数据没有任何重叠,没有任何需要保护的地方。
那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗?
具体来说,我的问题是,尽管在OrderSelect函数 中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。也就是说,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"?
那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗?
具体来说,我的问题是,尽管在OrderSelect函数中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。因此,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"?
那么我们谈论的是不同的事情。我最初指的是什么是文件中描述的 "软件环境 "的问题。它是指整个终端吗?
具体来说,我的问题是,尽管在OrderSelect函数中对OrderSymbol和Symbol进行了排他性比较,但当数据(订单打开时间、打开价格等)可以从一个货币对的图表中出现时,就出现了问题。也就是说,我想知道,是否有可能在EA对欧元兑美元的OrderSelect功能期间,例如,EA也将开始工作于另一个货币对的OrderSelect功能,并且该功能的最后一次调用的订单数据将被加载到 "程序环境"?
每个订单都有独特的参数,可以清楚地将其与其他订单区分开来。这些是票据和打开(或关闭,如果你搜索历史)的时间。它们在一个交易账户内就像视网膜图案一样独特。
使用OrderSelect函数 选择订单是不够的,我们必须检查它是否是正确的订单,或者我们是否必须选择下一个订单。
你需要一个密码。这里面有一个错误
不必要的计算(与问题无关)已被删除。打印机被添加到代码中,专门用来显示这个问题。尽管订单符号与符号进行了比较,但在EA开放的情况下,它可以显示这一点(从OSI图表中获取欧元的订单数据,例如,在这种情况下)。