新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1497 1...149014911492149314941495149614971498149915001501150215031504...1953 新评论 MarsNet 2021.06.09 05:00 #14961 大家好!请帮助我们有一个线人,它需要被删除......我可以让它计算净利润,而不考虑掉期、佣金吗?事先非常感谢 附加的文件: Indicate_orders.mq4 12 kb Screenshot_1.jpg 170 kb Alexey Viktorov 2021.06.09 06:16 #14962 ANDREY:大家好! 关于mql4中for()语句的问题。循环头包含一些变量值的连续减少或增加for(int A=14; A>=0;A--) orfor(int A=0; A<14;A++) orfor(int A=0; A<14;A=+2) 在给定的例子1或2中,假设 A变量增加或减少的大小总是相同。问题:如果A变量是一个时间框架值(1(分钟),5,15,30,60,240,1440),很明显,增加或减少这个变量的大小不能相等。在这种情况下,如何格式化for 头,使变量A以1开始,然后在每次迭代中以所需的分钟数非均匀地递增。有变量A的例子是一个特例。一般来说,如果循环头中的变量的变化应该在所需的时间间隔内不均匀地进行,我应该如何格式化一个循环。 还是有一些其他的操作者可以用于这些情况?但在我看来,与for 相比,其他运算符非常笨重。 请帮助我在for 语句的帮助下准确地解决我的问题,并准确地使用其标题。 因为要在 for 语句的正文中解决我的问题 ,当然,你可以使用if语句,但这将是非常麻烦的,for 语句将不得不为了过滤7个正确的值而进行1440次反复。 谢谢你。 这里有一个错误。 它应该是for(int A=0; A<14;A+=2) 我能想到的最简单的方法是把句号放入数组中 ENUM_TIMEFRAMES per[] = {PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1}; /********************Script program start function*******************/ void OnStart() { for(int i = 0; i < ArraySize(per); i++) { Print(EnumToString(per[i])); } }/******************************************************************/ /*****************************End program****************************/ Tretyakov Rostyslav 2021.06.09 06:37 #14963 Alexey Viktorov:最容易想到的是在一个数组中对周期进行评分 谢谢,我也可以使用它) ANDREY 2021.06.09 06:41 #14964 Alexey Viktorov:这里有一个错误。 它应该是for(int A=0; A<14;A+=2)我能想到的最简单的方法是将周期存储在一个数组中 非常感谢你的提示。事实证明,这比我想象的要简单得多。 我不明白的只有一件事。阵列的名称是per。而ENUM_TIMEFRAMES是一个变量类型的标识符?我在mql4 Reference中没有发现这样的标识符。只有 枚举 Перечисления - Целые типы - Типы данных - Основы языка - Справочник MQL4 docs.mql4.com Перечисления - Целые типы - Типы данных - Основы языка - Справочник MQL4 Tretyakov Rostyslav 2021.06.09 07:07 #14965 ANDREY:非常感谢你的提示。事实证明,这比我想象的要容易得多。 只有一件事我不明白。每一个数组的名称。而ENUM_TIMEFRAMES是一个变量类型的标识符?我在mql4 Reference中没有发现这样的标识符。只有 枚举 这里 Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL4 docs.mql4.com Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL4 ANDREY 2021.06.09 07:17 #14966 MakarFX:这里 我有没有理解错,你给我发了关于mql 5的信息?或者这些信息也适用于mql 4? Tretyakov Rostyslav 2021.06.09 07:19 #14967 ANDREY:我有没有理解错,你给我发了关于mql 5的信息?或者这些信息也适用于mql 4? 我纠正了它。 ANDREY 2021.06.09 07:22 #14968 MakarFX: 我已经改正了。 谢谢你。 Alexey Viktorov 2021.06.09 08:39 #14969 ANDREY:谢谢你。 一个小建议:立即习惯ENUM_TIMEFRAMES,忘掉作为分钟数的数字表示。 首先PERIOD_W1 比10080更有信息量,它更清楚地表明它是一个星期。 其次,在mql5中,周期并不对应于分钟数,在迁移到mql5的过程中,这不会是一个不必要的问题,这也是不可避免的。 好吧,如果你真的需要一个时期内的分钟数,那么你可以 int PeriodSeconds( ENUM_TIMEFRAMES period=PERIOD_CURRENT // период графика ); Print(PeriodSeconds(PERIOD_W1)/60); // = 10080 jarikn 2021.06.09 10:59 #14970 伙计们,帮我在指标上附加一个警报。 #property copyright "Subu" #property link "http://www.google.com" #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_width1 2 #property indicator_width2 2 #property indicator_chart_window double UpArrow[]; double DownArrow[]; extern int ShiftArrow = -2; extern bool FilterBullBearCandle = false; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0, DRAW_ARROW, EMPTY,2); SetIndexArrow(0, 233); SetIndexBuffer(0, UpArrow); SetIndexEmptyValue(0,0.0); SetIndexShift(0,ShiftArrow); SetIndexStyle(1, DRAW_ARROW, EMPTY,2); SetIndexArrow(1, 234); SetIndexBuffer(1, DownArrow); SetIndexEmptyValue(1,0.0); SetIndexShift(1,ShiftArrow); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit, i, counter; if(counted_bars<0) return(-1); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- for(i = 0; i <= limit; i++) { DownArrow[i] = 0; UpArrow[i] = 0; if(High[i+2]>High[i+1] && Low[i+2]>Low[i+1] && High[i+2]>High[i+3] && Low[i+2]>Low[i+3]) if( Open[i+1]>Close[i+1] && Close[i+2] > Close[i+1]) if(FilterBullBearCandle) { if( Open[i+2]>Close[i+2]) DownArrow[i] = High[i+2] +0.0003;//Low[i+2] + (High[i+2]-Low[i+2]); } else DownArrow[i] = High[i+2] +0.0003;//Low[i+2] + (High[i+2]-Low[i+2]); if(High[i+2]<High[i+1] && Low[i+2]<Low[i+1] && High[i+2]<High[i+3] && Low[i+2]<Low[i+3]) if( Open[i+1]<Close[i+1] && Close[i+2] < Close[i+1]) if(FilterBullBearCandle) { if( Open[i+2]<Close[i+2] ) UpArrow[i] = Low[i+2] - 0.0003;//High[i+2] - (High[i+2]-Low[i+2]); } else UpArrow[i] = Low[i+2] - 0.0003;//High[i+2] - (High[i+2]-Low[i+2]); } //---- return(0); } 1...149014911492149314941495149614971498149915001501150215031504...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好!
关于mql4中for()语句的问题。循环头包含一些变量值的连续减少或增加
for(int A=14; A>=0;A--) orfor(int A=0; A<14;A++) orfor(int A=0; A<14;A=+2) 在给定的例子1或2中,假设 A变量增加或减少的大小总是相同。
问题:如果A变量是一个时间框架值(1(分钟),5,15,30,60,240,1440),很明显,增加或减少这个变量的大小不能相等。在这种情况下,如何格式化for 头,使变量A以1开始,然后在每次迭代中以所需的分钟数非均匀地递增。
有变量A的例子是一个特例。一般来说,如果循环头中的变量的变化应该在所需的时间间隔内不均匀地进行,我应该如何格式化一个循环。
还是有一些其他的操作者可以用于这些情况?但在我看来,与for 相比,其他运算符非常笨重。 请帮助我在for 语句的帮助下准确地解决我的问题,并准确地使用其标题。 因为要在 for 语句的正文中解决我的问题 ,当然,你可以使用if语句,但这将是非常麻烦的,for 语句将不得不为了过滤7个正确的值而进行1440次反复。
谢谢你。
这里有一个错误。 它应该是for(int A=0; A<14;A+=2)
我能想到的最简单的方法是把句号放入数组中
最容易想到的是在一个数组中对周期进行评分
谢谢,我也可以使用它)
这里有一个错误。 它应该是for(int A=0; A<14;A+=2)
我能想到的最简单的方法是将周期存储在一个数组中
非常感谢你的提示。事实证明,这比我想象的要简单得多。
我不明白的只有一件事。阵列的名称是per。而ENUM_TIMEFRAMES是一个变量类型的标识符?我在mql4 Reference中没有发现这样的标识符。只有
非常感谢你的提示。事实证明,这比我想象的要容易得多。
只有一件事我不明白。每一个数组的名称。而ENUM_TIMEFRAMES是一个变量类型的标识符?我在mql4 Reference中没有发现这样的标识符。只有
这里
这里
我有没有理解错,你给我发了关于mql 5的信息?或者这些信息也适用于mql 4?
我有没有理解错,你给我发了关于mql 5的信息?或者这些信息也适用于mql 4?
我已经改正了。
谢谢你。
谢谢你。
一个小建议:立即习惯ENUM_TIMEFRAMES,忘掉作为分钟数的数字表示。
首先PERIOD_W1 比10080更有信息量,它更清楚地表明它是一个星期。
其次,在mql5中,周期并不对应于分钟数,在迁移到mql5的过程中,这不会是一个不必要的问题,这也是不可避免的。
好吧,如果你真的需要一个时期内的分钟数,那么你可以