指示器内的文本 - 页 3 12345 新评论 Wolfgang 2010.02.01 08:30 #21 supermagix:你可以找到移动 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 的最佳点如果我把OBJPROP_YDISTANCE的值改为500标签没有移动一个像素//--- create object ObjectCreate(0,objectName,OBJ_TEXT,window,0,0); //ObjectSetString(0,objectName,OBJPROP_TEXT,string(ExtRSIBuffer[rates_total-1])); ObjectSetString(0,objectName,OBJPROP_TEXT,DoubleToString(ExtRSIBuffer[rates_total-1],2)); ObjectSetInteger(0,objectName,OBJPROP_COLOR,Red); ObjectSetString(0,objectName,OBJPROP_FONT,"Arial"); ObjectSetInteger(0,objectName,OBJPROP_FONTSIZE,20); //ObjectSetInteger (0,objectName, OBJPROP_CORNER, corner); ObjectSetInteger(0,objectName,OBJPROP_XDISTANCE,0); ObjectSetInteger(0,objectName,OBJPROP_YDISTANCE,500); datetime tm[1]; CopyTime(_Symbol,_Period,0,1,tm); ObjectSetInteger(0,objectName,OBJPROP_TIME,tm[0]); ObjectSetDouble(0,objectName,OBJPROP_PRICE,ExtRSIBuffer[rates_total-1]); Rashid Umarov 2010.02.01 09:23 #22 walb99: 我怎样才能把标签放到右上角? 我们要研究这个问题,谢谢你。 antonio 2010.02.01 11:05 #23 Rosh:在写这种指标之前,你应该先学习一下MQL5。你犯了这么多尴尬的错误。 我正在努力学习,但不存在简单的MQL5教程或课程:我必须从错误中学习,并寻求你的帮助。我无法理解你写的这个指令。 int i=prev_calculated; if (i>0) prev_calculated--; for(;i<rates_total;i++) 编译时出现了错误。 Rashid Umarov 2010.02.01 15:08 #24 supermagix: 我正在努力学习,但不存在简单的教程或mql5的课程:我必须从错误中学习,并请求您的帮助。我不能理解你写的这个指令。当我编译时有一个错误。我打错了字,对不起。正确的是 int i=prev_calculated; if (i>0) i--; for(;i<rates_total;i++) Rashid Umarov 2010.02.01 16:09 #25 Rosh:我打错了,对不起。右边是 这里有更多正确的代码,请使用它。//+------------------------------------------------------------------+ //| CCIcolor.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property description "Relative Strength Index" //--- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_plots 3 //--- input parameters input int CCIPeriod=14; // Period for calculating the CCI input int CCIPeriodTurbo=6; // Period for calculating the TURBOCCI input ENUM_APPLIED_PRICE price1=PRICE_CLOSE; // Method of calculating //---- plot CCI_LINE #property indicator_label1 "CCI_LINE" #property indicator_type1 DRAW_LINE #property indicator_color1 Black #property indicator_style1 STYLE_SOLID #property indicator_width1 3 //---- plot CCI_TURBO_LINE #property indicator_label2 "CCI_TURBO_LINE" #property indicator_type2 DRAW_LINE #property indicator_color2 Navy #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //---- plot CCI_HISTOGRAM #property indicator_label3 "CCI_HISTO" #property indicator_type3 DRAW_COLOR_HISTOGRAM #property indicator_color3 Red,Green #property indicator_style3 STYLE_SOLID #property indicator_width3 2 //----- level #property indicator_level1 -100.0 #property indicator_level2 100.0 #property indicator_level3 -200.0 #property indicator_level4 200.0 #property indicator_level5 -50.0 #property indicator_level6 50.0 //--- indicator buffers double CCI_LINEBuffer[]; // CCI_LINE double CCI_TURBOBuffer[]; // CCI TURBO_LINE double HISTOGRAM[]; // HISTOGRAM double HISTOGRAMColor[]; // HISTOGRAM int copied; int CCIhandle; int CCI_TURBO_handle; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,CCI_LINEBuffer,INDICATOR_DATA);//buffer LINE SetIndexBuffer(1,CCI_TURBOBuffer,INDICATOR_DATA);//buffer Turbo SetIndexBuffer(2,HISTOGRAM,INDICATOR_DATA);//buffer Histogram SetIndexBuffer(3,HISTOGRAMColor,INDICATOR_COLOR_INDEX);//buffer Histogram //name of separate window IndicatorSetString(INDICATOR_SHORTNAME,"MYCCI"); //--- Create the indicator of CCI LINR CCIhandle=iCCI(NULL,0,CCIPeriod,price1); //--- Create the indicator of CCI TURBO CCI_TURBO_handle=iCCI(NULL,0,CCIPeriodTurbo,price1); //--- } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[] ) { //--- not all data may be calculated int calculated=BarsCalculated(CCIhandle); if(calculated<rates_total) { Print("Not all data of CCIhandle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } //--- not all data may be calculated calculated=BarsCalculated(CCI_TURBO_handle); if(calculated<rates_total) { Print("Not all data of CCI_TURBO_handle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } //--- we can copy not all data int to_copy; if(prev_calculated>rates_total || prev_calculated<0) to_copy=rates_total; else { to_copy=rates_total-prev_calculated; if(prev_calculated>0) to_copy++; } //---- get CCI buffers if(CopyBuffer(CCIhandle,0,0,to_copy,CCI_LINEBuffer)<=0) { Print("getting CCIhandle is failed! Error",GetLastError()); return(0); } if(CopyBuffer(CCI_TURBO_handle,0,0,to_copy,CCI_TURBOBuffer)<=0) { Print("getting CCI_TURBO_handle is failed! Error",GetLastError()); return(0); } int i=prev_calculated; if(i>0) i--; for(;i<rates_total;i++) { HISTOGRAM[i]=CCI_LINEBuffer[i]; if(CCI_LINEBuffer[i]<0) { HISTOGRAMColor[i]=0.0;//HISTOGRAM RED } if(CCI_LINEBuffer[i]>0) { HISTOGRAMColor[i]=1.0;//HISTOGRAM Green } } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ antonio 2010.02.01 20:01 #26 Rosh:这里有更多正确的代码,请使用它。我删除了这个结构 int i=prev_calculated; if(i>0) i--; /////// if(prev_calculated!=0) return(prev_calculated); for(;i<rates_total;i++) 因为直方图没有更新到每个价格变化。我认为问题可能出在(返回)上。是否正确?谢谢你的帮助...... 我正在做其他的修改..... Rashid Umarov 2010.02.01 20:13 #27 supermagix: 我删除了这一结构因为直方图没有更新到每个价格变化。我认为问题可能出在(返回)上。是正确的吗?谢谢你的帮助...... 我正在做其他的修改..... 你是对的,这是为调试目的而实施的。我已经从我的帖子中删除了它。 antonio 2010.02.02 21:41 #28 我已经修改了获得直方图颜色的程序,但并不奏效。我认为问题出在循环 FOR..... 的 counter.... 上,这是否正确? //+------------------------------------------------------------------+ //| CCIcolor.mq5 | //| Copyright 2009, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2009, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property description "CCI" //--- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_plots 3 //--- input parameters input int CCIPeriod=14; // Period for calculating the CCI input int CCIPeriodTurbo=6; // Period for calculating the TURBOCCI input ENUM_APPLIED_PRICE price1=PRICE_CLOSE; // Method of calculating //---- plot CCI_LINE #property indicator_label1 "CCI_LINE" #property indicator_type1 DRAW_LINE #property indicator_color1 Black #property indicator_style1 STYLE_SOLID #property indicator_width1 3 //---- plot CCI_TURBO_LINE #property indicator_label2 "CCI_TURBO_LINE" #property indicator_type2 DRAW_LINE #property indicator_color2 Navy #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //---- plot CCI_HISTOGRAM #property indicator_label3 "CCI_HISTO" #property indicator_type3 DRAW_COLOR_HISTOGRAM #property indicator_color3 Gray,Gold,Red,Green #property indicator_style3 STYLE_SOLID #property indicator_width3 2 //----- level #property indicator_level1 -100.0 #property indicator_level2 100.0 #property indicator_level3 -200.0 #property indicator_level4 200.0 #property indicator_level5 -50.0 #property indicator_level6 50.0 //--- indicator buffers double CCI_LINEBuffer[]; // CCI_LINE double CCI_TURBOBuffer[]; // CCI TURBO_LINE double HISTOGRAM[]; // HISTOGRAM double HISTOGRAMColor[]; // HISTOGRAM int copied; int CCIhandle; int CCI_TURBO_handle; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ void OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,CCI_LINEBuffer,INDICATOR_DATA);//buffer LINE SetIndexBuffer(1,CCI_TURBOBuffer,INDICATOR_DATA);//buffer Turbo SetIndexBuffer(2,HISTOGRAM,INDICATOR_DATA);//buffer Histogram SetIndexBuffer(3,HISTOGRAMColor,INDICATOR_COLOR_INDEX);//buffer Histogram //name of separate window IndicatorSetString(INDICATOR_SHORTNAME,"MYCCI"); //--- Create the indicator of CCI LINR CCIhandle=iCCI(NULL,0,CCIPeriod,price1); //--- Create the indicator of CCI TURBO CCI_TURBO_handle=iCCI(NULL,0,CCIPeriodTurbo,price1); //--- } //+------------------------------------------------------------------+ //| 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[]) { //--- not all data may be calculated int calculated=BarsCalculated(CCIhandle); if(calculated<rates_total) { Print("Not all data of CCIhandle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } //--- not all data may be calculated calculated=BarsCalculated(CCI_TURBO_handle); if(calculated<rates_total) { Print("Not all data of CCI_TURBO_handle is calculated (",calculated,"bars ). Error",GetLastError()); return(0); } //--- we can copy not all data int to_copy; if(prev_calculated>rates_total || prev_calculated<0) to_copy=rates_total; else { to_copy=rates_total-prev_calculated; if(prev_calculated>0) to_copy++; } //---- get CCI buffers if(CopyBuffer(CCIhandle,0,0,to_copy,CCI_LINEBuffer)<=0) { Print("getting CCIhandle is failed! Error",GetLastError()); return(0); } if(CopyBuffer(CCI_TURBO_handle,0,0,to_copy,CCI_TURBOBuffer)<=0) { Print("getting CCI_TURBO_handle is failed! Error",GetLastError()); return(0); } int i=prev_calculated; if(i>0) i--; for(;i<rates_total;i++) { HISTOGRAM[i]=CCI_LINEBuffer[i]; //--- set color histogram Long if(CCI_LINEBuffer[i+5]<0 && CCI_LINEBuffer[i+4]>0 && CCI_LINEBuffer[i+3]>0 && CCI_LINEBuffer[i+2]>0 && CCI_LINEBuffer[i+1]>0) HISTOGRAMColor[i]=1.0; // set color Yellow (only one histogram) } { if(CCI_LINEBuffer[i+5]>0 && CCI_LINEBuffer[i+4]>0 && CCI_LINEBuffer[i+3]>0 && CCI_LINEBuffer[i+2]>0 && CCI_LINEBuffer[i+1]>0); HISTOGRAMColor[i]=2.0; // set color Green } //--- set color histogram Short { if(CCI_LINEBuffer[i+5]>0 && CCI_LINEBuffer[i+4]<0 && CCI_LINEBuffer[i+3]<0 && CCI_LINEBuffer[i+2]<0 && CCI_LINEBuffer[i+1]<0) HISTOGRAMColor[i]=1.0; // set color Yellow (onli one histogram) } { if(CCI_LINEBuffer[i+5]<0 && CCI_LINEBuffer[i+4]<0 && CCI_LINEBuffer[i+3]<0 && CCI_LINEBuffer[i+2]<0 && CCI_LINEBuffer[i+1]<0) HISTOGRAMColor[i]=3.0; // set color Red } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ 我应该看到这一点。谢谢你的帮助 investeo 2010.02.04 02:49 #29 Rosh: 我们将研究这个问题,谢谢你。我做了一个概念验证的EA,通过使用不同的按键改变临时全局变量来与指标互动。 角部确实起作用,但必须记住,下角是相对于指标框架的,而不是时间线的--见视频。 不幸的是,视频上传在这个论坛上似乎不起作用 :( 目前,我把它放在http://www.youshare.com/Guest/c94bb3e9cfe6a424.flv.html(见全屏以获得最佳效果) 最好的结果。 antonio 2010.02.04 10:25 #30 经过多次测试,得出了这个结果。黑色和绿色的值=差异直方图黑色大值 = CCI的当前值 ...但我对直方图的颜色有问题..... 12345 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你可以找到移动 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 的最佳点
如果我把OBJPROP_YDISTANCE的值改为500
标签没有移动一个像素
我怎样才能把标签放到右上角?
在写这种指标之前,你应该先学习一下MQL5。你犯了这么多尴尬的错误。
我正在努力学习,但不存在简单的MQL5教程或课程:我必须从错误中学习,并寻求你的帮助。
我无法理解你写的这个指令。
编译时出现了错误。
我正在努力学习,但不存在简单的教程或mql5的课程:我必须从错误中学习,并请求您的帮助。
我不能理解你写的这个指令。
当我编译时有一个错误。
我打错了字,对不起。正确的是
我打错了,对不起。右边是
这里有更多正确的代码,请使用它。
这里有更多正确的代码,请使用它。
我删除了这个结构
因为直方图没有更新到每个价格变化。
我认为问题可能出在(返回)上。
是否正确?
谢谢你的帮助
...... 我正在做其他的修改.....
我删除了这一结构
因为直方图没有更新到每个价格变化。
我认为问题可能出在(返回)上。
是正确的吗?
谢谢你的帮助
...... 我正在做其他的修改.....
我已经修改了获得直方图颜色的程序,但并不奏效。
我认为问题出在循环 FOR..... 的 counter.... 上,这是否正确?
我应该看到这一点。
谢谢你的帮助
我们将研究这个问题,谢谢你。
我做了一个概念验证的EA,通过使用不同的按键改变临时全局变量来与指标互动。
角部确实起作用,但必须记住,下角是相对于指标框架的,而不是时间线的--见视频。
不幸的是,视频上传在这个论坛上似乎不起作用 :(
目前,我把它放在
http://www.youshare.com/Guest/c94bb3e9cfe6a424.flv.html
(见全屏以获得最佳效果)
最好的结果。
经过多次测试,得出了这个结果。
黑色和绿色的值=差异直方图
黑色大值 = CCI的当前值
...但我对直方图的颜色有问题.....