14评论

0收藏

求解析程式容

avatar 句号 | 3725 人阅读 | 14 人评论 | 2011-09-30

各位大大好:
     本人在其他中找到,1段程式,想把它改成VT程式,但本人MT4程式不懂,可否高手忙用白解析以下各程式之作用,或有人可直接它改成VT程式,惑激不!
  //+------------------------------------------------------------------+
  //| PriceChannel_Stop_v1                                             |
  //+------------------------------------------------------------------+
  int start()
    {
     int    i,shift,trend;
     double high, low, price;
     double smax[5000],smin[5000],bsmax[5000],bsmin[5000];
     
     for (shift=Nbars-1;shift>=0;shift--)
     {
     UpTrendBuffer[shift]=EMPTY_VALUE;
     DownTrendBuffer[shift]=EMPTY_VALUE;
     UpTrendSignal[shift]=EMPTY_VALUE;
     DownTrendSignal[shift]=EMPTY_VALUE;
     UpTrendLine[shift]=EMPTY_VALUE;
     DownTrendLine[shift]=EMPTY_VALUE;
     }
     for (shift=Nbars-ChannelPeriod-1;shift>=0;shift--)
     {        
        high=High[shift]; low=Low[shift]; i=shift-1+ChannelPeriod;
        while(i>=shift)
          {
           price=High<i>;
           if(highprice)  low=price;
           i--;
          }
       smax[shift]=high;
       smin[shift]=low;
      
       bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*Risk;
            bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*Risk;
      
       if (Close[shift]>bsmax[shift+1])  trend=1;
            if (Close[shift]0 && bsmin[shift]0)
            {
               if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)
               {
               UpTrendSignal[shift]=bsmin[shift];
               if(Line>0) UpTrendLine[shift]=bsmin[shift];
               }
               else
               {
               UpTrendBuffer[shift]=bsmin[shift];
               if(Line>0) UpTrendLine[shift]=bsmin[shift];
               UpTrendSignal[shift]=-1;
               }
            if (Signal==2) UpTrendBuffer[shift]=0;   
            DownTrendBuffer[shift]=-1.0;
            DownTrendLine[shift]=EMPTY_VALUE;
            }
            if (trend0 && DownTrendBuffer[shift+1]==-1.0)
               {
               DownTrendSignal[shift]=bsmax[shift];
               if(Line>0) DownTrendLine[shift]=bsmax[shift];
               }
               else
               {
               DownTrendBuffer[shift]=bsmax[shift];
               if(Line>0)DownTrendLine[shift]=bsmax[shift];
               DownTrendSignal[shift]=-1;
               }
            if (Signal==2) DownTrendBuffer[shift]=0;   
            UpTrendBuffer[shift]=-1.0;
            UpTrendLine[shift]=EMPTY_VALUE;
            }
            
           
     }
     return(0);
    }
  //+------------------------------------------------------------------+[/td][/tr]
""
还没有人打赏,支持一下

评论|共 14 个

搁浅

发表于 2012-11-25 16:59:05 | 显示全部楼层

(*^__^*) 嘻嘻……   

盛满我的思念

发表于 2012-11-25 16:59:05 | 显示全部楼层

经过你的指点 我还是没找到在哪 ~~~  

wenken123

发表于 2012-11-25 18:27:51 | 显示全部楼层

晕死也不多加点分  

pop

发表于 2012-11-25 18:27:51 | 显示全部楼层

呵呵,找个机会...  

dmpdc

发表于 2012-11-25 18:27:51 | 显示全部楼层

就为赚分嘛  

汇眼识金

发表于 2012-11-25 18:27:51 | 显示全部楼层

似曾相识的感觉  

gp123456789

发表于 2012-11-25 18:27:51 | 显示全部楼层

楼主有没有好的EA推荐  

fuckqq

发表于 2012-11-25 18:27:51 | 显示全部楼层

资金量设置的是10000美元啊,  

ea专业户

