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

 

Igor Makanu: 当然是离题了。这里有一个关于你的代码的小想法。如果你使用一个数组,你可以设置无限数量的间隔。

CWork *Work[];

int OnInit()
  {
   if(ArrayResize(Work,3) != 3)
      ExpertRemove();
   Work[0] = new CWorkTime(StartHour_0,StartMinute_0,StopHour_0,StopMinute_0);
   Work[1] = new CWorkTime(StartHour_1,StartMinute_1,StopHour_1,StopMinute_1);
   Work[2] = new CWorkTime(StartHour_2,StartMinute_2,StopHour_2,StopMinute_2);

   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
   for(int i=0; i<ArraySize(Work)); i++)
      if(Work[i] != NULL)
         delete Work[i];
   ZeroMemory(Work);
  }

void OnTick()
  {
   for(int i=0; i<ArraySize(Work)); i++)
      if(Work[i].Disable())
        {
         Comment("Не торговое время!!!");
         return;
        }
/* work */
  }
 
Konstantin Nikitin:

Igor Makanu: 当然是离题了。这里有一个关于你的代码的小想法。如果你使用一个数组,你可以定义无限数量的间隔。

为什么会偏离主题呢?- 这个话题是技术性的,我将始终支持任何关于技术问题的讨论。


当然,你可以使用前类的数组。 我检查了我的类几次--一切似乎都在正常工作,你可以为每分钟设置一个时间间隔,并通过任何TS进行交易;)


创建这种方式来分析交易时间的想法对我来说更像是将字符串转换为数据时间,而我的代码的含义是--每天一次将交易的开始和结束计算为数据时间,直到新的一天没有意义,重新计算这些间隔,它来到了新的一天--重新计算所有的数据时间,并在数据时间之间进行比较,它必须发生的非常快,即不会加载终端(测试者)。


塞里奇29

为什么这段代码不起作用?

也许一个类应该通过冒号::来描述? 创建一个指针,将指向另一个指针的想法。

你有语法错误,它应该是这样的。

#include <Object.mqh>
class CArray : public CObject
  {
public:
   double            m_Array[100];
  };

void OnStart()
  {
   CArray *arr=new CArray;
   arr.m_Array[22]=1.23456;
  }
 
novichok2018:

你好!

再次感谢Alexey Viktorov 提供的关于报价的提示--一切顺利。本周一我们有一个情况--德国人有交易,而英国人有一天休息。事实证明,在欧元开仓 的条件下,使用了英镑的旧值。因此请求:建议如何在代码中设置检查这两个符号在这一天的交易?

谢谢你。

对不起,我今天太懒了,没有看文档。而记忆芯片早已烧毁了几乎所有的记忆,剩下的只是硬化。 沼泽化。

 
Alexey Viktorov:

对不起,我今天太懒了,没有看文档。而记忆芯片早已烧毁了几乎所有的记忆,剩下的只是硬化了

好吧,我还没有偷懒,尽管我自己的蠢事已经够多了。但在哪里读呢?我找不到它。我的眼睛在电脑上都乱了。

 
novichok2018:

好吧,我还没有偷懒,尽管我自己的蠢事已经够多了。但在哪里读呢?我找不到它。我的眼睛在电脑上被搞乱了。

来自文件

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)在以下情况下可能返回错误

  • 没有连接到贸易服务器。可以用TerminalInfoInteger(TERMINAL_CONNECTED)检查)。
  • 交易账户已转为只读模式(发送至存档)。
  • 该账户的交易已被禁止在贸易服务器端进行。
  • 与交易账户的连接是在投资者模式下进行的。

如果不完全是这样,就寻找其他选择。

 
Alexey Viktorov:

来自文件。

如果不完全是这样,就寻找其他选择。

不幸的是,事实并非如此。账户中不禁止交易--我们用欧元交易,但我们不用英镑交易。因此,我们需要检查特定符号的交易情况。也许有人遇到过这样的事情,或者知道如何解决这个问题。我在论坛或谷歌上还没有找到。

 
novichok2018:

不幸的是,事实并非如此。账户中不禁止交易 - 我们以欧元交易,但不以英镑交易。因此,我需要检查某个特定符号的交易情况。也许有人遇到过这样的事情,或者知道如何解决这个问题。我在论坛或谷歌上还没有找到。

文件中还有其他功能

IsTradeAllowed(symbol,TimeCurrent()
TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)
 

下午。

在MT4中,趋势线对象设置中的 "描述 "字段中指定的文本显示在趋势的左侧(左端)。也许有人有现成的解决方案,如何在右端显示文本?

 
Taras Slobodyanik:

文件中还有其他功能

试过了。

bool uk = IsTradeAllowed("GPBUSD",TimeCurrent());
bool de = IsTradeAllowed("EURUSD",TimeCurrent());

      if(de && uk) Alert("uk == true");

27日星期一也写得很真实,尽管那是英国的一个假日。

 
novichok2018:

试过了。

27日星期一说的是真的,尽管那是英国的一个假期。

那么你需要确定是放假还是禁止交易?
27日允许交易。

如果是周末,那么你需要一个新闻分析器--来识别假期/周末。

原因: