[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 244

 
大家下午好。我有这样一个问题:我想让EA从其他货币对和时间框架中请求数据。为了做到这一点,我必须保持几十个图表的开放(尽管EA只安装在一个图表上)。所有这些都会 "吃掉 "大量的内存,并降低VPS的速度(即使设置减少历史/窗口中的条数)。有没有什么方法可以在不打开大量图表的情况下解决这个问题,但让所需的时间序列继续存在?提前感谢您的答复。
 
AndEv:
大家好。我有个问题:我想让我的EA从其他货币和时间框架中请求数据。为此,我必须保持打开几十个图表(尽管我的专家顾问只在一个图表上)。所有这些都会 "吃掉 "大量的内存,并降低VPS的速度(即使设置减少历史/窗口中的条数)。有没有什么方法可以避免打开大量的图表,但让所需的时间序列继续存在?提前感谢您的答复。

你到底需要其他货币的什么?例如,你可以在指标中指定任何货币和时间框架,并以这种方式获得数据。

double iMA(NULL, 0, ...) // по символу и таймфрейму текущего графика
double iMA("AUDUSD", PERIOD_W1, ...) // по AUDUSD и по недельному таймфрейму

而且,你不需要保持澳元兑美元,W1图表 打开。

 
paladin80:

你到底需要其他货币的什么?例如,你可以在指标中指定任何货币和时间框架,并以这种方式获得数据。

而且,你不需要保持澳元兑美元,W1图表打开。

任何指标都是基于时间序列(在你的例子中是"AUDUSD"PERIOD_W1)进行计算的,而时间序列没有图表就不存在。问题是,是否有任何办法绕过这一点。在MT4中,你无法做很多事情,但有能力的人(例如Zhunko)使很多事情成为可能。我试着按你说的去获取数据,但没有成功,尽管市场观察窗口中出现了该货币对。打开相关图表后,我能够立即获得必要的数据。
 
AndEv:
任何指标的计算都是基于一个时间序列(在你的例子中是"AUDUSD"PERIOD_W1),而一个时间序列没有图表是不存在的。问题是,是否有任何办法绕过这一点。在MT4中,你无法做很多事情,但有能力的人(例如Zhunko)使很多事情成为可能。我试着按你说的去获取数据,但没有成功,尽管市场观察窗口中出现了该货币对。打开相关图表后,立即可以得到必要的数据。

一个时间序列的存在不需要图表,如果该工具当然是开放的,并且有一个持续的参考这个时间框架。在这种情况下,根本不需要一个图表。
 
AndEv:
任何指标都是基于时间序列(在你的例子"AUDUSD"PERIOD_W1)进行计算的,但时间序列没有图表就不存在。问题是,是否有任何办法绕过这一点。在MT4中,你无法做很多事情,但有能力的人(例如Zhunko)使很多事情成为可能。我试着按你说的去获取数据,但没有成功,尽管市场观察窗口中出现了该货币对。打开相应的图表后,我马上设法获得了必要的数据。
做了一个这样的代码。

double MA_AUDUSD_M5, MA_AUDUSD_W1, MA_EURCAD_H1;
//+------------------------------------------------------------------+
int start()
  {
//----
MA_AUDUSD_M5=iMA("AUDUSD",PERIOD_M5,20,0,MODE_SMA,PRICE_CLOSE,0);
MA_AUDUSD_W1=iMA("AUDUSD",PERIOD_W1,20,0,MODE_SMA,PRICE_CLOSE,0);
MA_EURCAD_H1=iMA("EURCAD",PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0);

Comment ("MA_AUDUSD_M5 = ",DoubleToStr(MA_AUDUSD_M5,Digits),"\n",
         "MA_AUDUSD_W1 = ",DoubleToStr(MA_AUDUSD_W1,Digits),"\n",
         "MA_EURCAD_H1 = ",DoubleToStr(MA_EURCAD_H1,Digits));
//----
   return(0);
  }
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+

在对欧元兑美元进行可视化测试时,日线的结果是这样的。


欧元兑美元确实有问题。我记得我不使用这种仪器,也许没有历史记录,我下载了(F2等),重新启动了终端,这就是我得到的结果。


有关于欧元兑美元的数据。也许,我应该告诉VPS 所需仪器的历史。

 
AndEv:
任何指标的计算都是基于一个时间序列(在你的例子中是"AUDUSD"PERIOD_W1),而一个时间序列没有图表是不存在的。问题是,是否有任何办法绕过这一点。在MT4中,你无法做很多事情,但有能力的人(例如Zhunko)使很多事情成为可能。我试着按你说的去获取数据,但没有成功,尽管市场观察窗口中出现了该货币对。打开相关图表后,立即可以得到必要的数据。

预防性地询问所需仪器的数据,它是在没有图表的情况下建立的,但这需要时间。
 
FAQ:

预防性地要求所需仪器的数据,它是在没有图表的情况下建立起来的,但需要时间。
这就是问题的关键,当你再次提出要求时,有可能得到数据。但你如何在第一次就实现它呢?
 
hoz:

而这里实际上是火鸡本身。

https://www.mql5.com/ru/code

我对作为交易信号的指标本身不感兴趣。但我注意到这个有趣的名字,决定看看它的 "内脏"。所以我偶然发现...

我决定把它变成 "平常 "的样子(原谅我这个作者)。我得到了什么(在文件中)。
附加的文件:
ssl.mq4  4 kb
 
AndEv:
这就是问题的关键,当你再次提出要求时,有可能得到数据。但是,你如何使它第一次就成功?

你试过错误处理吗?
 
paladin80:

也许VPS应该讲述被吹嘘的工具上的故事。

下载历史记录不会有任何作用,因为查询一直需要新鲜数据。我也做了这样一个脚本,然后我把代码移到了猫头鹰上,这样就可以从传入的tick中完成发射。在dynamics中,如果不打开图表,我必须查询两次,只有在这种情况下我才能得到新的数据。我不知道如何做到不重复查询。