秃鹰老师 代码我修改了一下 您给看看
秃鹰老师又来麻烦您了,那个最高点显示箭头的代码,我按照代码的思路继续修改下去,主要修改的目的是在最高点之后的适当位置箭头提示平仓点,具体是这样:首先求出上穿点到最高点的的差(得到的最大点数),最高点显示箭头之后接着是下降趋势,当下降到几分之最大点数(最大点数/n)时,显示一个对号,表示要平仓。代码我做了修改,但是不知道那儿出了问题,您给看看,谢谢您了秃鹰老师!(修改的位置我都做了注释)
下面是我修改的代码:
#property indicator_chart_window
#property indicator_buffers 6
#property indicator_color1 Red
#property indicator_color2 Aqua
#property indicator_color3 Green
#property indicator_color4 Magenta
#property indicator_color5 Green
#property indicator_color6 Yellow //平仓点箭头颜色
extern int ma1_Period=8;
extern int ma2_Period=60;
extern int fd=1; //分段
double up,dn,updn,ma1,ma2;
double pcd;//平仓点显示箭头所使用的数组
int init(){
SetIndexBuffer(0,up);
SetIndexBuffer(1,dn);
SetIndexBuffer(2,updn);
SetIndexBuffer(3,ma1);
SetIndexBuffer(4,ma2);
SetIndexBuffer(5,pcd);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_NONE);
SetIndexStyle(3,DRAW_LINE,STYLE_SOLID);
SetIndexStyle(4,DRAW_LINE,STYLE_SOLID);
SetIndexStyle(5,DRAW_ARROW);
SetIndexArrow(0,234);
SetIndexArrow(1,233);
SetIndexArrow(5,252);
return(0);
}
int start()
{
int limit,sss=0,length,temp,temp1;
double pcwz;//存储向上穿越点到最高点之差
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(int i=0; ima2) {
temp=ArrayMaximum(ma1,length,sss);
temp1=ArrayMinimum(ma1,length,sss);//向上穿越部分的最小值
up[temp]=ma1[temp];
pcwz=(up[temp]-up[temp1])/fd;//将最高点和最低点之差分成fd份
if(i