[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 231 1...224225226227228229230231232233234235236237238...432 新评论 削除済み 2013.03.19 10:24 #2301 我正在正确地将其复制到指标文件夹中7 附加的文件: dailyzfibov-qwalidielhelw.mq4 6 kb ir0407 2013.03.19 10:36 #2302 hoz:有以下情况。我已经展示了一段存在误解的代码。所有的变量都被宣布为全局变量。在IsObjectFound() 函数中,我得到了该对象的第一个和第二个价格点的值,名称,以及该对象在当前条上的价格值。如果找到了对象,它应该以真 模式退出函数, 否则以假 模式退出。 该函数继续执行启动函数。这是什么? 如果出了问题,千万不要贪图调试输出,而试图检查出更多的错误。一个工作脚本的例子。//+------------------------------------------------------------------+ //| Test ObjectFound.mq4 | //| Copyright © 2013, ir0407 | //+------------------------------------------------------------------+ #property copyright "Copyright © 2013, ir0407" #property link "" #include <stderror.mqh> #include <stdlib.mqh> string objName; int isObj; double objPrice1, objPrice2, objPriceCurr; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { if (!IsObjectFound()) { Print("В окне отсуствуют объекты, поиск продолжается..."); return (0); } return(0); } //+------------------------------------------------------------------+ //+-------------------------------------------------------------------------------------+ //| Блок поиска своих объектов | //+-------------------------------------------------------------------------------------+ bool IsObjectFound(int ObjType = EMPTY) { int Error; //Eсли объектов на графике нет, то и делать нам тут больше нечего if(ObjectsTotal(ObjType) == 0) { Print("Объекты на графике отсутствуют."); return(False); } for (int obj = 0; obj < ObjectsTotal(ObjType); obj++) { objName = ObjectName(obj); //Нужно убедиться что в переменной objName лежит имя объекта, //а не какая нибудь чепуха. Error = GetLastError(); if(Error == ERR_NO_ERROR) { isObj = ObjectFind(objName); if(isObj == -1) { Print("Объект с именем \"", objName, "\" не найден."); Error = GetLastError(); Print("Функция ObjectFind() вернула код ошибки #", Error); return(false); } objPrice1 = ObjectGet(objName, OBJPROP_PRICE1); objPrice2 = ObjectGet(objName, OBJPROP_PRICE2); objPriceCurr = ObjectGetValueByShift(objName,0); Print("objPrice1 = ", objPrice1); Print("objPrice2 = ", objPrice2); Print("objPriceCurr = ", objPriceCurr); } else { Print("Функция ObjectName() вернула код ошибки #", Error); return(false); } } return (True); // Объект найден! } Viktar Dzemikhau 2013.03.19 11:34 #2303 ir0407:如果工作出错,千万不要贪图调试输出,尝试检查更多的错误。一个工作脚本的例子。 伊戈尔,感谢你的宝贵意见。你是对的!我以前没有用物体工作过,现在我已经掌握了它。我一直在考虑从哪方面着手。 TarasBY 2013.03.19 11:50 #2304 GaNDarM: 你误解了。我不想在终端机上改变我的余额值,尽管这的确是件好事:)我需要根据之前的交易结果(盈利或亏损)来改变我的手数大小。而如何规定存款的变化(发生的损失或获得的利润)我不知道。 交易结果可以通过2种方式控制(也许还有其他方式,我喜欢): 1)记住之前的存款值,并与当前的存款值进行比较(AccountBalance())。但这种方法需要涉及到终端的全局变量,因此在EA或终端重启时,变量不会丢失其值(或将其写入文件)。 2)而且你可以从历史记录中查看以前的交易结果(在Kim的主题中寻找该功能)。 Виктор 2013.03.19 11:59 #2305 koSTRIKin:我正在正确地复制它到指标文件夹7 正确的文件夹是专家/指标。以防万一,写完后检查其在文件夹中的存在。 如果它存在,在编辑器中编译任何代码后,它肯定会出现。 Viktar Dzemikhau 2013.03.19 12:10 #2306 objName = ObjectName(obj); //Нужно убедиться что в переменной objName лежит имя объекта, //а не какая нибудь чепуха. Error = GetLastError(); if(Error == ERR_NO_ERROR) 如果函数具体地返回对象的名称,为什么会有废话呢? gyfto 2013.03.19 12:25 #2307 伽达姆(функцию поищите в ветке у Кима). 分公司 [删除] 2013.03.19 13:19 #2308 TarasBY: 有两种方法来控制交易结果(可能还有其他方法,这些方法适合我)。 1) 记忆以前的存款值,并与当前的存款值进行比较(AccountBalance())。 但这个方法必须涉及到终端的全局变量,以便在重启EA或终端(或将其写入文件)时变量不会丢失其值。 2)而且你可以从历史记录中查看以前的交易结果(在Kim的主题中寻找该功能)。 谢谢你,我将搜索 [删除] 2013.03.19 13:40 #2309 为什么在INIT()中变量被分配为零?什么是错误或如何将买入和卖出价格分配给start()函数之外的变量?我试着把RefreshRates();放在它们前面,但没有变化 :(int init() { ..... //--- UpL = Ask; // Пик вверх изначально равен цене покупки DownL = Bid; // Пик вниз изначально равен цене продажи return(0); } //---end init-------------------------------------------------------- Pavel Shutovskiy 2013.03.19 13:51 #2310 问候!解释一下如何以编程方式获得从上周低点到本周初的条数值。 1...224225226227228229230231232233234235236237238...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我正在正确地将其复制到指标文件夹中7
有以下情况。
我已经展示了一段存在误解的代码。所有的变量都被宣布为全局变量。在IsObjectFound() 函数中,我得到了该对象的第一个和第二个价格点的值,名称,以及该对象在当前条上的价格值。如果找到了对象,它应该以真 模式退出函数, 否则以假 模式退出。
该函数继续执行启动函数。这是什么?
如果出了问题,千万不要贪图调试输出,而试图检查出更多的错误。一个工作脚本的例子。
如果工作出错,千万不要贪图调试输出,尝试检查更多的错误。一个工作脚本的例子。
伊戈尔,感谢你的宝贵意见。你是对的!我以前没有用物体工作过,现在我已经掌握了它。我一直在考虑从哪方面着手。
你误解了。我不想在终端机上改变我的余额值,尽管这的确是件好事:)
我需要根据之前的交易结果(盈利或亏损)来改变我的手数大小。而如何规定存款的变化(发生的损失或获得的利润)我不知道。
交易结果可以通过2种方式控制(也许还有其他方式,我喜欢):
1)记住之前的存款值,并与当前的存款值进行比较(AccountBalance())。但这种方法需要涉及到终端的全局变量,因此在EA或终端重启时,变量不会丢失其值(或将其写入文件)。
2)而且你可以从历史记录中查看以前的交易结果(在Kim的主题中寻找该功能)。
我正在正确地复制它到指标文件夹7
正确的文件夹是专家/指标。以防万一,写完后检查其在文件夹中的存在。
如果它存在,在编辑器中编译任何代码后,它肯定会出现。
伽达姆
(функцию поищите в ветке у Кима).
有两种方法来控制交易结果(可能还有其他方法,这些方法适合我)。
1) 记忆以前的存款值,并与当前的存款值进行比较(AccountBalance())。 但这个方法必须涉及到终端的全局变量,以便在重启EA或终端(或将其写入文件)时变量不会丢失其值。
2)而且你可以从历史记录中查看以前的交易结果(在Kim的主题中寻找该功能)。
谢谢你,我将搜索
为什么在INIT()中变量被分配为零?什么是错误或如何将买入和卖出价格分配给start()函数之外的变量?我试着把RefreshRates();放在它们前面,但没有变化 :(
问候!
解释一下如何以编程方式获得从上周低点到本周初的条数值。