Board logo

标题: [MetaStock] Asctrend策略源码(MT4.0平台) [打印本页]

作者: 龙听    时间: 2018-1-17 16:10     标题: Asctrend策略源码(MT4.0平台)

  1. int start()
  2. {   
  3.    
  4.    double value2;
  5.    double value3;
  6.    double value10=10;
  7.    double value11;
  8.    double x1=70;
  9.    double x2=30;
  10.    int TrueCount;
  11.    int counter;
  12.    int MRO1;
  13.    int MRO2;
  14.    int i1;
  15.    double Range;
  16.    double AvgRange;
  17.    double val1;
  18.    double val2;
  19.    double Table_value2[500][2];
  20.    int counted_bars=IndicatorCounted();
  21.    
  22.    value10=3+RISK*2;
  23.    x1=67+RISK;
  24.    x2=33-RISK;
  25.    value11=value10;
  26.   //----------------------------
  27.    
  28.    if(counted_bars<0) return (-1);
  29.    if(counted_bars>0) counted_bars--;       //last bar recounted
  30.    int i;
  31.    int shift = Bars-counted_bars-1;
  32.    if (shift > AllBars) shift = AllBars;
  33.          
  34.   for(i=shift; i>0; i--)
  35.    {
  36.       counter=i;
  37.       Range=0;
  38.       AvgRange=0;
  39.       for (counter=i ;counter<=i+9;counter++)
  40.       {
  41.          AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
  42.       }
  43.       Range=AvgRange/10;
  44.       
  45.       
  46.       counter=i;
  47.       TrueCount=0;
  48.       while (counter<i+9 && TrueCount<1)
  49.       {
  50.          if (MathAbs(Open[counter]-Close[counter+1])>=Range*2.0 )
  51.                TrueCount++;
  52.          counter++;
  53.       }

  54.       if (TrueCount>=1)
  55.             MRO1=counter ;
  56.       else
  57.             MRO1=-1;
  58.             
  59.       counter=i;
  60.       TrueCount=0;
  61.       while (counter<i+6 && TrueCount<1)
  62.       {
  63.            if(MathAbs(Close[counter+3]-Close[counter])>=Range*4.6)
  64.             {TrueCount++;}
  65.            counter++;
  66.       }
  67.       
  68.       if(TrueCount>=1)
  69.             MRO2=counter;
  70.       else
  71.             MRO2=-1;
  72.             
  73.       if (MRO1>-1)
  74.             value11=3;
  75.       else
  76.             value11=value10;
  77.             
  78.       if (MRO2>-1)
  79.             value11=4;
  80.       else
  81.            value11=value10;
  82.          
  83.             
  84.       value2=100-MathAbs(iWPR(NULL,0,value11,i));
  85.       Table_value2[0]=i;
  86.       Table_value2[1]=value2;
  87.       val1=0;
  88.       val2=0;
  89.       value3=0;
  90.       //-------------------     val1  
  91.       if (value2<x2 )  //  x2 = 30
  92.       {
  93.          i1=1;
  94.          while (Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
  95.          {i1++;}

  96.          if (Table_value2[i+i1][1]>x1)
  97.          {
  98.             value3=High+Range*0.5;
  99.             val1=value3;
  100.          }
  101.       }
  102.       
  103.       //-------------------     val2  
  104.       if ( value2>x1) // x1 = 70
  105.       {  
  106.             i1=1;
  107.             while (Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
  108.             {i1++;}
  109.             
  110.             if (Table_value2[i+i1][1]< x2)
  111.             {
  112.                value3=Low-Range*0.5;
  113.                val2=value3;
  114.             }
  115.       }

  116.       if (val2!=0 && up==0 )
  117.       {     
  118.            val1buffer= val2-1*Point;
  119.            up=1;
  120.            dn=0;
  121.            if(shift<=2)
  122.            {
  123.             Alert (Symbol()," ",Period(),"M  Asctrend BUY ");
  124.             }
  125.       }  
  126.       if (val1 !=0 && dn==0)
  127.       {
  128.       
  129.             val2buffer= val1+1*Point;
  130.             dn=1;
  131.             up=0;
  132.             if(shift<=2)
  133.             {
  134.             Alert (Symbol()," ",Period(),"M   Asctrend SELL ");
  135.             }
  136.        }
  137.    
  138.    }
  139. return(0);
复制代码

作者: 龙听    时间: 2018-1-22 18:38

货币对:所有
周期: 1H以上(含1H)

交易规则:

01.    多头进场条件:

a.    5EMA 向上穿越 10EMA.      
b.    RSI向上穿越50水平线.         
c.    ASCTREND1 呈蓝色箭头信号 和ASCTREND2呈绿色圆点信号。
d.    KD向上。        
e.    CCI线向上穿越50%水平线。

02.    空头进场条件:
         
a.    5EMA 向下穿越 10EMA。     
b.    RSI向下穿越50水平线。   
c.    ASCTREND1呈红色箭头信号 和ASCTREND2呈红色圆点信号。     
d.    KD向下 。           
e.    CCI线向下穿越50%水平线。

03.    固定止损30个点,可设置20点跟踪止损。当出现30个点的利润后可将止损移至盈亏平衡点。

04.    当5EMA均线与10EMA均线相对于你交易的相反方向交叉,或者价格反弹至布林带异轨,或者当随机指标线快慢线收敛。

05.     每笔交易的最大风险为总资金的20%。
作者: 杨明    时间: 2018-10-31 19:19

这个指标好像不完整
作者: 星辰    时间: 2019-1-30 10:39

学习了
作者: 金刚橛    时间: 2019-8-20 14:23

感谢分享
作者: 卓越    时间: 2019-10-23 15:50






欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2