新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 739 1...732733734735736737738739740741742743744745746...1953 新评论 novichok2018 2019.01.17 07:55 #7381 Ilya Prozumentov:这要靠作者自己去想。最好把OnTick()的代码拿来。我联系了作者。我没有帮助。他自己几乎不知道该怎么做。"在这里检查你的条件,我不会帮助你"。我可以(!)对我的那部分代码负责,但我不能对你的负责"。 下面是OnTick()的代码。 void OnTick() {RefreshRates(); //--- string TextDisplay=""; /* Check News */ bool trade=true; string nstxt=""; int NewsPWR=0; datetime nextSigTime=0; if(MidleNews || HighNews) {RefreshRates(); if(SourceNews==0) {// Investing RefreshRates(); if(CheckInvestingNews(NewsPWR,nextSigTime)){ trade=false; } // news time } } if(trade) {// No News, Trade enabled nstxt="No News, Waiting"; if(ObjectFind(0,"NS_Label")!=-1){ ObjectDelete(0,"NS_Label"); } }else{// waiting news , check news power color clrT=LowColor; if(NewsPWR>3) { nstxt= "Waiting Non-farm Payrolls News"; clrT = HighColor; }else{ if(NewsPWR>2) { nstxt= "Waiting High News"; clrT = HighColor; }else{ if(NewsPWR>1) { nstxt= "Waiting Midle News"; clrT = MidleColor; }else{ nstxt= "Waiting Low News"; clrT = LowColor; } } } // Make Text Label if(nextSigTime>0){ nstxt=nstxt+" "+TimeToString(nextSigTime,TIME_MINUTES); } if(ObjectFind(0,"NS_Label")==-1) { LabelCreate(StringConcatenate(nstxt),clrT); } if(ObjectGetInteger(0,"NS_Label",OBJPROP_COLOR)!=clrT) { ObjectDelete(0,"NS_Label"); LabelCreate(StringConcatenate(nstxt),clrT); } } nstxt="\n"+nstxt; /* End Check News */ if(trade && oppoz) {// No news and Trade Allowed Fun_New_Bar(); if(New_Bar) { Alert("Открыть позицию"); ManageTrade(); // Your trade functions } oppoz=false; } TextDisplay=TextDisplay+nstxt; Comment(TextDisplay); return; } novichok2018 2019.01.17 08:01 #7382 Alekseu Fedotov:尝试更换 用这句话。 我想这是在工作!已经有20分钟没有消息了。让我们看看它对下午1点的新闻有何反应。 Aliaksei Karalkou 2019.01.17 08:44 #7383 Artyom Trishkin: 这个数字是NaN - 不是一个数字 - 不是一个数字。尝试在Z-count计算中使数字正常化谢谢你,这很有帮助。 奇怪的是,MathCeil() 不起作用。NormalizeDouble() number helped - == Z-score equals = -92233720368547.77 .数字很赞,但平衡性几乎没有变化 novichok2018 2019.01.17 10:09 #7384 Alekseu Fedotov:尝试更换 用这句话。 哦,那太好了一切都按照设置工作,没有出现故障。谢谢你! 我喜欢简单的解决方案和简单的代码。 也感谢每一个关注并试图帮助一个完全业余的人的人。 psyman 2019.01.17 10:14 #7385 我把价格标记附在Bid上,观察到它工作正常,切换到另一个图表,看到垂直坐标立即移动了大约15像素。 我回去了,标记 "逃跑 "了,直到下一次打勾才到位,然后它又回到了 "祖国"。这可能是什么原因造成的? //+------------------------------------------------------------------+ //| !_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 Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); int width = (int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0); //ширина графика ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0); ObjectSetString(0, objname, OBJPROP_TEXT, DoubleToString(Bid, _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(), Bid, x, y); ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, width-60); Print("y=", y, " ", ObjectGetInteger(0,objname,OBJPROP_TIME,0)); 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[]) { int x2,y2; double Bid2 = SymbolInfoDouble(Symbol(), SYMBOL_BID); ChartTimePriceToXY(0, 0, TimeCurrent(), Bid2, x2, y2); ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, y2); Print("x2=", x2, " y2=", y2, " ", " Bid=",Bid2); return(rates_total); } void OnDeinit(const int reason) { ObjectDelete(0,objname); } Alexey Viktorov 2019.01.17 10:36 #7386 psyman:我把价格标记附在Bid上,观察到它工作正常,切换到另一个图表,看到垂直坐标立即移动了大约15像素。 我回去了,标记 "逃跑 "了,直到下一次打勾才到位,然后它又回到了 "祖国"。这可能是什么原因造成的? 因为图表 只在下一个tick上重绘。但现在设置强制重绘图表是很危险的。MT5的前两个版本并不是幼稚的刹车。我不知道MT4的情况如何,我应该检查一下。 psyman 2019.01.17 10:43 #7387 Alexey Viktorov:这种情况可以得到解决,因为图表 只在下一个tick上重新绘制。但强行重新绘制图表是危险的。MT5的前两个版本相当复杂。我不知道在MT4中是怎样的,我应该检查一下。这就是后果,目前还不清楚是什么导致了这种转变。 同样的事情发生在水平方向上,最令人不快的是,标记与价格重叠,我剪掉了大部分的代码来了解情况。 如何摆脱这种情况? Ilya Prozumentov 2019.01.17 11:12 #7388 psyman:这就是后果,目前还不清楚是什么导致了这种转变。 同样的事情发生在水平方向上,最令人不快的是,标记与价格重叠,我剪掉了大部分的代码来了解情况。 如何摆脱这种情况?尝试以同样的方式并在CHARTEVENT_CHART_CHANGE事件 中更新标记坐标 if(id==CHARTEVENT_MOUSE_MOVE || id==CHARTEVENT_CHART_CHANGE) psyman 2019.01.17 13:24 #7389 Ilya Prozumentov:尝试以与CHARTEVENT_CHART_CHANGE事件 相同的方式更新标记坐标 试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-) 而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。 有谁能想到克服这种反常现象的方法? Taras Slobodyanik 2019.01.17 13:50 #7390 psyman: 试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-) 而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。 有谁能想到克服这种反常现象的方法?在OnInit中对变量进行初始化(包括对象的重绘)。 1...732733734735736737738739740741742743744745746...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这要靠作者自己去想。最好把OnTick()的代码拿来。
我联系了作者。我没有帮助。他自己几乎不知道该怎么做。"在这里检查你的条件,我不会帮助你"。
我可以(!)对我的那部分代码负责,但我不能对你的负责"。
下面是OnTick()的代码。
尝试更换
用这句话。
我想这是在工作!已经有20分钟没有消息了。让我们看看它对下午1点的新闻有何反应。
这个数字是NaN - 不是一个数字 - 不是一个数字。尝试在Z-count计算中使数字正常化
谢谢你,这很有帮助。
奇怪的是,MathCeil() 不起作用。NormalizeDouble() number helped - == Z-score equals = -92233720368547.77 .数字很赞,但平衡性几乎没有变化
尝试更换
用这句话。
哦,那太好了一切都按照设置工作,没有出现故障。谢谢你!
我喜欢简单的解决方案和简单的代码。
也感谢每一个关注并试图帮助一个完全业余的人的人。
我把价格标记附在Bid上,观察到它工作正常,切换到另一个图表,看到垂直坐标立即移动了大约15像素。
我回去了,标记 "逃跑 "了,直到下一次打勾才到位,然后它又回到了 "祖国"。这可能是什么原因造成的?
我把价格标记附在Bid上,观察到它工作正常,切换到另一个图表,看到垂直坐标立即移动了大约15像素。
我回去了,标记 "逃跑 "了,直到下一次打勾才到位,然后它又回到了 "祖国"。这可能是什么原因造成的?
因为图表 只在下一个tick上重绘。但现在设置强制重绘图表是很危险的。MT5的前两个版本并不是幼稚的刹车。我不知道MT4的情况如何,我应该检查一下。
这种情况可以得到解决,因为图表 只在下一个tick上重新绘制。但强行重新绘制图表是危险的。MT5的前两个版本相当复杂。我不知道在MT4中是怎样的,我应该检查一下。
这就是后果,目前还不清楚是什么导致了这种转变。
同样的事情发生在水平方向上,最令人不快的是,标记与价格重叠,我剪掉了大部分的代码来了解情况。
如何摆脱这种情况?
这就是后果,目前还不清楚是什么导致了这种转变。
同样的事情发生在水平方向上,最令人不快的是,标记与价格重叠,我剪掉了大部分的代码来了解情况。
如何摆脱这种情况?
尝试以同样的方式并在CHARTEVENT_CHART_CHANGE事件 中更新标记坐标
尝试以与CHARTEVENT_CHART_CHANGE事件 相同的方式更新标记坐标
试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-)
而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。
有谁能想到克服这种反常现象的方法?
试过了,你必须移动鼠标才能把标记找回来。这是同一根拐杖,但用的是不同的手 :-)
而在图表之间切换CHARTEVENT_CHART_CHANGE并不是一个事件。
有谁能想到克服这种反常现象的方法?
在OnInit中对变量进行初始化(包括对象的重绘)。