新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 666

 
Roman Sharanov:

我在私下里创建了一个变量

我试着用一个类方法 来处理它

它说该变量未被声明

???

代码在哪里?

 
Artyom Trishkin:

代码在哪里?

该函数不能被外部代码访问

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
 
Roman Sharanov:

我在私下里创建了一个变量

我试着用一个类方法 来处理它

它说该变量未被声明

???

阿尔乔姆-特里什金

但这是不对的。

谁能阻止在计算中使用动态数组?动态数组的大小(如果它不是由子系统监控的指示器缓冲区),你必须自己观察,必要时改变其大小。静态数组在任何时候都有一个固定的大小--它完全取决于手头的任务。

这些毫无根据的胡言乱语是什么?指标在绝大多数情况下,只是计算和显示所需的和足够的计算数据。所有的时间,在每一次打勾。

你在说什么呢?无知?那么最好保持沉默。然后人们会说他们是在MK的官方论坛上看到的。你是在故意制造谎言吗?

阿特姆!不要让我感到厌烦。

没有人阻止你在计算中使用动态数组。

在计算过程中,处理器很忙,不会有写入动态数组的情况。

所以在计算过程中,任何到达动态数组的数据都会被自动忽略。(有时他们把保护,并把它们写进缓冲区)。

我希望这很清楚?

这就是为什么动态数组上的所有数据都分布在静态数组上,以便在处理器工作时不会丢失数据。

而这就是为什么所有的计算都应该在静态数组中进行 !

当然,静态数组的大小应该被设定为 "备用"。这很明显。

但你可以在其中计算,只要你愿意。在这个过程中,没有什么会丢失。

我希望这对你来说是清楚的?

 
Roman Sharanov:

该函数需要从外部代码中无法访问

访问var的公共方法是什么?

情况是这样的。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private:
   int var;
public:
   int               Var(void)      const { return this.var; }
                     newC(int var);
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC(int var)
  {
      this.var = var;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+

你使用Var()方法来获取var。

 
neverness:

阿特姆!不要让我感到厌烦。

没有人阻止你在计算中使用动态数组。

在计算过程中,处理器很忙,不会有向动态数组的写入。

所以在计算过程中,任何到达动态数组的数据都会被自动忽略。(有时他们把保护,并把它们写进缓冲区)。

我希望这很清楚?

这就是为什么动态数组上的所有数据都分布在静态数组上,以便在处理器工作时不会丢失数据。

而这就是为什么所有的计算都应该在静态数组中进行 !

当然,静态数组的大小应该被设定为 "备用"。这很明显。

但你可以在其中计算,只要你愿意。在这个过程中,没有什么会丢失。

我希望它是清楚的。

胡说八道。

 
Artyom Trishkin:

访问var的公共方法在哪里?

它是这样的。

使用Var()方法来获取var。

我需要这些变量只在类内酝酿,这样它就可以从外部代码中访问?

 
Roman Sharanov:

我只需要这些变量在类中酝酿一下,就可以从外部代码中访问。

这个方法在哪里定义?

//+------------------------------------------------------------------+
double varSqrt(){
   return MathSqrt(var);
}
//+------------------------------------------------------------------+
 
Artyom Trishkin:

这个方法在哪里定义?

以下是在类文件中的内容

 

Если говорить об индикаторах, то индикаторы (вообще говоря!) следует вычислять. Но в МТ4/МТ5 мы этого не наблюдаем!

这是什么毫无根据的胡说八道?指标,在绝大多数情况下,除了计算和显示必要的和足够数量的计算数据外,什么都不做。所有的时间,在每一次打勾。

怎么会有这么多废话呢?出于无知的原因?那么最好保持沉默。然后人们会说他们是在MK的官方论坛上看到的。你是在故意制造谎言吗?

阿特姆!

MT4/MT5指标中是否有静态数组?????????????????????

我想知道是哪一个?

什么样的缺陷?- 我马上告诉你--如果有,告诉我在哪里?

据我所知,MT4/MT5的所有指标都是动态的。

是的,一直在跟踪。是的,在每一次打勾时。

但这些是动态数组,不是静态的。

而且这里没有 "破坏"。

 
Artyom Trishkin:

胡说八道。

好吧,如果它是胡说八道,那也是经过经验检验的。

不仅仅是 "理论上的胡说八道"!!。

- 如果计算的时间相当长,则不会将刻度线写入所涉及的数据数组中。

这是一个事实!!!。

原因: