myhome2 发表于 2011-6-6 13:54

谁能帮助把这个指标的箭头加上报警声音,求助

谁能帮助把这个指标的箭头加上报警声音,求助,先谢啊
//+------------------------------------------------------------------+
//|                                        ASCTrend1sig_noSound.mq4|
//|                                       Ramdass - Conversion only|
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int RISK = 4;
extern int CountBars = 30000;
//---- buffers
double val1[];
double val2[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
    //---- indicator line
    IndicatorBuffers(2);
    SetIndexStyle(0, DRAW_ARROW, 0, 1);
    SetIndexArrow(0, 234);
    SetIndexStyle(1, DRAW_ARROW, 0, 1);
    SetIndexArrow(1, 233);
    SetIndexBuffer(0, val1);
    SetIndexBuffer(1, val2);
    if(CountBars >= 1000)
      CountBars=950;
    SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);
    SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);
    //----
    return(0);
}
//+------------------------------------------------------------------+
//| ASCTrend1sig                                                   |
//+------------------------------------------------------------------+
int start()
{
    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;
    //----
    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 = 0.0;
      for(i = 1; i <= 0; i++)
            val2 = 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 - Low);
         //----
      Range = AvgRange / 10;
         Counter = shift;
         TrueCount = 0;
         //----
      while(Counter < shift + 9 && TrueCount < 1)
                {
                  if(MathAbs(Open - Close) >= 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 - Close) >= 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 = value2;
         val1 = 0;
         val2 = 0;
         value3 = 0;
         //----
      if(value2 < x2)
                {
                  i1 = 1;
                  while(Table_value2 >= x2 && Table_value2 <= x1)
                  {
                      i1++;
                  }
                  //----
            if(Table_value2 > x1)
                     {
                         value3 = High + Range*0.5;
                         val1 = value3;
                     }
                }
         if(value2 > x1)
                {
                  i1=1;
                  while(Table_value2 >= x2 && Table_value2 <= x1)
                  {
                      i1++;
                  }
                  if(Table_value2 < x2)
                     {
                         value3 = Low - Range*0.5;
                         val2 = value3;
                     }
                }
      
      shift--;
      }
    return(0);
}
//+------------------------------------------------------------------+

~伊凡~ 发表于 2011-6-6 14:01

[:2-123:]

baolilai 发表于 2011-6-6 14:05

把第一行的声明去了试试,那个应是管声音的
(瞎建议)
//|ASCTrend1sig_noSound.mq4|

dannygz 发表于 2011-6-6 16:21

把第一行的声明去了试试,那个应是管声音的
(瞎建议)
//|ASCTrend1sig_noSound.mq4|
baolilai 发表于 2011-6-6 14:05 http://www.y2.cn/images/common/back.gif


    那是附加说明,不对程序起作用的.

baolilai 发表于 2011-6-6 17:16

本帖最后由 baolilai 于 2011-6-6 17:50 编辑

那是附加说明,不对程序起作用的.
dannygz 发表于 2011-6-6 16:21 http://www.y2.cn/images/common/back.gif

谢谢! 有空多讲点,
以前搞过C,VB等,现在都忘得差不多了。

重温一遍基本能看懂,各种程序中断循环语句,结构都差不多的,
不知MT4用的是什么‘语言。
页: [1]
查看完整版本: 谁能帮助把这个指标的箭头加上报警声音,求助