初学者的问题 MQL5 MT5 MetaTrader 5 - 页 465 1...458459460461462463464465466467468469470471472...1503 新评论 Oksana Berenko 2015.10.31 07:19 #4641 kashi_ann:我做错了什么?这个指标没有任何输入参数吗?(我是指iCustom(...)函数)(我希望你这里只缺一个结尾的括号)既然你只复制了2个项目,你是否将它们复制到静态分配的缓冲区? Александр 2015.10.31 08:48 #4642 亲爱的。我打开了NT7的指标代码它包含如果( v>=a && v<b)我需要增加一个条件:不等于25是否正确?if ( v>=a && v<b && v<25 && v>25) Mikhail Tkachev 2015.10.31 09:20 #4643 Artyom Trishkin:1.可以iMaOnArray() 2.也许你看错了 "动量"?指标 --> 振荡器 --> 动量 3.你在子窗口的MAs很奇怪。你从哪里得到这一切?指标 --> 趋势 --> 移动平均线Artyom,谢谢你的回答,原来是在菜单里......我得到了错误的指标 :) 我在 "导航 "窗口中点击了Indicators\Momentum,但每次都被添加到一个新的子窗口中,看起来很混乱。 请您建议,如果经常重复这个过程,什么会对处理器造成较小的压力。 1) 将我的(复杂)指标放在一个子窗口中,并从这里取值 或 2)通过OnTime()读取指标值,使用(MQL4)iCustom。 如果我理解正确的话,在情况2)中,指标不在窗口中绘制,而是根据要求计算。然而,我不明白指标的可执行代码是加载一次还是每次调用时都加载 ... P.S. 第二个指标仍然是通过菜单添加到新的子窗口...如何在一个子窗口中把它添加到一个已经存在的指标上? Yury Kirillov 2015.10.31 09:57 #4644 Александр: Уважаемые,открыл код индикатора к NT7вижу в нём if ( v>=a && v<b)а мне надо добавить ещё условие: неравно числу 25правильно ли будет следующее?if ( v>=a && v<b && v<25 && v>25)永远不会成功,因为。"v<25 && v>25 "总是假的。它应该是这样的。v!=25 Александр 2015.10.31 10:39 #4645 Yury Kirillov:永远不会成功,因为。"v<25 && v>25 "总是假的。它应该是这样的。v!=25谢谢!是的。 if ( v>=a && v<b && (v<25|| v>25)) orif ( v>=a && v<b && v! =25) Yury Kirillov 2015.10.31 10:46 #4646 Александр:谢谢!另一个论坛建议:如果 ( ( v>=a && v<b && ( v<25|| v>25))在我看来,我会这样写。{if((v>=a)&&(v<b)&&(v!=25)) { //разные действия }}//if((v>=a)&&(v<b)&&(v!=25)) kashi_ann 2015.10.31 12:11 #4647 Oksana Berenko:这个指标没有任何输入参数吗?(我是指iCustom(...)函数)(我希望你错过了这里的结尾括号)既然你只复制了2个项目,你是否将它们复制到静态分配的缓冲区 中?该指标有很多的输入参数。我不明白括号在哪里丢失了。我恐怕不明白静态缓冲区是什么意思。如果你不介意的话,请解释一下。 Artyom Trishkin 2015.11.01 00:03 #4648 Mike:Artem,谢谢你的回答,原来它在菜单里......我把指标放在了错误的地方:) 我在导航窗口中点击了Indicators\Momentum,但每次都被添加到一个新的子窗口中,看起来很乱。 请您建议,如果经常重复这个过程,什么会对处理器造成较小的压力。 1) 将我的(复杂)指标放在一个子窗口中,并从这里取值 或 2)通过OnTime()读取指标值,使用(MQL4)iCustom。 如果我理解正确的话,在情况2)中,指标不在窗口中绘制,而是根据要求计算。然而,我不明白指标的可执行代码是加载一次还是每次调用时都加载 ... P.S. 第二个指标仍然是通过菜单添加到新的子窗口...如何在一个子窗口中把它添加到一个已经存在的指标上?当你通过iCustom()调用一个指标时,它的缓冲区不会显示在窗口中,但据我所知(在旧版本的MT中肯定是这样),指标显示的所有图形对象都显示在图表窗口中。要把一个指标放在另一个指标的窗口中,用鼠标把它从导航仪窗口拖到需要的指标窗口。关于更少的处理器时间消耗 - 没有检查,不知道。 [删除] 2015.11.01 07:21 #4649 帮助我制定条件,完成想法,根据条件在图上打上标记是多么容易?//+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ void OnTick() { // скорость тиков int nTicksSpeed = TicksSpeed(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ int TicksSpeed() { MqlTick oTicks[5]; ZeroMemory(oTicks); int nTicksCopied = CopyTicks(_Symbol, oTicks, COPY_TICKS_TRADE, 0, 5); int nSpeed = 0; if(nTicksCopied > 0) { // скорость роста if(oTicks[0].bid > oTicks[1].bid) { if(oTicks[4].bid > 0 && oTicks[0].bid > oTicks[1].bid && oTicks[1].bid > oTicks[2].bid && oTicks[2].bid > oTicks[3].bid && oTicks[3].bid > oTicks[4].bid) nSpeed = 4; else if(oTicks[3].bid > 0 && oTicks[0].bid > oTicks[1].bid && oTicks[1].bid > oTicks[2].bid && oTicks[2].bid > oTicks[3].bid) nSpeed = 3; else if(oTicks[2].bid > 0 && oTicks[0].bid > oTicks[1].bid && oTicks[1].bid > oTicks[2].bid) nSpeed = 2; else if(oTicks[1].bid > 0 && oTicks[0].bid > oTicks[1].bid) nSpeed = 1 ; } // скорость снижения if(oTicks[0].bid < oTicks[1].bid) { if(oTicks[4].bid > 0 && oTicks[0].bid < oTicks[1].bid && oTicks[1].bid < oTicks[2].bid && oTicks[2].bid < oTicks[3].bid && oTicks[3].bid < oTicks[4].bid) nSpeed = -4; else if(oTicks[3].bid > 0 && oTicks[0].bid < oTicks[1].bid && oTicks[1].bid < oTicks[2].bid && oTicks[2].bid < oTicks[3].bid) nSpeed = -3; else if(oTicks[2].bid > 0 && oTicks[0].bid < oTicks[1].bid && oTicks[1].bid < oTicks[2].bid) nSpeed = -2; else if(oTicks[1].bid > 0 && oTicks[0].bid < oTicks[1].bid) nSpeed = -1 ; } } return(nSpeed); } //+------------------------------------------------------------------+ if( nTickSpeed==-1) отмечаем это место на графике g_Label.Text("-1 ") if( nTickSpeed==-2) отмечаем это место на графике g_Label.Text("-2 ") if (nTickSpeed==-3) отмечаем это место на графике g_Label.Text("-3 ") if( nTickSpeed==-4) отмечаем это место на графике g_Label.Text("-4 ") if( nTickSpeed==1) отмечаем это место на графике g_Label.Text("1 ") if( nTickSpeed==2) отмечаем это место на графике g_Label.Text("2 ") if( nTickSpeed==3) отмечаем это место на графике g_Label.Text("3 ") if( nTickSpeed==4) отмечаем это место на графике g_Label.Text("4 ") Vladimir Karputov 2015.11.01 08:08 #4650 你可以把结尾处的 "如果 "换成 "如果"。 switch(nTickSpeed) { case -4: g_Label.Text("-4"); break; case -3: g_Label.Text("-3"); break; case -2: g_Label.Text("-2"); break; case -1: g_Label.Text("-1"); break; case 1: g_Label.Text("1"); break; case 2: g_Label.Text("2"); break; case 3: g_Label.Text("3"); break; case 4: g_Label.Text("4"); break; } 1...458459460461462463464465466467468469470471472...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我做错了什么?
这个指标没有任何输入参数吗?(我是指iCustom(...)函数)
(我希望你这里只缺一个结尾的括号)
既然你只复制了2个项目,你是否将它们复制到静态分配的缓冲区?
我打开了NT7的指标代码
它包含如果( v>=a && v<b)
我需要增加一个条件:不等于25
是否正确?
if ( v>=a && v<b && v<25 && v>25)
Artyom Trishkin:
1.可以iMaOnArray()
2.也许你看错了 "动量"?指标 --> 振荡器 --> 动量
3.你在子窗口的MAs很奇怪。你从哪里得到这一切?指标 --> 趋势 --> 移动平均线
Artyom,谢谢你的回答,原来是在菜单里......我得到了错误的指标 :) 我在 "导航 "窗口中点击了Indicators\Momentum,但每次都被添加到一个新的子窗口中,看起来很混乱。
请您建议,如果经常重复这个过程,什么会对处理器造成较小的压力。
1) 将我的(复杂)指标放在一个子窗口中,并从这里取值
或
2)通过OnTime()读取指标值,使用(MQL4)iCustom。
如果我理解正确的话,在情况2)中,指标不在窗口中绘制,而是根据要求计算。然而,我不明白指标的可执行代码是加载一次还是每次调用时都加载 ...
P.S. 第二个指标仍然是通过菜单添加到新的子窗口...如何在一个子窗口中把它添加到一个已经存在的指标上?
Александр:
Уважаемые,
открыл код индикатора к NT7
вижу в нём if ( v>=a && v<b)
а мне надо добавить ещё условие: неравно числу 25
правильно ли будет следующее?
if ( v>=a && v<b && v<25 && v>25)
永远不会成功,因为。"v<25 && v>25 "总是假的。
它应该是这样的。
v!=25
永远不会成功,因为。"v<25 && v>25 "总是假的。
它应该是这样的。
v!=25
谢谢!是的。
if ( v>=a && v<b && (v<25|| v>25)) orif ( v>=a && v<b && v! =25)
谢谢!另一个论坛建议:如果 ( ( v>=a && v<b && ( v<25|| v>25))
在我看来,我会这样写。
这个指标没有任何输入参数吗?(我是指iCustom(...)函数)
(我希望你错过了这里的结尾括号)
既然你只复制了2个项目,你是否将它们复制到静态分配的缓冲区 中?
该指标有很多的输入参数。
我不明白括号在哪里丢失了。
我恐怕不明白静态缓冲区是什么意思。如果你不介意的话,请解释一下。
Artem,谢谢你的回答,原来它在菜单里......我把指标放在了错误的地方:) 我在导航窗口中点击了Indicators\Momentum,但每次都被添加到一个新的子窗口中,看起来很乱。
请您建议,如果经常重复这个过程,什么会对处理器造成较小的压力。
1) 将我的(复杂)指标放在一个子窗口中,并从这里取值
或
2)通过OnTime()读取指标值,使用(MQL4)iCustom。
如果我理解正确的话,在情况2)中,指标不在窗口中绘制,而是根据要求计算。然而,我不明白指标的可执行代码是加载一次还是每次调用时都加载 ...
P.S. 第二个指标仍然是通过菜单添加到新的子窗口...如何在一个子窗口中把它添加到一个已经存在的指标上?
当你通过iCustom()调用一个指标时,它的缓冲区不会显示在窗口中,但据我所知(在旧版本的MT中肯定是这样),指标显示的所有图形对象都显示在图表窗口中。
要把一个指标放在另一个指标的窗口中,用鼠标把它从导航仪窗口拖到需要的指标窗口。
关于更少的处理器时间消耗 - 没有检查,不知道。
帮助我制定条件,完成想法,根据条件在图上打上标记是多么容易?
你可以把结尾处的 "如果 "换成 "如果"。