什么叫不够用?
需要多少缓存数组是你自己可以定义的。
什么叫不够用?
需要多少缓存数组是你自己可以定义的。
double DBBuffer[];
double Var4Buffer[];
double Var7Buffer[];
double Var9Buffer[];
double VarCBuffer[];
double VarDBuffer[];
double VarEBuffer[];
double Var10Buffer[];
SetIndexBuffer(0,DBBuffer);
SetIndexBuffer(1,Var4Buffer);
SetIndexBuffer(2,Var7Buffer);
SetIndexBuffer(3,Var9Buffer);
SetIndexBuffer(4,VarCBuffer);
SetIndexBuffer(5,VarDBuffer);
SetIndexBuffer(6,VarEBuffer);
SetIndexBuffer(7,Var10Buffer);
缓冲区的个数不能超过8个或者是小于在自定义缓冲区属性中所给出的值。
#property indicator_buffers XX
XX你可自己定义,用于指标值的设置为INDICATOR_DATA,用于中间计算过程的设置为INDICATOR_CALCULATIONS。
#property indicator_buffers XX
XX你可自己定义,用于指标值的设置为INDICATOR_DATA,用于中间计算过程的设置为INDICATOR_CALCULATIONS。
#property indicator_buffers XX
XX你可自己定义,用于指标值的设置为INDICATOR_DATA,用于中间计算过程的设置为INDICATOR_CALCULATIONS。
已试可行,谢谢!
请问控制指标窗口图形线的函数,用哪个?
由于我用了多个辅助数组,这些数组也把图形输出到指标窗口,我想把它们隐藏掉。
#property indicator_minimum 0 #property indicator_maximum 100 #property indicator_level1 80.0 #property indicator_level2 16.18 #property indicator_levelcolor clrGray #property indicator_levelwidth 1 #property indicator_levelstyle STYLE_SOLID #property indicator_separate_window #property indicator_buffers 8 //8条需要绘制的指标线 //--- plot M1_1 #property indicator_color1 clrRed #property indicator_width1 2 //--- plot M1_2 #property indicator_color2 clrGreen #property indicator_width2 2 //--- plot M4_1 #property indicator_color3 clrCyan #property indicator_width3 2 //--- plot M4_2 #property indicator_color4 clrYellow #property indicator_width4 2 //--- plot M2 #property indicator_color5 clrBlue #property indicator_width5 1 //--- plot M3 #property indicator_color6 clrBrown #property indicator_width6 1 //--- plot N1 #property indicator_color7 clrBlueViolet #property indicator_width7 1 //--- plot N2 #property indicator_color8 clrGray #property indicator_width8 1 //--- input parameters input int AV1_period = 45; input int RSV4_period = 90; input int AV2_period = 30; input int RSV2_period = 60; input int start_pos = 200; //--- indicator buffers double M1Buffer1[]; double M1Buffer2[]; double M4Buffer1[]; double M4Buffer2[]; double M2Buffer[]; double M3Buffer[]; double N1Buffer[]; double N2Buffer[]; double av1Buffer[]; double rsv4Buffer[]; double av2Buffer[]; double rsv2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { IndicatorBuffers(12); //需要额外的4个指标缓存数组 //--- indicator buffers mapping SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,M1Buffer1,INDICATOR_DATA); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,M1Buffer2,INDICATOR_DATA); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,M4Buffer1,INDICATOR_DATA); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,M4Buffer2,INDICATOR_DATA); SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,M2Buffer,INDICATOR_DATA); SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(5,M3Buffer,INDICATOR_DATA); SetIndexStyle(6,DRAW_LINE); SetIndexBuffer(6,N1Buffer,INDICATOR_DATA); SetIndexStyle(7,DRAW_LINE); SetIndexBuffer(7,N2Buffer,INDICATOR_DATA); //下面4个数组用于中间计算 SetIndexBuffer(8,av1Buffer,INDICATOR_CALCULATIONS); SetIndexBuffer(9,rsv4Buffer,INDICATOR_CALCULATIONS); SetIndexBuffer(10,av2Buffer,INDICATOR_CALCULATIONS); SetIndexBuffer(11,rsv2Buffer,INDICATOR_CALCULATIONS); SetIndexLabel(0,"M1"); SetIndexLabel(1,"M4"); SetIndexLabel(4,"M2"); SetIndexLabel(5,"M3"); SetIndexLabel(6,"N1"); SetIndexLabel(7,"N2"); //--- return(INIT_SUCCEEDED); }
我现在,在尝试写一个自定义指标。
这个我设计的指标,要用到多个数组缓存区,用的是“iMAOnArray”函数处理。
而我发现,居然缓存区不够用了,“#property indicator_buffers 8”。
请问有办法,在不超出缓存区的情况下解决问题,或者在不占用缓存区的情况下,使用辅助计算数组。