新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 740 1...733734735736737738739740741742743744745746747...1953 新评论 psyman 2019.01.17 15:15 #7391 Taras Slobodyanik:在OnInit中对变量进行初始化(包括重新绘制对象)。 解释一下这是怎么回事。 我在创建了一个标签后把它加到了OnInit中 ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, y); ChartRedraw(); 但结果是一样的。 Taras Slobodyanik 2019.01.17 15:24 #7392 psyman: 解释一下这是怎么回事。 我在创建标签后将其添加到OnInit中 但结果是一样的。需要看到代码,那里有什么...ps.上面的代码工作正常(没有故障)。 (https://www.mql5.com/ru/forum/160683/page739#comment_10290585) 哎呀,虽然我把Bid变量换成了Bid0 Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам 2019.01.17www.mql5.com В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н... Ivan Rozhkov 2019.01.17 15:43 #7393 下午好,我如何写出当价格触及穆文吉时 开仓的订单? Taras Slobodyanik 2019.01.17 15:46 #7394 Ivan Rozhkov: 下午好,我如何写出当价格触及穆文吉时开仓的订单?if ((prev_bid>ma && curr_bid<=ma) || (prev_bid<ma && curr_bid>=ma)) //открывается ордер psyman 2019.01.17 16:18 #7395 Taras Slobodyanik:我必须看一下代码,看看有什么...ps.上述代码运行良好(没有故障)。 (https://www.mql5.com/ru/forum/160683/page739#comment_10290585) Oops. 虽然我把Bid变量替换成了Bid0忘了补充,这是我在5中测试。在MT4中,当你打开图表 时,垂直标记确实会迅速移动到位,不需要等待刻度线或移动鼠标。有几次在横移时出现了故障,只有通过重新编译指标才能克服。 Ilya Prozumentov 2019.01.17 16:39 #7396 psyman:试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-)而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。有谁能想到克服这种反常现象的方法? 如果我切换图表窗口,无论是向前还是向后切换,打印都会显示一个信息给我(我在MT4上,但MT4文档中没有写明图表切换可以作为CHARTEVENT_CHART_CHANGE 事件被捕获)。 void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_CHART_CHANGE) Print("graph"); } 但是,是的,这仍然是一种拐杖方法。我们需要找出为什么在切换到另一个图表时,Y坐标会有所不同。但看一下代码,我们可以得出结论,ChartTimePriceToXY 由于某种原因给出了不同的结果。 Taras Slobodyanik 2019.01.17 17:08 #7397 psyman:我忘了补充,我在5中测试这个。在MT4中,当图表被打开 时,垂直标记真的会迅速移动到合适的位置,不需要等待刻度线或移动鼠标。有几次在横移时出现了故障,只有通过重新编译指标才能克服。嗯,5中有很多 "功能"--从图表上的队列到从分钟创建条形图,以及在当前init之后触发前一个deinit) 因此,你需要检查条形图/图形/对象--在什么时候发生错误,并纠正它。 psyman 2019.01.17 17:47 #7398 Taras Slobodyanik: 一般来说--你需要检查条形/图形/物体--在哪一点上发生错误,并加以纠正。 如何做到这一点,从哪里开始? Taras Slobodyanik 2019.01.17 19:18 #7399 psyman: 如何做,从哪里开始?做一个随处可见的打印,即我们在oninit中打印出价(你也可以打印当前日期),然后在计算中也是如此...... 我可以心灵感应,故事并没有立即建立起来,条条框框是后来出现的。 psyman 2019.01.17 20:26 #7400 Taras Slobodyanik:在任何地方进行打印,即在oninit中打印出价(你也可以打印当前日期),然后在计算时也进行打印... 我心照不宣,这个故事没有时间立即建立,酒吧出现的时间较晚。对于下一个代码,一个图片的故事。 //+------------------------------------------------------------------+ //| !_clr_indicator.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window string objname="Bid"; input color Bid_color = clrCrimson; int OnInit() { int x,y; double Bid0 = SymbolInfoDouble(Symbol(), SYMBOL_BID); int width = (int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0); //ширина графика Print("1 Bid0 = ", Bid0, " x = ", x, " y = ", y," TimeCurrent()=", TimeCurrent() ); ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0); ObjectSetString(0, objname, OBJPROP_TEXT, DoubleToString(Bid0, _Digits-1)); ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12); ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color); ObjectSetString(0, objname, OBJPROP_FONT, "Verdana"); ChartTimePriceToXY(0, 0, TimeCurrent(), Bid0, x, y); Print("2 Bid0 = ", Bid0, " x = ", x, " y = ", y," TimeCurrent()=", TimeCurrent() ); ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, width-60); ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, y); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { int x2,y2; double Bid2 = SymbolInfoDouble(Symbol(), SYMBOL_BID); double cprice; datetime ctime; int cwindow=0; if(id==CHARTEVENT_CHART_CHANGE) { ChartTimePriceToXY(0, 0, TimeCurrent(), Bid2, x2, y2); Print("5 Bid2 = ", Bid2, " x2 = ", x2, " y2 = ", y2," TimeCurrent2()=", TimeCurrent() ); ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, y2); ChartXYToTimePrice(0,x2,x2,cwindow, ctime, cprice); } } void OnDeinit(const int reason) { ObjectDelete(0,objname); } 断开了网络,增加了一个指标 我切换到下一个图表 y2的值改变了,我回去了 y2已经返回了它的值,但标记被 "消失 "的值所计算我转动鼠标滚轮。 标记又回到了它的位置上! 1...733734735736737738739740741742743744745746747...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在OnInit中对变量进行初始化(包括重新绘制对象)。
解释一下这是怎么回事。
我在创建了一个标签后把它加到了OnInit中
但结果是一样的。
解释一下这是怎么回事。
我在创建标签后将其添加到OnInit中
但结果是一样的。
需要看到代码,那里有什么...
ps.上面的代码工作正常(没有故障)。
(https://www.mql5.com/ru/forum/160683/page739#comment_10290585)
哎呀,虽然我把Bid变量换成了Bid0
下午好,我如何写出当价格触及穆文吉时开仓的订单?
我必须看一下代码,看看有什么...
ps.上述代码运行良好(没有故障)。
(https://www.mql5.com/ru/forum/160683/page739#comment_10290585)
Oops. 虽然我把Bid变量替换成了Bid0
忘了补充,这是我在5中测试。在MT4中,当你打开图表 时,垂直标记确实会迅速移动到位,不需要等待刻度线或移动鼠标。有几次在横移时出现了故障,只有通过重新编译指标才能克服。
试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-)
而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。
有谁能想到克服这种反常现象的方法?
如果我切换图表窗口,无论是向前还是向后切换,打印都会显示一个信息给我(我在MT4上,但MT4文档中没有写明图表切换可以作为CHARTEVENT_CHART_CHANGE 事件被捕获)。
但是,是的,这仍然是一种拐杖方法。我们需要找出为什么在切换到另一个图表时,Y坐标会有所不同。但看一下代码,我们可以得出结论,ChartTimePriceToXY 由于某种原因给出了不同的结果。
我忘了补充,我在5中测试这个。在MT4中,当图表被打开 时,垂直标记真的会迅速移动到合适的位置,不需要等待刻度线或移动鼠标。有几次在横移时出现了故障,只有通过重新编译指标才能克服。
嗯,5中有很多 "功能"--从图表上的队列到从分钟创建条形图,以及在当前init之后触发前一个deinit)
因此,你需要检查条形图/图形/对象--在什么时候发生错误,并纠正它。
一般来说--你需要检查条形/图形/物体--在哪一点上发生错误,并加以纠正。
如何做到这一点,从哪里开始?
如何做,从哪里开始?
做一个随处可见的打印,即我们在oninit中打印出价(你也可以打印当前日期),然后在计算中也是如此......
我可以心灵感应,故事并没有立即建立起来,条条框框是后来出现的。
在任何地方进行打印,即在oninit中打印出价(你也可以打印当前日期),然后在计算时也进行打印...
我心照不宣,这个故事没有时间立即建立,酒吧出现的时间较晚。
对于下一个代码,一个图片的故事。
断开了网络,增加了一个指标
我切换到下一个图表
y2的值改变了,我回去了
y2已经返回了它的值,但标记被 "消失 "的值所计算我转动鼠标滚轮。
标记又回到了它的位置上!