📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    求解析程式容

    句号 LV4
    2011-09-30 · 4188 阅读
    各位大大好:
         本人在其他中找到,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]
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 15 个

    搁浅 LV4

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

    (*^__^*) 嘻嘻……   

    盛满我的思念 LV5

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

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

    wenken123 LV4

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

    晕死也不多加点分  

    pop LV4

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

    呵呵,找个机会...  

    dmpdc LV5

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

    就为赚分嘛  

    汇眼识金 LV5

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

    似曾相识的感觉  

    gp123456789 LV4

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

    楼主有没有好的EA推荐  

    fuckqq LV5

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

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

    ea专业户 LV4

    发表于 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. //+------------------------------------------------------------------+
    复制代码
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服