//+------------------------------------------------------------------+|! channels.mq4 |//|版权所有? 2011 年,公司 |//|http://www.metaquotes.net |//+------------------------------------------------------------------+#property 版权所有"尼古拉 Semko SemkoNV@bk.ru"#property 链接"http://www.7ko.org"/ / 中的发展赞美和责骂: SemkoNV@bk.ru#property indicator_chart_window#property 1 indicator_buffers#property indicator_width1 1#property 0 indicator_minimum---指标参数extern int 开始 = 0;extern int BarAnaliz = 400;extern 双 k_shirina = 4;extern int tochnost = 50;extern 双基膜 = 0.55;extern 双 MinShirina = 0;extern 双 MaxShirina = 10000;extern bool 船票 = true;extern bool maxmin = true;extern bool color_fill = true;---指标缓冲器双管 [];双事儿 [];双 Vertikal [];双 Shirina [2000];双 ShirinaU [2000];双 ShirinaD [2000];双 CanalR [2000];双成功飞跃大西洋 [2000];双 Kanals [20] [9];int preBars = 0;int p [9] = {43200,10080,1440,240,60,30,15,5,1};int FinishL;刻度线 int = 0;int 栏 = 0;int b = 0;日期时间 x 1 x 2;双 sumPlus = 0;双 sumMinus = 0;双 yOptR,yOptL;int prexL = 0;int prexR = 0;双马 = 0;int prevxR =-; 5int prevp = 0;int prevper =-; 5双 sum1 = 0;双 sum2 = 0;双 curdeltaMax =-10000;双 curdeltaMin = 10000;空 deinit() {Comment("")为 (int 我 = 0; 我 < 20; i + +) {ObjectDelete("LineCanal9_"+DoubleToStr(i,0))ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"向上");ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"向下");ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"TRIUP");ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"TRIDown");ObjectDelete("Vertical_9_"+DoubleToStr(i,0)) } }//+------------------------------------------------------------------+//|自定义指标初始化函数 |//+------------------------------------------------------------------+int init) {---绘图设置IndicatorDigits(Digits+1)---指标缓冲映射LoadHist()---指标缓冲映射 SetIndexBuffer(0,Canals)IndicatorDigits(20)---进行的初始化return(0) }//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////int start) {LoadHist()RefreshRates()return(0)如果 (preBars = = 酒吧) return(0);preBars = 酒吧; int; j=AllCanals()运河 [0] = j;如果 (j > 0) {为 (int 我 = 0; 我BildCanals (j); }return(0) }//+------------------------------------------------------------------+///////////////////////////// Functions ////////////////////////////////+------------------------------------------------------------------+int BildCanals (int j){字符串名称;日期时间 x 1 x 2;双 y1、 y2;int color_i [] = {C 200,0,0',C 200,100,0',C 160,160,0',C 100,200,0',C'0,200,0',C'0,200,100',C'0,180,180',C'0,60,120',C'0,0,200',C 100,0,200',C 160,0,160',C '160、 80、 120'};int color_i2 [] = {C 80,0,0',C 80,40,0',C 60,60,0',C 40,80,0',C'0,60,0',C'0,70,50',C'0,50,50',C'0,20,40',C'0,0,80',C 40,0,80',C 50,0,60',C '60、 20、 50'};为 (int 我 = j; < 20; i + +) {ObjectDelete("LineCanal9_"+DoubleToStr(i,0))ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"向上");ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"向下");ObjectDelete("Vertical_9_"+DoubleToStr(i,0))ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"TRIUP");ObjectDelete("LineCanal9_"+DoubleToStr(i,0)+"TRIDown");Kanals [i] [2] = 0;Kanals [i] [1] = 0;Kanals [i] [0] = 0; } 字符串 comm ="通道数目 =";comm = comm + j;为 (我 = 0; 我{comm = comm +"
"+"频道吗?"+ DoubleToStr((i+1),0) +": 宽度-"+ DoubleToStr(Kanals[i][0],0) +",通道长度-"+ DoubleToStr(Kanals[i][6],0) +"酒吧上期"+ DoubleToStr(Kanals[i][2],0);}Comment(comm) 为 (我 = 0; 我 {x 1 = iTime(NULL,0,Start);y1 = Kanals [i] [3];如果 (iTime(NULL,0,(Bars-1)) < =iTime(NULL,Kanals[i][2],Kanals[i][1])) {x 2 = iTime(NULL,Kanals[i][2],Kanals[i][1]);y2 = Kanals [i] [4]; }其他 {x 2 = iTime(NULL,0,(Bars-1));如果 (Kanals[i][6]!=0) y2 = y1-((iBarShift(NULL,Kanals[i][2],x2,FALSE)-iBarShift(NULL,Kanals[i][2],x1,FALSE))/Kanals[i][6])*(y1-Kanals[i][4]); } 名称 ="LineCanal9_"+DoubleToStr(i,0);如果 (ObjectFind(name)==-1) {如果 (!。ObjectCreate(name, OBJ_TREND, 0,x2,y2,x1,y1)) 的评论 ("错误 0 =",GetLastError());ObjectSet (名称,OBJPROP_RAY,FALSE);ObjectSet (名称,OBJPROP_COLOR,color_i[i]);ObjectSet (名称,OBJPROP_STYLE,STYLE_DOT);ObjectSet (名称,OBJPROP_RAY,船票); 如果 (maxmin = = true)将其 (名称 +"向上",OBJ_TREND,0,x2,(y2+Point*Kanals[i][7]),x1,(y1+Point*Kanals[i][7]));其他将其 (名称 +"向上",OBJ_TREND,0,x2,(y2+k_shirina*Point*Kanals[i][0]),x1,(y1+k_shirina*Point*Kanals[i][0]));ObjectSet (名称 +"向上",OBJPROP_RAY,FALSE);ObjectSet (名称 +"向上",OBJPROP_COLOR,color_i[i]);ObjectSet (名称 +"向上"、 OBJPROP_STYLE、 STYLE_DASH);ObjectSet (名称 +"向上",OBJPROP_RAY,船票); 如果 (maxmin = = true)将其 (名称 +"下",OBJ_TREND,0,x2,(y2+Point*Kanals[i][8]),x1,(y1+Point*Kanals[i][8]));其他将其 (名称 +"下",OBJ_TREND,0,x2,(y2-k_shirina*Point*Kanals[i][0]),x1,(y1-k_shirina*Point*Kanals[i][0]));ObjectSet (名称 +"下",OBJPROP_RAY,FALSE);ObjectSet (名称 +"下",OBJPROP_COLOR,color_i[i]);ObjectSet (名称 +"下"、 OBJPROP_STYLE、 STYLE_DASH);ObjectSet (名称 +"下",OBJPROP_RAY,船票); 如果 (color_fill = = true) {将其 (名称 +"TRIUP",OBJ_TRIANGLE,0,x2,(y2+Point*Kanals[i][7]),x1,(y1+Point*Kanals[i][7]),x2,(y2+Point*Kanals[i][8]));ObjectSet (名称 +"TRIUP",OBJPROP_COLOR,color_i2[i]);将其 (名称 +"TRIDown",OBJ_TRIANGLE,0,x1,(y1+Point*Kanals[i][7]),x1,(y1+Point*Kanals[i][8]),x2,(y2+Point*Kanals[i][8]));ObjectSet (名称 +"TRIDown",OBJPROP_COLOR,color_i2[i]); } 如果 (!。ObjectCreate("Vertical_9_"+DoubleToStr(i,0),OBJ_VLINE,0,x 2,8)) 的评论 ("硒栳赅 0 =",GetLastError());ObjectSet("Vertical_9_"+DoubleToStr(i,0),OBJPROP_COLOR,color_i[i]);ObjectSet("Vertical_9_"+DoubleToStr(i,0),OBJPROP_STYLE,STYLE_DOT); }其他 {如果 (!。ObjectMove (名称,0,x 2,y2)) 的评论 ("硒栳赅 1 =",GetLastError());如果 (!。ObjectMove (名称,1,x 1,y1)) 的评论 ("硒栳赅 2 =",GetLastError()); 如果 (maxmin = = true) {ObjectMove (名称 +"向上",0,x 2,y2+Point*Kanals[i][7]);ObjectMove (名称 +"向上",1,x 1,y1+Point*Kanals[i][7]); ObjectMove (名称 +"向下",0,x 2,y2+Point*Kanals[i][8]);ObjectMove (名称 +"向下",1,x 1,y1+Point*Kanals[i][8]); 如果 (color_fill = = true) {ObjectMove (名称 +"TRIUP",0,x2,(y2+Point*Kanals[i][7]));ObjectMove (名称 +"TRIUP",1,x1,(y1+Point*Kanals[i][7]));ObjectMove (名称 +"TRIUP",2,x2,(y2+Point*Kanals[i][8])); ObjectMove (名称 +"TRIDown",0,x1,(y1+Point*Kanals[i][7]));ObjectMove (名称 +"TRIDown",1,x1,(y1+Point*Kanals[i][8]));ObjectMove (名称 +"TRIDown",2,x2,(y2+Point*Kanals[i][8])); } }其他 {ObjectMove (名称 +"向上",0,x 2,y2+k_shirina*Point*Kanals[i][0]);ObjectMove (名称 +"向上",1,x 1,y1+k_shirina*Point*Kanals[i][0]); ObjectMove (名称 +"向下",0,x 2,y2-k_shirina*Point*Kanals[i][0]);ObjectMove (名称 +"向下",1,x 1,y1-k_shirina*Point*Kanals[i][0]); } } }return(0)}////////////////////////////////////////////////////////AllCanals() int{int i1 = 0,i2,i3;int k = 0;int 我 = 0;每; intint; lastperint St,鳍;datetime S,F,prevS,CurStart;int; lastmin双工频;双 premin;ArrayInitialize(Kanals,0)lastper = 9;CurStart=iTime(NULL,Period(),Start)如果 (启动 = = 0) CurStart=iTime(NULL,1,0);prevS=iTime(NULL,p[0],(iBarShift(NULL,p[0],CurStart,FALSE)+BarAnaliz))ArrayInitialize(Vertikal,0)ArrayInitialize(Shir,0)为 (int jj = 0; jj{ArrayInitialize(Shirina,0)如果 (jj = = 8)S = CurStart;其他 S = iTime(NULL,p[jj+1],(iBarShift(NULL,p[jj+1],CurStart,FALSE)+BarAnaliz));F = prevS;prevS = S;St = iBarShift(NULL,p[jj],CurStart,FALSE);Fin=iBarShift(NULL,p[jj],F,FALSE)如果 (St = = 0 & & 鳍 = = 0) return(0);如果 (jj! = 8) {ArrShirina(St,Fin,(iBarShift(NULL,p[jj],S,FALSE))-St-7,p[jj])};打印 ("1111111111",p [jj],"",St,"",减摇鳍,"",(iBarShift(NULL,p[jj],S,FALSE))-St-7);}其他的 {ArrShirina(St,Fin,0,p[jj])};打印 ("888888888",p [jj],"",St,"",鳍);}lastmin = 翅片 + 1;如果 (jj = = 0) lmin = 10000000;如果 (jj = = 0) premin = Shirina [鳍-St-1];打印 (开始,"",p [jj],"羊囵?-",(iBarShift(NULL,p[jj],S,FALSE)),"澡龛?-",鳍);if(Fin>iBarShift(NULL,p[jj],S,FALSE))为 (我 = 鳍-1; 我 > (iBarShift(NULL,p[jj],S,FALSE))-1; 我 — —) {如果 (iTime(NULL,0,Bars-1) < =iTime(NULL,p[jj],i)) {i3=iBarShift(NULL,0,iTime(NULL,p[jj],i),FALSE)为 (i2 = 0; i2 < =p[jj]/Period();i2++)
正在翻譯中..