分享

ZIGZAG MACD

 weewas 2012-04-02

void VariableMacd(double &ad_0,double &ad_4,double &ad_8,double &ad_12){

   int li_16=-1;
   int ExtDepth=1200;
   int ExtDeviation=500;
   int ExtBackstep=300;
   double li_icustom_00;
   double li_icustom_04;
   int li_izigzag_08=0;
   int li_izigzag_12=0;
   int long;
   int short;
   int mid;
  
  for(int l_cnt=0;l_cnt<3200;l_cnt++){
      li_icustom_00=iCustom(NULL, 0, "ZigZag",ExtDepth,ExtDeviation,ExtBackstep,1,l_cnt+30);
      if (li_icustom_00>0){li_izigzag_08=l_cnt;break;}
   }

   for(l_cnt=0;l_cnt<3200;l_cnt++){
      li_icustom_04=iCustom(NULL, 0, "ZigZag",ExtDepth,ExtDeviation,ExtBackstep,2,l_cnt+30);
      if (li_icustom_04>0){li_izigzag_12=l_cnt;break;}
   }
   int nH_Count = iHighest(NULL, 0, MODE_HIGH, 5880, 32);
   int nL_Count = iLowest(NULL, 0, MODE_LOW, 5880, 32) ;
   long=NormalizeDouble(MathAbs(nH_Count-nL_Count),0) ;
   long=MathAbs(li_izigzag_12-li_izigzag_08);
   short=NormalizeDouble(long/26*12,0);
   mid=NormalizeDouble(long/26*9,0);
     //Print("高点",li_izigzag_08,"低点",li_izigzag_12,"MACD参数",long,"+",short,"+",mid);
    
   ad_0= Macd(short,long,mid,1);
   ad_4= Macd(short,long,mid,2);
   ad_8= Signal(short,long,mid,1);
   ad_12= Signal(short,long,mid,2);
 
  
   //Print(li_izigzag_08,"??",li_izigzag_12);
   return(0);
}

double Macd(int ai_0,int ai_4,int ai_8,int ai_12){
   return((iMACD(NULL,0,ai_0,ai_4,ai_8,PRICE_CLOSE,MODE_MAIN,ai_12))*10000);
}

double Signal(int ai_0,int ai_4,int ai_8,int ai_12){
   return((iMACD(NULL,0,ai_0,ai_4,ai_8,PRICE_CLOSE,MODE_SIGNAL,ai_12))*10000);
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多