这个是著名的Asctrend的源码(mt4),楼主能不能帮忙译成TB的代码,大家共同学习。

int start()
{   
   
   double value2;
   double value3;
   double value10=10;
   double value11;
   double x1=70;
   double x2=30;
   int TrueCount;
   int counter;
   int MRO1;
   int MRO2;
   int i1;
   double Range;
   double AvgRange;
   double val1;
   double val2;
   double Table_value2[500][2];
   int counted_bars=IndicatorCounted();
   
   value10=3+RISK*2;
   x1=67+RISK;
   x2=33-RISK;
   value11=value10;
字符串函数源码  //---------------------------- 
    
   if(counted_bars<0) return (-1);
   if(counted_bars>0) counted_bars--;      //last bar recounted
   int i;
   int shift = Bars-counted_bars-1;
   if (shift > AllBars) shift = AllBars;
         
  for(i=shift; i>0; i--)
   {
   


   
                 
      counter=i;
      Range=0;
      AvgRange=0;
      for (counter=i ;counter<=i+9;counter++)
      {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
      }
      Range=AvgRange/10;
     
     
      counter=i;
      TrueCount=0;
      while (counter<i+9 && TrueCount<1)
      {
         if (MathAbs(Open[counter]-Close[counter+1])>=Range*2.0 )
               TrueCount++;
         counter++;
      }


      if (TrueCount>=1) 
            MRO1=counter ; 
      else 
            MRO1=-1;
           
      counter=i;
      TrueCount=0;
      while (counter<i+6 && TrueCount<1)
      {
           if(MathAbs(Close[counter+3]-Close[counter])>=Range*4.6)
            {TrueCount++;}
           counter++;
      }
     
      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,i));
      Table_value2[0]=i;
      Table_value2[1]=value2;
      val1=0;
      val2=0;
      value3=0;
      //-------------------     val1 
      if (value2<x2 )  //  x2 = 30
      {
         i1=1;
         while (Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
         {i1++;}

         if (Table_value2[i+i1][1]>x1)
         {
            value3=High+Range*0.5;
            val1=value3;
         }
      }
     
      //-------------------     val2 
      if ( value2>x1) // x1 = 70 
      { 
            i1=1;
            while (Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
            {i1++;}
           
            if (Table_value2[i+i1][1]< x2)
            {
               value3=Low-Range*0.5;
               val2=value3;
            } 
      }
     
     
       
     
      if (val2!=0 && up==0 )
      {     
           val1buffer= val2-1*Point;
           up=1;
           dn=0;
           if(shift<=2)
           {
            Alert (Symbol()," ",Period(),"M  Asctrend BUY ");
            }
      } 
      if (val1 !=0 && dn==0)
      {
     
            val2buffer= val1+1*Point;
            dn=1;
            up=0;
            if(shift<=2)
            {
            Alert (Symbol()," ",Period(),"M   Asctrend SELL ");
            }
      }
   
   }
return(0);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。