编码帮助 - 页 731

 

亲爱的mladen。

所附的EA在保存设置时冻结,我不得不重启mt4!

代码有问题吗?

谢谢你。

附加的文件:
 
oguz:

亲爱的mladen。

所附的EA在保存设置时冻结,我不得不重启mt4!

代码有问题吗?

谢谢你。

没有明显的问题可能导致这种情况
 
mladen:
没有明显的问题可能导致这种情况

谢谢你的兴趣。

@mladen,

所附的EA非常有利可图。但它在最新的MT4上有很多错误。

你能修复它们吗?

谢谢你。

附加的文件:
 
oguz:

谢谢你的兴趣。

@mladen,

所附的EA非常有利可图。但它在最新的MT4上有很多错误。

你能修复它们吗?

谢谢你。

试试吧(这个也是有效的:我不知道它是否能工作,因为代码中还有一些警告)。
附加的文件:
 
mladen:
试试吧(这个也是有效的:我不知道它是否能工作,因为代码中还有一些警告)。

我将测试它 :)

谢谢你所做的一切。

 

你好。

我试图从江恩希洛获得信号,但没有成功。

比如说。
我设置了hilo gan=30分钟和4个平滑值,因为我想看到交易方向。

但我没有从指标中获得正确的买入或卖出信号 到EA中。

Hilo_Handle "没有得到正确的值;-(

//+------------------------------------------------------------------+
//|                                                      ea-hilo.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

//------- input -----------------------------------------------------+
input ushort                           Hilo_Periodo=4;
input ENUM_MA_METHOD                   Hilo_Metodo=MODE_SMA;

//------- global variables ------------------------------------------+
double Hilo_Handle = INVALID_HANDLE; //Hilo Handle
double Hilo_ma[1]; //hilo ma
double Hilo_cl[1]; //hilo close
int    Shift=1;    //Bar on which indicators are checked: 0 - shaped bar, 1 - the first shaped bar
datetime ctm[1];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CopyTime(_Symbol,PERIOD_CURRENT,0,1,ctm)==-1)
     {
      return(false);
     }

     //---- get Hilo Moving Average
     Hilo_Handle=iCustom(_Symbol,PERIOD_CURRENT,"gann_hi_lo_activator_ssl",Hilo_Periodo,Hilo_Metodo);
     if(Hilo_Handle!=INVALID_HANDLE)
        ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),Hilo_Handle);  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
        if(CopyBuffer(Hilo_Handle,0,Shift,1,Hilo_ma)==-1 ||
            CopyClose(_Symbol,PERIOD_CURRENT,0,1,Hilo_cl)==-1
            //CopyClose(_Symbol,PERIOD_CURRENT,Shift,1,Hilo_cl)==-1
            ) return;
            
         //Hilo Buy
         if (Hilo_cl[0]>Hilo_Handle) {
         Comment ("BUY SIGNAL "+Hilo_cl[0]+">"+Hilo_Handle);
         return;
         }
         else
         //Hilo Sell
         if (Hilo_cl[0]<Hilo_Handle) {
         Comment ("SELL SIGNAL "+Hilo_cl[0]+"<"+Hilo_Handle);
         return;
         }
         Comment ("NO SIGNAL");
  }
//+------------------------------------------------------------------+
附加的文件:
 

最亲爱的MLADEN

这里有一个错误的问题,它可以通过所有2种方式删除.....,在(tdelete)之前添加 "t",并在删除后添加 "pendingorder"(deletependingorder)......,我的问题是,哪一种是最好的正确方式?

你的指导和意见是最真实的。

问候


 
baraozemo:

你好。

我试图从江恩希洛获得信号,但没有成功。

比如说。
我设置了hilo gan=30分钟和4个平滑值,因为我想看到交易方向。

但我没有从指标中获得正确的买入或卖出信号到EA中。

Hilo_Handle "没有得到正确的值;-(

//+------------------------------------------------------------------+
//|                                                      ea-hilo.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

//------- input -----------------------------------------------------+
input ushort                           Hilo_Periodo=4;
input ENUM_MA_METHOD                   Hilo_Metodo=MODE_SMA;

//------- global variables ------------------------------------------+
double Hilo_Handle = INVALID_HANDLE; //Hilo Handle
double Hilo_ma[1]; //hilo ma
double Hilo_cl[1]; //hilo close
int    Shift=1;    //Bar on which indicators are checked: 0 - shaped bar, 1 - the first shaped bar
datetime ctm[1];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CopyTime(_Symbol,PERIOD_CURRENT,0,1,ctm)==-1)
     {
      return(false);
     }

     //---- get Hilo Moving Average
     Hilo_Handle=iCustom(_Symbol,PERIOD_CURRENT,"gann_hi_lo_activator_ssl",Hilo_Periodo,Hilo_Metodo);
     if(Hilo_Handle!=INVALID_HANDLE)
        ChartIndicatorAdd(0,(int)ChartGetInteger(1,CHART_WINDOWS_TOTAL),Hilo_Handle);  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
        if(CopyBuffer(Hilo_Handle,0,Shift,1,Hilo_ma)==-1 ||
            CopyClose(_Symbol,PERIOD_CURRENT,0,1,Hilo_cl)==-1
            //CopyClose(_Symbol,PERIOD_CURRENT,Shift,1,Hilo_cl)==-1
            ) return;
            
         //Hilo Buy
         if (Hilo_cl[0]>Hilo_Handle) {
         Comment ("BUY SIGNAL "+Hilo_cl[0]+">"+Hilo_Handle);
         return;
         }
         else
         //Hilo Sell
         if (Hilo_cl[0]<Hilo_Handle) {
         Comment ("SELL SIGNAL "+Hilo_cl[0]+"<"+Hilo_Handle);
         return;
         }
         Comment ("NO SIGNAL");
  }
//+------------------------------------------------------------------+
为什么你要用手柄来比较数值?手柄是一个手柄 - 它不能与价值相比较
 
mntiwana:

最亲爱的MLADEN

这里有一个错误的问题,它可以通过所有2种方式删除.....,在(tdelete)之前添加 "t",并在删除后添加 "pendingorder"(deletependingorder)......,我的问题是,哪一种是最好的正确方式?

你的指导和意见是最真实的。

问候


在新的metatrader 4中,delete是一个保留词。如果一个函数、变量或任何代码部分(除了常规的新的删除运算符)使用该名称,它需要被重新命名 - 添加 "t "只是一个快速解决方案,但除了 "delete "以外的任何名称都可以做到。
 
mladen:
在新的metatrader 4中,删除是保留词。如果一个函数、变量或任何代码部分(除了常规的新的删除操作符)使用该名称,它需要被重新命名 - 添加 "t "只是一个快速解决方案,但除了 "删除 "之外的任何名称都可以。

亲爱的MLADEN

谢谢你的指导帮助,现在明白了,谢谢。

我们如何删除这些警告?.....,如果让这些警告保持原样,是否会影响代码的功能。

"检查运算符的优先级,以确定可能的错误;使用括号来澄清优先级"

要添加什么,或者做什么?

问候