欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 版主请进

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4443人关注过本帖平板打印复制链接

主题:版主请进

帅哥哟,离线,有人找我吗?
mt050707
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:237 积分:583 威望:0 精华:0 注册:2011/9/5 17:18:23
  发帖心情 Post By:2011/9/26 18:49:16    Post IP:59.44.12.30[只看该作者]

这个算复杂吗?

 

//+------------------------------------------------------------------+
//| ASCTrend1sig_noSound.mq4
//| Ramdass - Conversion only
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Aqua

//---- input parameters
extern int RISK=3;
extern int CountBars=300;

//---- buffers
double val1[];
double val2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicator line
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,234);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,233);
   SetIndexBuffer(0,val1);
   SetIndexBuffer(1,val2);

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| ASCTrend1sig                                                     |
//+------------------------------------------------------------------+
int start()
  {
   if (CountBars>=1000) CountBars=950;
   SetIndexDrawBegin(0,Bars-CountBars+11+1);
   SetIndexDrawBegin(1,Bars-CountBars+11+1);
   int i,shift,counted_bars=IndicatorCounted();
   int Counter,i1,value10,value11;
   double value1,x1,x2;
   double value2,value3;
   double TrueCount,Range,AvgRange,MRO1,MRO2;
   double Table_value2[1000];
  
   value10=3+RISK*2;
   x1=67+RISK;
   x2=33-RISK;
   value11=value10;
//----
   if(Bars<=11+1) return(0);
//---- initial zero
   if(counted_bars<11+1)
   {
      for(i=1;i<=0;i++) val1[CountBars-i]=0.0;
      for(i=1;i<=0;i++) val2[CountBars-i]=0.0;
   }
//----
   shift=CountBars-11-1;
   while(shift>=0)
     {
    
   Counter=shift;
 Range=0.0;
 AvgRange=0.0;
 for (Counter=shift; Counter<=shift+9; Counter++) AvgRange=AvgRange+MathAbs(High[Counter]-Low[Counter]);
  
 Range=AvgRange/10;
 Counter=shift;
 TrueCount=0;
 while (Counter<shift+9 && TrueCount<1)
  {if (MathAbs(Open[Counter]-Close[Counter+1])>=Range*2.0) TrueCount=TrueCount+1;
  Counter=Counter+1;
  }
 if (TrueCount>=1) {MRO1=Counter;} else {MRO1=-1;}
 Counter=shift;
 TrueCount=0;
 while (Counter<shift+6 && TrueCount<1)
  {if (MathAbs(Close[Counter+3]-Close[Counter])>=Range*4.6) TrueCount=TrueCount+1;
  Counter=Counter+1;
  }
 if (TrueCount>=1) {MRO2=Counter;} else {MRO2=-1;}
 if (MRO1>-1) {value11=3;} else {value11=value10;}
 if (MRO2>-1) {value11=4;} else {value11=value10;}
 value2=100-MathAbs(iWPR(NULL,0,value11,shift)); // PercentR(value11=9)
 Table_value2[shift]=value2;
 val1[shift]=0;
 val2[shift]=0;
 value3=0;
 if (value2<x2)
  {i1=1;
  while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
  if (Table_value2[shift+i1]>x1)
   {
   value3=High[shift]+Range*0.5;
   val1[shift]=value3;
   }
  }
 if (value2>x1)
  {i1=1;
  while (Table_value2[shift+i1]>=x2 && Table_value2[shift+i1]<=x1){i1++;}
  if (Table_value2[shift+i1]<x2)
   {
   value3=Low[shift]-Range*0.5;
   val2[shift]=value3;
   }
  }
     
      shift--;
     }

   return(0);
  }
//+------------------------------------------------------------------+


 
 

 


 回到顶部