外汇论坛 外兔财经

开启左侧

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

[复制链接]
发表于 2011-6-6 13:54 | 显示全部楼层 |阅读模式
https://www.y2cn.com
谁能帮助把这个指标的箭头加上报警声音,求助,先谢啊
//+------------------------------------------------------------------+
//|                                        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[1000];
    //----
    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[CountBars-i] = 0.0;
        for(i = 1; i <= 0; i++)
            val2[CountBars-i] = 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[Counter] - Low[Counter]);
           //----
        Range = AvgRange / 10;
           Counter = shift;
           TrueCount = 0;
           //----
        while(Counter < shift + 9 && TrueCount < 1)
                {
                  if(MathAbs(Open[Counter] - Close[Counter+1]) >= 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[Counter+3] - Close[Counter]) >= 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[shift] = value2;
           val1[shift] = 0;
           val2[shift] = 0;
           value3 = 0;
           //----
        if(value2 < x2)
                {
                  i1 = 1;
                  while(Table_value2[shift + i1] >= x2 && Table_value2[shift+i1] <= x1)
                    {
                      i1++;
                    }
                  //----
            if(Table_value2[shift+i1] > x1)
                       {
                         value3 = High[shift] + Range*0.5;
                         val1[shift] = value3;
                       }
                }
           if(value2 > x1)
                {
                  i1=1;
                  while(Table_value2[shift+i1] >= x2 && Table_value2[shift+i1] <= x1)
                    {
                      i1++;
                    }
                  if(Table_value2[shift+i1] < x2)
                       {
                         value3 = Low[shift] - Range*0.5;
                         val2[shift] = value3;
                       }
                }
      
        shift--;
      }
    return(0);
  }
//+------------------------------------------------------------------+
发表于 2011-6-6 14:01 | 显示全部楼层
[:2-123:]
发表于 2011-6-6 14:05 | 显示全部楼层
把第一行的声明去了试试,那个应是管声音的
(瞎建议)
//|  ASCTrend1sig_noSound.mq4  |
发表于 2011-6-6 16:21 | 显示全部楼层
限制20字节内不够用.
发表于 2011-6-6 17:16 | 显示全部楼层
本帖最后由 baolilai 于 2011-6-6 17:50 编辑
那是附加说明,不对程序起作用的.
dannygz 发表于 2011-6-6 16:21


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

重温一遍基本能看懂,各种程序中断循环语句,结构都差不多的,
不知MT4用的是什么‘语言。

本版积分规则

QQ|手机版 Mobile Version|Archiver|关于我们 About Us|联系我们 Contact Us|Y2外汇论坛 外兔财经

GMT+8, 2024-10-12 20:25 , Processed in 0.046161 second(s), 25 queries .

Powered by Discuz! X7.2

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表