发表于 2012-11-26 09:05:00 | 显示全部楼层

  1. //+------------------------------------------------------------------+
  2. //| PriceChannel_Stop_v1 |
  3. //+------------------------------------------------------------------+
  4. int start()
  5. {
  6. int i,shift,trend;
  7. double high, low, price;
  8. double smax[5000],smin[5000],bsmax[5000],bsmin[5000];
  9. //数组初始化 全部设为 空值 其实这段没啥用
  10. for (shift=Nbars-1;shift>=0;shift--)
  11. {
  12. UpTrendBuffer[shift]=EMPTY_VALUE;
  13. DownTrendBuffer[shift]=EMPTY_VALUE;
  14. UpTrendSignal[shift]=EMPTY_VALUE;
  15. DownTrendSignal[shift]=EMPTY_VALUE;
  16. UpTrendLine[shift]=EMPTY_VALUE;
  17. DownTrendLine[shift]=EMPTY_VALUE;
  18. }
  19. //循环计算数组数值
  20. for (shift=Nbars-ChannelPeriod-1;shift>=0;shift--)//大循环是计算最近未计算过的K线的对应数组数值
  21. { //提取当前K线的最高最低 并赋值while循环开始的位置为当前K线往右第ChannelPeriod个位置
  22. high=High[shift]; low=Low[shift]; i=shift-1+ChannelPeriod;
  23. while(i>=shift)//循环从当前K线往右第ChannelPeriod个位置 递减到当前K线位置
  24. {
  25. price=High;//这地方High好像错的 应该有参数的
  26. if(high<price) high=price;
  27. price=Low;//这地方Low好像错的 应该有参数的
  28. if(low>price) low=price;
  29. i--;
  30. } //上面是循环找出从当前K线往右第ChannelPeriod个位置 递减到当前K线位置之间的最高价和最低价,这里这样计算似乎是很笨的办法,应该用iHightest iLowest直接一句话就可以算出来
  31. smax[shift]=high;//记录到数组中,等于数组中存储着每一K线到其右侧ChannelPeriod个位置之间的最大值和最小值
  32. smin[shift]=low;

  33. bsmax[shift]=smax[shift]-(smax[shift]-smin[shift])*Risk;//Risk是作者表达的风险百分比的意思 将最大值数组和最小值数组按风险比例计算出另一种状态,并存储在新的数组中
  34. bsmin[shift]=smin[shift]+(smax[shift]-smin[shift])*Risk;

  35. if (Close[shift]>bsmax[shift+1]) trend=1; //标记每一K线收盘价与风险比例计算后的 最大值数组进行比较,大于最大值数组数值的标记为1
  36. if (Close[shift]<bsmin[shift+1]) trend=-1;//标记每一K线收盘价与风险比例计算后的 最小值数组进行比较,小于最小值数组数值的标记为-1

  37. if(trend>0 && bsmin[shift]<bsmin[shift+1]) bsmin[shift]=bsmin[shift+1];//如果当前K线满足最大值的比较条件,且对应最小值数据递减。则重置最小值数组当前数据
  38. if(trend<0 && bsmax[shift]>bsmax[shift+1]) bsmax[shift]=bsmax[shift+1];

  39. if (trend>0) //这里Signal Line都没说是什麽,所以不知道细节该如何说明
  40. {
  41. if (Signal>0 && UpTrendBuffer[shift+1]==-1.0)
  42. {
  43. UpTrendSignal[shift]=bsmin[shift];
  44. if(Line>0) UpTrendLine[shift]=bsmin[shift];
  45. }
  46. else
  47. {
  48. UpTrendBuffer[shift]=bsmin[shift];
  49. if(Line>0) UpTrendLine[shift]=bsmin[shift];
  50. UpTrendSignal[shift]=-1;
  51. }
  52. if (Signal==2) UpTrendBuffer[shift]=0;
  53. DownTrendBuffer[shift]=-1.0;
  54. DownTrendLine[shift]=EMPTY_VALUE;
  55. }
  56. if (trend<0)
  57. {
  58. if (Signal>0 && DownTrendBuffer[shift+1]==-1.0)
  59. {
  60. DownTrendSignal[shift]=bsmax[shift];
  61. if(Line>0) DownTrendLine[shift]=bsmax[shift];
  62. }
  63. else
  64. {
  65. DownTrendBuffer[shift]=bsmax[shift];
  66. if(Line>0)DownTrendLine[shift]=bsmax[shift];
  67. DownTrendSignal[shift]=-1;
  68. }
  69. if (Signal==2) DownTrendBuffer[shift]=0;
  70. UpTrendBuffer[shift]=-1.0;
  71. UpTrendLine[shift]=EMPTY_VALUE;
  72. }


  73. }
  74. return(0);
  75. }
  76. //+------------------------------------------------------------------+
复制代码

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则