初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1365

 

你认为什么是最好的计算方法

//+------------------------------------------------------------------+
//| Расчет цены                                                      |
//+------------------------------------------------------------------+
int CNewBar::PriceHL2(void)
  {
   double pr;
   int res=ArrayResize(this.m_pr_hl2,this.m_rt);
   for(int b=this.m_rt-this.m_pc; b>0; b--)
     {
      pr=MathAbs((iHigh(this.m_symbol,this.m_timeframe,b) + iLow(this.m_symbol,this.m_timeframe,b))/2);
      m_pr_hl2[this.m_rt-b]=pr;//<0 ? NULL : pr;
     }
   return(res);
  }

还是说,最好是通过以下方式拉出

int  CopyHigh( 
int  CopyLow( 
 
iCustom指标能否在网页版的终端中显示?
 

如何声明一个类,使d[].m[]; 类成为公共的

class CSMA_Greed : public CObject
  {
   CMAOnArray        chsma;
   struct SDoubleArray { double       m[];};
   string            m_symbol;
   ENUM_TIMEFRAMES   m_timeframe;
   int               m_max_period;
   int               rt,prv;
   double            temp;
   string            Symbol(void)         { return this.m_symbol;    }
public:
   SDoubleArray      d[];
                     CSMA_Greed(const string symbol,const ENUM_TIMEFRAMES timeframe,const int max_period);
                    ~CSMA_Greed(void){};
   void              Init(int MaxMAperiod);
   void              Solve(const int aRatesTotal,const int aPrevCalc,const double  &aData[]);
  };

原来有一个数组,但我不能把它弄出来

CG.D[1199].M[3720]
 

有趣的是

在OnInit()中创建了它

   CNewBar *nb = new CNewBar(Symbol(), n_period);
      if(nb==NULL)
         continue;
      if(!list_new_bar.Add(nb))
        {
         delete nb;
         continue;
        }


请告诉我,在后续函数中声明参数是否会给系统带来负担?

CNewBar* nb = list_new_bar.At(i);
      if(nb == NULL)
         continue;
 
Mikhail Toptunov #:

有趣的是

在OnInit()中创建了它


请告诉我,在后续函数中声明一个参数是否会给系统带来负担?

不,在随后的函数中,你并没有创建一个新的,你只是从列表中获得一个指向OnInit()中已经创建的对象的指针。

 
你好。我如何制定条件在mql5中打开一个交易?条件:在某一时间框架上,价格在过去的N个柱子中没有变化。
 
问候!
我已经三个多月没有登录MetaTrader 5了(我在出差,没有连接)。现在我根本无法登录我的账户。
我怎样才能再次使用该账户?或者至少从里面提取资金?
 
knoughr #:

在某张纸上写下经纪人的网站、用户名和个人账户的密码。这是一张纸,你在注册时在上面仔细写下了所有这些信息。你有一个,对吗?然后就很简单了--你可以在你的个人办公室做任何你需要做的事情:存款、取款、开立新账户、修改旧账户的密码。

如果你不这样做--谁不躲起来,这不是我的错。
 

谁能建议一下,如果一个数组有定义为EMPTY_VALUE 的空值,如何找到该数组的最大值或最小值。


所以这个函数不起作用。

//+------------------------------------------------------------------+
//| Получим High для заданного номера бара                           |
//+------------------------------------------------------------------+
double CNewBar::iHighMax(int ot,int bands)
  {
   double result=-1;
   result=m_ExtLowerBuffer[ArrayMaximum(m_ExtLowerBuffer,ot,bands)];
   return(result);
  }

如果我把EMPTY_VALUE 改为NULL,它也不工作。

也许系统有一个更简单的解决方法,或者我将尝试做一个中文谜题)。

提前感谢,好心人。

 
Mikhail Toptunov #:

谁能建议一下,如果一个数组有定义为EMPTY_VALUE 的空值,如何找到该数组的最大值或最小值。


所以这个函数不起作用。

如果我把EMPTY_VALUE 改为NULL,它也不工作。

也许系统有一个更简单的解决方法,或者我将尝试做一个中文谜题)。

提前感谢,好心人。

据我所知,你需要找到指标的最大值,这个值永远不会等于零。

我讨厌NULL,总是在数值中应用0.0,这从来没有失败过。