错误、漏洞、问题 - 页 1241

 
barabashkakvn:

更新搜索是在连接到MetaQuotes-Demo服务器时触发的。在以下情况下是有可能的。

  1. 将交易账户从某些账户切换到在MetaQuotes-Demo上开设的交易账户。
  2. 当重新启动终端时。
谢谢你。
 
joo:

:O

不,错误不再出现了。

薛定谔在房间里踱步,寻找一只被弄脏的小猫,但它坐在一个盒子里,既没有死也没有活。)))

 
tol64:

薛定谔在房间里踱步,寻找一只被弄脏的小猫,但小猫坐在箱子里,既没死也没活。)))

确实非常奇怪。下一次什么会停止工作?
 
joo:
确实非常奇怪。下一次什么会停止工作?
这就说不准了。我们必须对它进行检查。)
 
joo:

我把印刷品放好了--错误消失了......。

量子力学中的观察者效应是一种...

当我们把NaN塞进表达式时,我们才重现了你的情况。
 
Renat:
当我们把NaN塞进表达式时,我们才重现了你的情况。

那么Fabs的工作是否正确?

 
joo:

工厂的工作是否正常?

对。
 

下午好,我在实施我认为很简单的计划时请求帮助。

我有一个EA,在一个符号上运行良好。我想对它进行 "调整",使其同时适用于几个符号。为此,我需要适当地创建一个数据数组,其中的成员可以被附在几个不同符号上的EA的所有实例所访问。也就是说,只有一个数据数组,但有多个EA的实例。每个EA实例都可以读取和修改数组成员。

按照我的理解,你需要创建一个具有静态成员(static)的数组。

一个简单的例子:计算所有图表上的点数,其中附加了EA。让我们把EA附加到2个图表上,在OnTick()事件中把计数器增加1。为了简单起见,我试图用一个静态变量计数器来代替数组。不幸的是,每个EA只对它的计数器工作,计数器不是 "通用 "的。结果。

symbol1, tick1 : counter = 0。

symbol1, tick2 : counter = 1;

symbol2, tick1 : counter = 0; - 这里预期 counter = 2

例如,我创建了一个带有计数器的简单类。

//+------------------------------------------------------------------+
//|                                                   TestStatic.mqh |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class TestStatic
  {
private:
static int counter;
public:
                     TestStatic();
                    ~TestStatic();

static void IncreaseCounter();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
TestStatic::TestStatic()
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
TestStatic::~TestStatic()
  {
  }
//+------------------------------------------------------------------+
int TestStatic::counter=0;
TestStatic::IncreaseCounter()
  {
   Print("Symbol: "+_Symbol +", counter: "+ TestStatic::counter);
   TestStatic::counter++;
  };

以下是EA的代码。

//+------------------------------------------------------------------+
//|                                                Exp_testMulti.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
#include <TestStatic.mqh>

static string tickCounter[2][2];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TestStatic::IncreaseCounter();
    
  }
//+------------------------------------------------------------------+

请帮助我理解它,非常感谢您的帮助。

 
VangoghFX:

下午好,我在实施我认为很简单的计划时请求帮助。

我有一个EA,在一个符号上运行良好。我想对它进行 "调整",使它同时适用于几个符号。为此,我需要适当地创建一个数据数组,其中的成员可以被附在几个不同符号上的EA的所有实例所访问。也就是说,只有一个数据数组,但有多个EA的实例。每个EA实例都可以读取和修改数组成员。

按照我的理解,你需要创建一个具有静态成员(static)的数组。

一个简单的例子:计算所有图表上的点数,其中附加了EA。让我们把EA附加到2个图表上,在OnTick()事件中把计数器增加1。为了简单起见,我试图用一个静态变量计数器来代替数组。不幸的是,每个EA只对它的计数器工作,计数器不是 "通用 "的。结果。

symbol1, tick1 : counter = 0。

symbol1, tick2 : counter = 1;

symbol2, tick1 : counter = 0; - 这里预期 counter = 2

例如,我创建了一个带有计数器的简单类。

以下是EA的代码。

请帮助我理解它,非常感谢您的帮助。

下午。具体来说,为了实现你的例子,终端的全局变量(最近有一篇关于这个主题的文章)。关于这样一个阵列...不确定,我应该试试。但我可以建议另一种变体。在一个专家顾问中,规定必要的工作符号,并按照你的建议,制作一个必要数据的静态/全球阵列。并让EA循环浏览所有需要的符号。
 
Tapochun:
下午好。具体到你的ticks例子,全局终端变量就可以了(最近有一篇关于这个的文章)。关于这样一个阵列...我不确定,我需要试试。但我可以建议另一种变体。在一个专家顾问中,规定必要的工作符号,并按照你的建议,制作一个必要数据的静态/全球阵列。并让专家顾问循环查看所有必要的符号。

非常感谢您的答复。

我使用蜱虫的例子作为最简单和最说明问题的例子来描述一般的想法。专家顾问使用更复杂的算法。

我不喜欢将N个符号写在一个EA中的变体,因为它太麻烦了,难以使用。门户网站上有几篇关于这个话题的文章,我也看过:但我不喜欢大循环、数组、复制数据、每个符号都有很多包的变量,等等。在我看来,我想使用一种更简单、更有效的方法:每个符号有一个EA代码(符号由图表决定,EA与之相连)--每个EA的副本与其他副本并行工作。但在这种情况下,做出决策所需的分析信息是相互共享的。

拥有全局变量的想法吸引了我,但这更像是一种程序性的方法,我想利用OOP的所有优势。我计划编写一个单独的类,将必要的分析数据以数组的形式传递给专家顾问,让他们做出交易决定。