错误、漏洞、问题 - 页 2684

 
fxsaber:

你理解错了。它确实可以在任何终端上进行搜索。但我只能靠自己 的力量进入账户。在其他任何终端上都没有。

最有可能的是,无法连接的终端已经缓存了旧的接入点,没有新的接入点(经纪人改变接入点配置)。

1) 你以前是否在未连接的终端上对Swissquote-Server进行过连接(成功或不成功)?

2) 进入开放账户窗口,输入 "Swissquote-Server",按回车键,等待成功后再尝试连接。

3) 这是一台重新安装的/新的/未使用的电脑吗?它是什么操作系统,更新是最新的吗?

 
Renat Fatkhullin:

很可能在连接失败的终端上,旧的接入点被缓存,没有新的接入点(经纪人改变接入点配置)。

1) 在一个未连接的终端上,你以前是否与Swissquote-Server进行过连接(成功或不成功)?

我没有。

2) 进入开放账户窗口,输入 "Swissquote-Server",按回车键,等待成功后再尝试连接。

当我需要连接到一个不在列表上的服务器时,我正是这么做的。服务器被列出,没有连接。

3) 这是一台重新安装的/新的/未使用的电脑吗?什么操作系统,是否有任何更新?

本地终端。

2020.03.26 08:05:40.967 Terminal        Swissquote Bank MT5 Client Terminal x64 build 2368 started for Swissquote Bank SA
2020.03.26 08:05:40.969 Terminal        Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:05:40.969 Terminal        C:\Program Files\Swissquote Bank MT5 Client Terminal


外星人终端。

2020.03.26 08:06:51.678 ICMarkets - MetaTrader 5 x64 build 2368 started for International Capital Markets Pty Ltd.
2020.03.26 08:06:51.679 Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:06:51.679 C:\Program Files\ICMarkets - MetaTrader 5


在同一台机器上运行。如果我破坏了配置文件夹,连接就会通过。但这样我就失去了研究终端上所有其他账户的数据。


ZS 你能把服务器的IP地址发给我吗,我可以直接试一下?

 
fxsaber:

我没有。

当我需要连接到一个不在名单上的服务器时,我总是这么做。服务器被列出,没有连接。

本地终端。


外星人终端。


在同一台机器上运行。如果我破坏了配置文件夹,连接就会消失。但这样我就失去了研究终端上所有其他账户的数据。


ZS 你能把服务器的IP地址发给我吗,我可以直接试一下?

我顺利接通了,没有任何问题。

2020.03.26 13:34:06.558 Network new demo account '6036452' opened on Swissquote-Server
2020.03.26 13:34:21.308 Network '8550475': disconnected from MetaQuotes-Demo
2020.03.26 13:34:22.540 HistoryCenter   delete old files from E:\MetaQuotes\MetaTrader 5\bases\Swissquote-Server\history\AEP, last access time 2018.03.02 18:42
2020.03.26 13:34:23.588 Experts automated trading is disabled because the account has been changed
2020.03.26 13:34:23.946 Network '6036452': authorized on Swissquote-Server
2020.03.26 13:34:23.946 Network '6036452': previous successful authorization performed from 176.49.173.218 on 2020.03.26 07:34:05
2020.03.26 13:34:25.751 Network '6036452': terminal synchronized with Swissquote Bank SA
2020.03.26 13:34:25.751 Network '6036452': trading has been enabled - hedging mode
2020.03.26 13:34:26.843 Network '6036452': scanning network for access points
2020.03.26 13:35:01.961 Network '6036452': scanning network finished
 
Artyom Trishkin:

我得到了所有的连接,没有任何问题。

是的,演示品进入没有任何问题。

2020.03.26 08:42:07.401 new demo account '6036453' opened on Swissquote-Server
2020.03.26 08:42:09.188 '6036453': authorized on Swissquote-Server


在真实的情况下,它并没有。

2020.03.26 08:42:40.551 '6036453': disconnected from Swissquote-Server
2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server
 
fxsaber:

是的,演示品进入没有任何问题。


关于真正的,没有。

有两个服务器。

我在第一条上创建了演示。

也许在第二条上是真的?

 
Artyom Trishkin:

有两个服务器。

我在第一个项目上创建了一个演示。

一样。

也许真正的在第二个?

第二家有一个不同的交易服务器。

 

请大家帮忙

不久前,我开始编程,我得到了这些错误,告诉我这是什么原因?

1.我使用了MarketInfo(Symbol(),MODE_TICKVALUE)。 我的欧元兑美元对 在测试器中显示为0.01,但在终端是1。

2. iClose,iOpen,iHigh,iLow有时在shift=1时返回0。


谢谢你

 

ArrayResize()+reserve的速度问题仍然困扰着我。
这一次的问题涉及到原始数据类型 的数组。

#define  K 1000
#define  M (1000 * K)

#define    SpeedTest(test_count,msg,EX_pref, EX_test, EX_post) {         \
               uint result = 0; ulong count=test_count;                 \
               for(ulong ii=0;ii<count&&!_StopFlag;ii++){               \ 
                   EX_pref                                              \
                   uint start=GetTickCount();                           \
                   EX_test                                              \
                   result += GetTickCount() - start;                    \ 
                   EX_post                                              \
               }                                                        \
               printf("%-60s: loops=%i ms=%u",msg,count,result);}
                                              
class A{
public:
   int data;
};


template<typename T>
void test1(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize all", typename(T)),
      {}
      ,
      {
         ArrayResize(class_array, array_size);
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, array_size, i);
            class_array[i-1] = NULL;
         }
      },
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

template<typename T>
void test2(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize one by one with reserved memory", typename(T)),
      {},
      {
         ArrayResize(class_array, array_size);         
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, i, i);
            class_array[i-1] = NULL;
         }
      },   
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

 


void OnStart()
{
  const int test_count = 1;
  const int array_size = 20*K*K;  
  
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<int>(test_count, array_size);              // Avg time: release( 120) / debug( 155)
   test2<int>(test_count, array_size);              // Avg time: release( 205) / debug( 235)
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<double>(test_count, array_size);           // Avg time: release( 155) / debug( 190)
   test2<double>(test_count, array_size);           // Avg time: release( 250) / debug( 260)
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<A*>(test_count, array_size);              // Avg time: release( 190) / debug( 200)
   test2<A*>(test_count, array_size);              // Avg time: release( 330) / debug( 340)
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
}

与前一版本相比,代码略有改进。
- 在这两个测试中,ArrayResize被保证调用的次数是相同的,之前的优化器贡献了...
- ArrayFree时间不包括在运行时间计算中。


对于原始数据类型,ArrayResize()+reserve的执行速度比通常的ArrayResize()慢3倍以上(205 ms vs. 65 ms)。
这是非常多的,所以对于Generic\ArrayList.mqh在20M调用CArrayList::Add时,没有和保留内存的速度相差1.85倍(170 ms vs 95 ms)。
这里显然有问题。

有什么方法可以提高原始ArrayResize()+reserve功能 类型的速度吗?
那里会有什么大的损失呢?

我明白现实可能要复杂得多,但只有几个检查会影响执行的结果。

IsDynamic == true
IsIndexBuffer == false
IsSetAsSerrias == false
new_size > size
new_size < 容量
IsFundamental == true(或构造器和析构器 == 0)

有些检查甚至可以通过比特掩码来组合,以加快代码执行的主要、更可能的方向。
而在少数情况下,当比特掩码检查失败时,要额外指定哪些标志会影响结果......

 
fxsaber:

是的,演示品进入没有任何问题。

关于真正的,没有。

2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server

日子过得不错。

1.在终端(研究)上,没有与真实账户的连接,这个账户出现在账户列表中?

也就是说,这个xxxxxxx账户是否显示在导航器中?


2.如果有一个XXXXXXX账户,它是否在冒号后显示YYYYY的名字(而不仅仅是数字)?

3.如果账户是xxxxxxx,那么如果你删除它(在导航器中通过删除菜单命令)并重新连接,那么连接就成功了?


谢谢你

 
Anton:

1.在没有连接到真实账户的终端(研究终端)上,这个账户是否存在于账户列表中?

也就是说,这个XXXXXXX账户是否显示在导航器中。

它显示XXXX。

2.如果账户XXXXXXX存在,它是否在冒号后显示名称YYYY(而不仅仅是数字)?

没有YYYY,也没有冒号。

3.如果我有XXXXXXX账户,如果我删除它(在导航器中通过删除)并重新连接它,它是否会连接?

知道了!


看起来我第一次连接时,只是输入了服务器名称。这个条目出现在导航器中,但没有贸易服务器数据,那里出现了空白。而且,即使通过搜索该账户强行输入数据后,仍然被替换成了空白。


谢谢你!


SZZ 论题。

关于交易、自动交易系统和测试交易策略的论坛

新版本的MetaTrader 5平台build 2280

fxsaber, 2020.02.19 11:32

当连接到一个现有的交易账户时,如果我指定了一个错误的交易服务器名称,该账户就会在导航器中移动,让人以为它已经消失了。


在登录MetaQuotes-Demo时,指定MetaQuotes-Demo2服务器地址。看看在导航仪中会发生什么。请在连接成功后才将此规则应用于现有账户。

搜索字符串:Uluchshenie 005