需要帮助的代码
Results 1 to 3 of 3

Thread: 需要帮助的代码

  1. #1
    大家好。我需要帮助下面粘贴的代码。这是一个简单的移动平均交叉警报,我调整了一点,并添加了电子邮件警报。我不确定电子邮件警报是否会工作,因为我在编译时遇到1错误。我粘贴了下面的代码

    我经历了几次代码,我似乎无法找出问题所在。预先感谢您的帮助。

    错误说...'\ end_of_program' - 不平衡的左括号



    // ----------------------------------------------- -------------------
    //| MACrossEarlyAlert.mq4 |
    //|马里亚诺席尔瓦|
    //| |
    // ----------------------------------------------- -------------------
    #property版权Mariano Silva
    #property链接

    #property indior_chart_window
    //----输入参数
    extern bool EmailAlert = false;
    extern int FastMAPeriod = 50;
    外部字符串类型= 0-SMA,1-EMA;
    extern int FastMAType = 1;
    extern int SlowMAPeriod = 1;
    extern int SlowMAType = 0;
    extern int EarlyPips = 15;
    extern int ResetAlert = 20;
    外部颜色LineColor =橙色;
    // ----------------------------------------------- -------------------
    //|自定义指标初始化函数|
    // ----------------------------------------------- -------------------
    int init()
    {
    //----指标
    //----
    返回(0);
    }
    // ----------------------------------------------- -------------------
    //|自定义指标取消初始化函数|
    // ----------------------------------------------- -------------------
    int deinit()
    {
    字符串LineName;
    //----
    LineName = StringConenate(FastMAPeriod,/,SlowMAPeriod,MA Cross);
    ObjectDelete(LineName);
    //----
    返回(0);
    }
    // ----------------------------------------------- -------------------
    //|自定义指标迭代函数|
    // ----------------------------------------------- -------------------
    int start()
    {
    //int counting_bars = IndiorCounted();

    double FastMALastBar,SlowMALastBar,PriceToCross,Cross,FastMATest,SlowMATest;
    bool AlertEnabled = true;
    string LineName = StringConenate(FastMAPeriod,/,SlowMAPeriod,MA Cross);


    //LineName = StringConenate(FastMAPeriod,/,SlowMAPeriod,MA Cross);

    //----

    如果(NewBar())
    {
    FastMALastBar = IMA(NULL,0,FastMAPeriod,0,FastMAType,PRICE_CLOSE,1);
    SlowMALastBar = IMA(NULL,0,SlowMAPeriod,0,SlowMAType,PRICE_CLOSE,1);
    PriceToCross =打开[0];
    交叉= FastMALastBar-SlowMALastBar;


    如果(Crossgt; 0.0)
    {
    而(Crossgt; 0.0)
    {
    PriceToCross = PriceToCross点;
    FastMATest = CalcMA(FastMAPeriod,FastMAType,PriceToCross,FastMALastBar);
    SlowMATest = CalcMA(SlowMAPeriod,SlowMAType,PriceToCross,SlowMALastBar);
    交叉= FastMATest-SlowMATest;
    }
    }
    其他
    {
    而(Crosslt; 0.0)
    {
    PriceToCross = PriceToCross 点;
    FastMATest = CalcMA(FastMAPeriod,FastMAType,PriceToCross,FastMALastBar);
    SlowMATest = CalcMA(SlowMAPeriod,SlowMAType,PriceToCross,SlowMALastBar);
    交叉= FastMATest-SlowMATest;
    }
    }


    ObjectDelete(LineName);
    的drawLine(PriceToCross,LineName,LineColor,0);

    }

    如果(AlertEnabled)
    {
    如果(MathAbs(关闭[0] -PriceToCross)LT = EarlyPips *点)
    {
    警报(接近,FastMAPeriod,/,SlowMAPeriod,MA交叉开启,Symbol(),Period());

    如果EmailAlert SendMail(Close,FastMAPeriod,/,SlowMAPeriod,MA Cross on,Symbol(),Period();

    AlertEnabled = FALSE;
    }
    }
    其他
    {
    如果(MathAbs(关闭[0] -PriceToCross)GT = ResetAlert *点)
    {
    AlertEnabled = TRUE;
    }
    }





    //----
    返回(0);
    }
    // ----------------------------------------------- -------------------


    双CalcMA(int MAPeriod,int MAType,double PriceTest,双重LastMA)
    {
    双MA,PR;

    开关(MATYPE)
    {
    情况0:
    {
    MA =((LastMA * MAPeriod)-close [MAPeriod] PriceTest)/MAPeriod;
    打破;
    }
    情况1:
    {
    PR = 2.0(MAPeriod 1);
    MA = PriceTest * PR LastMA *(1-PR);
    打破;
    }
    }

    返回(MA);
    }

    void drawLine(double lvl,字符串名称,col col,int类型)
    {
    ObjectCreate(name,OBJ_HLINE,0,Time [0],lvl);/,Time [0],lvl);

    if(type == 1)
    ObjectSet(名称,OBJPROP_STYLE,STYLE_SOLID);
    其他
    ObjectSet(名称,OBJPROP_STYLE,STYLE_DOT);

    ObjectSet(名称,OBJPROP_COLOR,Col);
    对象集(姓名,OBJPROP_WIDTH,1);

    返回;
    }


    bool NewBar(){
    静态日期时间lastbar;
    datetime curbar = Time [0];
    如果(lastbar!= curbar)
    {
    lastbar = curbar;
    返回(true);
    }
    else {
    返回(假);
    }
    }

  2. #2
    只需发布MQL文件......没有人喜欢在没有编译器的情况下在线程中读取此内容......

  3. #3
    1附件感谢您的回复Rbi。我附上了以下代码的MQL文件。如果价格在34EMA8EMA交叉点的15点之内,我希望指标能够发出警报并发送给我一次电子邮件。一旦价格移动指定的编号,条件应该重置。的点数(在这种情况下为20点)远离34EMA8EMA Cross。我试图调整代码,现在我得到3个错误:')' - 错误的参数计数'其他' - 意外的令牌'MAType' - 内部错误任何帮助将不胜感激。谢谢
    https://www.histoforex.com/attachmen...2240799907.mq4

发布权限

  • 您不可发布新主题
  • 您不可回复
  • 您不可发布附件
  • 您不可编辑您的帖子
  •  
  • BB代码是打开的
  • 表情符号是打开的
  • [IMG]代码是打开的
  • [视频]代码是打开的
  • HTML代码是关闭的
histoforex网站使用cookie 文字跟踪
histoforex网站使用cookie 文字跟踪,某些设定已经固定。您可以点击此处阅读我们的Cookie使用说明。 请点击右键接受我们的cookies。如果您选择继续使用histoforex网站,我们将认为您接受我们的cookies。