突破早晨的平地--哪些对? - 页 22 1...151617181920212223 新评论 gince 2013.04.17 10:59 #211 Dserg,你能不能制作另一个版本的指标http://Dserg-LinRegressionBreakout_v1.1.mq4,用通道开始时间和通道结束时间 代替Nlin。这将是非常令人感激的。 khorosh 2013.04.17 13:41 #212 gince:Dserg,你能不能制作另一个版本的指标http://Dserg-LinRegressionBreakout_v1.1.mq4,用通道开始时间和通道结束时间 代替Nlin。这将是非常感激的。如果一个新的通道不一定在前一个通道结束后形成,那就更好了。因为新的趋势往往在前一个通道结束之前就开始了。也就是说,应该有可能形成重叠的通道,而且为了使图片看起来更好,相邻的通道应该是不同的颜色(2种颜色就够了)。 gince 2013.04.17 14:52 #213 我自己也试过,但没有用。也许有人可以纠正它。//+------------------------------------------------------------------+ //| | //| Èíäèêàòîð äëÿ àâòîìàòè÷åñêîãî ïîñòðîåíèÿ ñóæåíèÿ | //| êàíàëîâ ëèíåéíîé ðåãðåññèè | //| https://www.mql5.com/ru/users/dserg | //+------------------------------------------------------------------+ #property copyright "Dserg, 2010" #property link "https://www.mql5.com/ru/users/dserg" //---- indicator settings #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 DeepSkyBlue #property indicator_color2 DeepSkyBlue #property indicator_color3 FireBrick #property indicator_color4 DeepSkyBlue #property indicator_color5 DeepSkyBlue #property indicator_color6 Yellow #property indicator_color7 HotPink #property indicator_color8 LawnGreen //---- buffers double B0[]; double B1[]; double Stop[]; double B3[]; double B4[]; double Up[]; double Dn[]; double Target[]; extern string S1="Ìèí. äëèíà êàíàëà ëèíåéíîé ðåãðåññèè"; extern int Nlin; extern int start = 20; extern int stop = 7; extern string S2="Ìàêñ. âûñîòà êàíàëà â ïóíêòàõ"; extern int r0=150; extern string S3="Öåëü ïðè ïðîáîå îòí. øèðèíû êàíàëà"; extern double t0=2.618; extern string S4="Èñïîëüçîâàòü äëÿ ðàñ÷¸òà Close,\n åñëè false - High/Low"; extern bool useClose=true; extern string S5="Êîëè÷åñòâî áàðîâ äëÿ ðàññ÷¸òà"; extern int Nbars=5000; bool isChannel; datetime chEnd; double a0; double b0; double range0; datetime PrevTime; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 3additional buffers are used for counting. //---- drawing settings SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(0, B0); SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(1, B1); SetIndexStyle(2,DRAW_ARROW,0,2); SetIndexBuffer(2, Stop); SetIndexStyle(3,DRAW_LINE,STYLE_DOT); SetIndexBuffer(3, B3); SetIndexStyle(4,DRAW_LINE,STYLE_DOT); SetIndexBuffer(4, B4); SetIndexStyle(5,DRAW_ARROW,0,1); SetIndexBuffer(5, Up); SetIndexArrow(5, 233); SetIndexStyle(6,DRAW_ARROW,0,1); SetIndexBuffer(6, Dn); SetIndexArrow(6, 234); SetIndexStyle(7,DRAW_ARROW,0,1); SetIndexBuffer(7, Target); SetIndexArrow(7, 231); SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0); SetIndexEmptyValue(2,0.0); SetIndexEmptyValue(3,0.0); SetIndexEmptyValue(4,0.0); SetIndexEmptyValue(5,0.0); SetIndexEmptyValue(6,0.0); SetIndexEmptyValue(7,0.0); SetIndexLabel(0,"Channel Low"); SetIndexLabel(1,"Channel High"); SetIndexLabel(2,"Stop/Reverse"); SetIndexLabel(3,"Channel Low Extended"); SetIndexLabel(4,"Channel High Extended"); SetIndexLabel(5,"BUY Signal"); SetIndexLabel(6,"SELL Signal"); SetIndexLabel(7,"Target"); isChannel=false; return(0); } int deinit() { } //--------------------------------------------------------------------------------------- int start() { Nlin = (24 - (start-stop))*60/Period(); Comment("Nlin = "+ Nlin); //if (iTime(NULL,PERIOD_D1,0)!=PrevTime) return(0); //PrevTime = iTime(NULL,PERIOD_D1,0); if(Bars-IndicatorCounted()==0) return(0); // int loopbegin = Bars - IndicatorCounted()+20*Nlin; int loopbegin = Nbars; int i,j; double a,b,c, sumy=0.0, sumx=0.0, sumxy=0.0, sumx2=0.0, h=0.0,l=0.0, range = 0.0; isChannel=false; for(i = loopbegin; i >= 0; i--) { B0[i]=0; B1[i]=0; B3[i]=0; B4[i]=0; Up[i]=0; Dn[i]=0; Stop[i]=0; Target[i]=0; } for(i = loopbegin; i >= 0; i--) { //ó íàñ óæå åñòü êàíàë, æä¸ì, ïîêà åãî ïðîáü¸ò if (isChannel) { //double up0=a0*(i-chEnd)+b0+range0; //double dn0=a0*(i-chEnd)+b0-range0; double up0=a0*i+b0+range0; double dn0=a0*i+b0-range0; B3[i]=up0; B4[i]=dn0; //ïðîâåðÿåì ïðîáèòèå //ââåðõ if (Open[i]>up0) { Up[i]=up0; Stop[i]=dn0; Target[i]=up0+(up0-dn0)*(t0-1); isChannel=false; //continue; } //âíèç if (Open[i]<dn0) { Dn[i]=dn0; Stop[i]=up0; Target[i]=dn0-(up0-dn0)*(t0-1); isChannel=false; //continue; } continue; } bool flag=false; for (j=0;j<Nlin+1;j++) { if (B3[i+j]>0.0&&!isChannel) { flag=true; } } if (flag) continue; a=0.0;b=0.0;c=0.0; sumx=0.0;sumy=0.0; sumxy=0.0;sumx2=0.0; h=0.0;l=0.0; //ñ÷èòàåì êàíàë ëèíåéíîé ðåãðåññèè îò i+Nlin äî i if(StrToTime(stop) != Hour())return(0); for(j=0; j<Nlin; j++) { sumy+=Close[i+j]; sumxy+=Close[i+j]*(i+j); sumx+=(i+j); sumx2+=(i+j)*(i+j); } c=sumx2*Nlin-sumx*sumx; if(c==0.0) { Alert("Error in linear regression!"); return(-1); } a=(sumxy*Nlin-sumx*sumy)/c; b=(sumy-sumx*a)/Nlin; //îïðåäåëÿåì ãðàíèöû êàíàëà for(j=0;j<Nlin;j++) { double LR=a*(i+j)+b; if (useClose) { if(Close[j+i]-LR > h) h = Close[i+j]-LR; if(LR - Close[i+j]> l) l = LR - Close[i+j]; } else { if(High[j+i]-LR > h) h = High[i+j]-LR; if(LR - Low[i+j]> l) l = LR - Low[i+j]; } } range = MathMax(l,h); //ïðîâåðêà øèðèíû êàíàëà //if (range<r0*Point) { //åñòü êàíàë, ñîõðàíÿåì isChannel=true; a0=a; b0=b; chEnd=iTime(NULL,0,i); range0=range; for (j=0;j<Nlin;j++) { B3[i+j]=a*(i+j)+b+range; B4[i+j]=a*(i+j)+b-range; B0[i+j]=a*(i+j)+b+range; B1[i+j]=a*(i+j)+b-range; } //} } return(0); } //+------------------------------------------------------------------+ Алексей Тарабанов 2013.04.17 18:54 #214 根据定义,你有B0[k]=B3[k]; B1[k]=B4[k]; k=anyone gince 2013.04.18 04:00 #215 tara: У Вас по определению получается B0[k]=B3[k]; B1[k]=B4[k]; k=любое tara: 根据定义,你可以得到B0[k]=B3[k]; B1[k]=B4[k]; k=任意位置|他是《Dserg》的作者。但它应该是这样的。B0[k]; B1[k]是STYLE_SOLID通道线,其他线是前两条STYLE_DOT 线的延伸。我试图改变代码中的内容,用粗体字标注。在开始时,我计算了条数,也就是通道的长度。然后这个通道每天画一次,检查是否有新的一天。然后我添加了一个时间检查。如果通道的时间已经过期,那么我们应该阅读它并绘制它。但这并不奏效。 Роман 2013.04.20 00:42 #216 没有读过这个主题。你在这里 看到了吗? gince 2013.04.20 16:31 #217 我想从不同的角度看问题,但研究需要一个指标。我不能自己写,也没有人纠正我的错误。我正在用手画通道,但我很讨厌从哪个通道画到哪个通道的条子。关于十个卡拉尔的历史,不能解决任何问题 Роман 2013.10.13 00:54 #218 这个话题很有意思。有一种深入的愿望... 这里也有关于TS的描述。 我将在这里发布我的发现,而不是在 "早晨平息 "主题中。 Роман 2014.05.15 15:02 #219 完全是在我的资料订阅中意外发现了这个话题。 谁在向这个方向挖掘? IMHO - 是时候深入挖掘了...... Yuriy Zaytsev 2014.05.15 18:48 #220 Roman.: 完全是在我的资料订阅中意外发现这个话题。 谁在向这个方向挖掘? IMHO - 是时候深入挖掘了...... 趋势是超级的。 在平坦的方向上,我从来没有进入过故障... 1...151617181920212223 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Dserg,你能不能制作另一个版本的指标http://Dserg-LinRegressionBreakout_v1.1.mq4,用通道开始时间和通道结束时间 代替Nlin。
这将是非常令人感激的。Dserg,你能不能制作另一个版本的指标http://Dserg-LinRegressionBreakout_v1.1.mq4,用通道开始时间和通道结束时间 代替Nlin。
这将是非常感激的。如果一个新的通道不一定在前一个通道结束后形成,那就更好了。因为新的趋势往往在前一个通道结束之前就开始了。也就是说,应该有可能形成重叠的通道,而且为了使图片看起来更好,相邻的通道应该是不同的颜色(2种颜色就够了)。
我自己也试过,但没有用。也许有人可以纠正它。
У Вас по определению получается B0[k]=B3[k]; B1[k]=B4[k]; k=любое
tara:
根据定义,你可以得到B0[k]=B3[k]; B1[k]=B4[k]; k=任意位置
|他是《Dserg》的作者。但它应该是这样的。B0[k]; B1[k]是STYLE_SOLID通道线,其他线是前两条STYLE_DOT 线的延伸。
我试图改变代码中的内容,用粗体字标注。在开始时,我计算了条数,也就是通道的长度。然后这个通道每天画一次,检查是否有新的一天。然后我添加了一个时间检查。如果通道的时间已经过期,那么我们应该阅读它并绘制它。
但这并不奏效。
这个话题很有意思。有一种深入的愿望...
这里也有关于TS的描述。
我将在这里发布我的发现,而不是在 "早晨平息 "主题中。
完全是在我的资料订阅中意外发现了这个话题。
谁在向这个方向挖掘?
IMHO - 是时候深入挖掘了......
完全是在我的资料订阅中意外发现这个话题。
谁在向这个方向挖掘?
IMHO - 是时候深入挖掘了......