[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 309 1...302303304305306307308309310311312313314315316...432 新评论 [删除] 2013.04.23 14:18 #3081 Zhunko非常感谢你。 一切都会以回旋镖的方式回来,好的也是如此。 Mislaid 2013.04.23 14:41 #3082 artmedia70: 正是如此。全局变量Reason得到了一个值,但它不是在deinit()中得到的,而是在init()中得到的,这样在运行init()时,你就可以看到上次去初始化的原因,并根据这个值执行某种操作。但它并没有发挥应有的作用。 你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过一个全局声明的变量来传递。 在init()中,你检查变量的值,并找出最后一次去初始化的原因。它的作用!!!。 PS 显然不是每个人都意识到init()/deinit()不会改变全局声明的变量的值,除非在函数的语句中明确说明。 实际上,最好不要在init()中关闭订单。在那里,MarketInfo()常常不能像预期那样工作。int DeinitReason = 0; // определяем переменную на глобальном уровне ... int init () { ... if ( DeinitReason == 3) // если смена таймфрейма ... } int deinit() { //---- DeinitReason = UninitializeReason( ); Print("DeinitReason ",DeinitReason); //---- return(0); } Vadim Zhunko 2013.04.23 14:53 #3083 Mislaid: 你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过全局声明的变量来传递。 在init()中,你检查变量的值并找出最后一次去初始化的原因。它的作用!!!。 意识到Artyom有一个问题,特别是在从TF M5转换时。那里有一个错误。我们应该检查是否是这样。也许是MT4的一个错误。 Viktar Dzemikhau 2013.04.23 15:05 #3084 Zhunko: 这表明你会用这个功能做什么。像这样的功能通常是通过历史来运行的。 我甚至无法想象在一个循环中运行这个函数... Рустам 2013.04.23 15:23 #3085 hoz: 我无法想象,这个函数会循环运行...... 不客气。for(i=OrdersTotal()-1;i>=0;i--){ Print(GetOrderInfo(i,OrderMagic,.....));// вызов пользовательской функции } for(i=0;i<OrdersTotal();i++){/// вызов функции "ордерс тотал" на каждой итерации } Mislaid 2013.04.23 15:26 #3086 Zhunko: 我意识到,Artem在从M5 TF转换时有一个问题。那里有一个错误。我想检查一下是否是这样。也许这是MT4的一个错误。 不,这不是一个错误。这里是EA。将时间框架从M1改为H1//+------------------------------------------------------------------+ //| 111.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" int DeinitReason = 0; // определяем переменную на глобальном уровне int init () { } int deinit() { //---- DeinitReason = UninitializeReason( ); Print("DeinitReason ",DeinitReason); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- //---- return(0); } //+------------------------------------------------------------------+ 19:20:02 111 CADJPY,M15: 已初始化 19:20:09 111 CADJPY,M15: DeinitReason 3 19:20:09 111 CADJPY,M15: 取消初始化 19:20:09 111 CADJPY,M15: uninit reason 3 19:20:09 Supertrend[1] CADJPY,M15: 脱离初始化状态 19:20:09 Supertrend[1] CADJPY,M15: uninit reason 3 19:20:09 HLC CADJPY,M15: 取消初始化 19:20:09 HLC CADJPY,M15: uninit reason 3 19:20:09 AMA optimized1 CADJPY,M15: 去初始化了 19:20:09 AMA optimized1 CADJPY,M15: uninit reason 3 19:20:09 AMA optimized1 CADJPY,M15: 去初始化了 19:20:09 AMA optimized1 CADJPY,M15: uninit reason 3 19:20:09 Supertrend[1] CADJPY,H1:初始化 19:20:09 HLC CADJPY,H1: 已初始化 19:20:09 AMA optimized1 CADJPY,H1: 已初始化 19:20:09 AMA optimized1 CADJPY,H1: 已初始化 19:20:09 111 CADJPY,H1:初始化 Vadim Zhunko 2013.04.23 15:37 #3087 Mislaid:不,这不是一个错误。这里是EA。将时间框架从M1改为H1这很好!我也有很多关于去初始化的理由。错落有致: 实际上,最好不要在init()中关闭订单。在那里MarketInfo()常常不能像预期的那样工作。 是的,你不能。它写在帮助中。 hoz: 我甚至无法想象这个函数会在循环中运行... 这是个惯例。 Mislaid 2013.04.23 15:47 #3088 Zhunko:这很好!因为我也有很多与去初始化的原因相联系的东西。 是的,你不能。它写在帮助中。这是一个常见的事情。 下面是要检查的最后一个变体。前面的方法不是很成功,因为init()/deinit()有时不能和print()交朋友。//+------------------------------------------------------------------+ //| 111.mq4 | //| Copyright © 2006, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" int DeinitReason = 0; // определяем переменную на глобальном уровне bool firststart = true; int init () { } int deinit() { //---- DeinitReason = UninitializeReason( ); firststart = true; //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if ( firststart ) { Print( "DeinitReason ", DeinitReason, " ", Period( ) ); firststart = false; } //---- //---- return(0); } //+------------------------------------------------------------------+ Viktar Dzemikhau 2013.04.23 22:50 #3089 我想知道如何写一个函数。这个想法是,当N个蜡烛 向某个方向滚动时,它应该计算出蜡烛的数量。BUT。为此,有几个条件,或者更准确地说,将是一个随着时间推移的清单。比方说,趋势是向下的,......回调就会上涨。我想,如果有5个烛台上升,而且每个烛台都是看涨的,并且,例如,每个烛台的大小都大于i_sizeOfCurrBar,以及其他一些条件,那么就输出连续看涨的烛台数量,并从函数中返回一些结果。什么是最好的写作方法?目前我已经开始写了,我明白我应该通过一个循环按条数运行,而且我应该以某种方式限制历史深度的视图,不是按固定的条数,而是按条数,用那些参数,我们对条件感兴趣。这是我所拥有的,得到了。int LastCandlesType() { bool up, // Свеча направлена вверх dn; // Свеча направлена вниз int cnt; // Счётчик идущих друг за другом бычьих свечей for (int i=Bars-1; i>=Bars-6; i--) { if ((Close[i] - Open[i]) <= i_sizeOfCurrBar * Point) // Пропускаем все бары, размера меньше заданного внешним параметром. continue; if (Close[i] > Open[i]) // up = true; cnt++; } if (cnt == 5) return (BULL_CANDLES); }目前,我们只是从倒数第二条杠到指数为6的杠,即连续5条杠。但我希望我的专家顾问只搜索看涨的条形图,而不是连续搜索所有的条形图。如何充分地实施它?我已经按照尺寸进行了正确的过滤。而当一切都已经写好后,计数器将计算出带有nht,etvsvb参数的连续条数,如果有足够的此类条数,将返回函数的一些值。 Artyom Trishkin 2013.04.24 00:31 #3090 Mislaid: 你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过全局声明的变量来传递。 在init()中,你检查变量的值并找出最后一次去初始化的原因。它的作用!!!。 PS 显然不是每个人都意识到init()/deinit()不会改变全局声明的变量的值,除非在函数的语句中明确说明。 实际上,最好不要在init()中关闭订单。在那里MarketInfo()常常不能像预期的那样工作。 你在哪里看到我在init()中关闭头寸?我问了一个关于删除请求的问题,但我在哪里删除它们--我没有说,更没有问。你为什么这样认为呢? 1...302303304305306307308309310311312313314315316...432 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
正是如此。全局变量Reason得到了一个值,但它不是在deinit()中得到的,而是在init()中得到的,这样在运行init()时,你就可以看到上次去初始化的原因,并根据这个值执行某种操作。但它并没有发挥应有的作用。
你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过一个全局声明的变量来传递。 在init()中,你检查变量的值,并找出最后一次去初始化的原因。它的作用!!!。
PS 显然不是每个人都意识到init()/deinit()不会改变全局声明的变量的值,除非在函数的语句中明确说明。
实际上,最好不要在init()中关闭订单。在那里,MarketInfo()常常不能像预期那样工作。
你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过全局声明的变量来传递。 在init()中,你检查变量的值并找出最后一次去初始化的原因。它的作用!!!。
这表明你会用这个功能做什么。像这样的功能通常是通过历史来运行的。
我甚至无法想象在一个循环中运行这个函数...
我无法想象,这个函数会循环运行......
不客气。
我意识到,Artem在从M5 TF转换时有一个问题。那里有一个错误。我想检查一下是否是这样。也许这是MT4的一个错误。
不,这不是一个错误。这里是EA。将时间框架从M1改为H1
19:20:02 111 CADJPY,M15: 已初始化19:20:09 111 CADJPY,M15: DeinitReason 3
19:20:09 111 CADJPY,M15: 取消初始化
19:20:09 111 CADJPY,M15: uninit reason 3
19:20:09 Supertrend[1] CADJPY,M15: 脱离初始化状态
19:20:09 Supertrend[1] CADJPY,M15: uninit reason 3
19:20:09 HLC CADJPY,M15: 取消初始化
19:20:09 HLC CADJPY,M15: uninit reason 3
19:20:09 AMA optimized1 CADJPY,M15: 去初始化了
19:20:09 AMA optimized1 CADJPY,M15: uninit reason 3
19:20:09 AMA optimized1 CADJPY,M15: 去初始化了
19:20:09 AMA optimized1 CADJPY,M15: uninit reason 3
19:20:09 Supertrend[1] CADJPY,H1:初始化
19:20:09 HLC CADJPY,H1: 已初始化
19:20:09 AMA optimized1 CADJPY,H1: 已初始化
19:20:09 AMA optimized1 CADJPY,H1: 已初始化
19:20:09 111 CADJPY,H1:初始化
不,这不是一个错误。这里是EA。将时间框架从M1改为H1
这很好!我也有很多关于去初始化的理由。
实际上,最好不要在init()中关闭订单。在那里MarketInfo()常常不能像预期的那样工作。
我甚至无法想象这个函数会在循环中运行...
这很好!因为我也有很多与去初始化的原因相联系的东西。
是的,你不能。它写在帮助中。这是一个常见的事情。下面是要检查的最后一个变体。前面的方法不是很成功,因为init()/deinit()有时不能和print()交朋友。
我想知道如何写一个函数。这个想法是,当N个蜡烛 向某个方向滚动时,它应该计算出蜡烛的数量。BUT。为此,有几个条件,或者更准确地说,将是一个随着时间推移的清单。
比方说,趋势是向下的,......回调就会上涨。我想,如果有5个烛台上升,而且每个烛台都是看涨的,并且,例如,每个烛台的大小都大于i_sizeOfCurrBar,以及其他一些条件,那么就输出连续看涨的烛台数量,并从函数中返回一些结果。
什么是最好的写作方法?目前我已经开始写了,我明白我应该通过一个循环按条数运行,而且我应该以某种方式限制历史深度的视图,不是按固定的条数,而是按条数,用那些参数,我们对条件感兴趣。
这是我所拥有的,得到了。
目前,我们只是从倒数第二条杠到指数为6的杠,即连续5条杠。但我希望我的专家顾问只搜索看涨的条形图,而不是连续搜索所有的条形图。如何充分地实施它?
我已经按照尺寸进行了正确的过滤。
而当一切都已经写好后,计数器将计算出带有nht,etvsvb参数的连续条数,如果有足够的此类条数,将返回函数的一些值。
你已经被告知如何做了。在deinit()中,我们找出最后一次去初始化的原因,并通过全局声明的变量来传递。 在init()中,你检查变量的值并找出最后一次去初始化的原因。它的作用!!!。
PS 显然不是每个人都意识到init()/deinit()不会改变全局声明的变量的值,除非在函数的语句中明确说明。
实际上,最好不要在init()中关闭订单。在那里MarketInfo()常常不能像预期的那样工作。