错误、漏洞、问题 - 页 1116

 

我在运行测试 时一直看到这个情况。

2014.03.28 17:12:28 核心1 连接到127.0.0.1:3000
2014.03.28 17:12:38 核心1 测试员代理授权错误
2014.03.28 17:12:38 核心1 连接关闭

提供测试的机会更多的是作为一种例外。远程代理被禁用,没有防病毒。
这种情况如何处理?

 
cDan:

我在运行测试 时一直看到这个情况。

2014.03.28 17:12:28 核心1 连接到127.0.0.1:3000
2014.03.28 17:12:38 核心1 测试员代理授权错误
2014.03.28 17:12:38 核心1 连接关闭

提供测试的机会更多的是作为一种例外。远程代理被禁用,没有防病毒。
这种情况如何处理?

杀毒软件没有?
 
没有杀毒软件
 

过奖了,但这里也许有一个更快的答案。

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

初学者的问题

C-4, 2014.03.28 13:23

谁能给我解释一下,为什么上述代码在测试器中不工作,而在实时中却能工作!!!?特 别感兴趣的是,为什么在HistorySelect(0, TimeCurrent())之后,HistoryOrderGetInteger属性在测试器中无法使用...

#include <Trade\Trade.mqh>

CTrade trade;

int OnInit()
{
   trade.LogLevel(LOG_LEVEL_NO);
   return INIT_SUCCEEDED;
}
void OnTick()
{
   if(!DetectNewBar())return;
   trade.Sell(0.1);
   HistorySelect(0, TimeCurrent());
   for(; dealsCount < HistoryDealsTotal(); dealsCount++)
   {
      ulong ticket = HistoryDealGetTicket(dealsCount);
      RecalcDeal(ticket);
   }
}

bool DetectNewBar(void)
{
   MqlRates bars[1];
   CopyRates(Symbol(), PERIOD_M1, 0, 1, bars);
   if(bars[0].time != timeLastBar)
   {
      timeLastBar = bars[0].time;
      //printf(expertName + " new bar detected: " + TimeToString(bars[0].time));
      return true;
   }
   return false;
}

void RecalcDeal(ulong ticketDeal)
{
   //History is selected in OnTick()!
   ulong ticketOrder = HistoryDealGetInteger(ticketDeal, DEAL_ORDER);
   //if(!HistoryOrderSelect(ticketOrder))
   //   printf("order not select.");
   ENUM_ORDER_TYPE type = (ENUM_ORDER_TYPE)HistoryOrderGetInteger(ticketOrder, ORDER_TYPE);
   datetime time = HistoryOrderGetInteger(ticketOrder, ORDER_TIME_SETUP); 
   ulong time_msc = HistoryOrderGetInteger(ticketOrder, ORDER_TIME_SETUP_MSC); 
   printf("Order: " + (string)ticketOrder + " Type: " + EnumToString(type) + " Time: " + (string)time +
          " Time msc: " + (string)time_msc + " Total Orders: " + HistoryOrdersTotal());
}

int dealsCount;

datetime timeLastBar;

策略测试器中的截图。

演示中的实时屏幕截图。

p.s. 有趣的是,测试器中的第一个订单被正确处理了,但其他的却没有。另外,如果我们评论HistroryOrderSelect(ticketOrder),我们在策略测试器中得到一个消息,即该订单没有被选中,在策略测试器中,一切都开始工作,除了第一个订单。


 

第986216号申请的说明性屏幕截图

 

内置的StringSplit函数 是否正确工作?

void OnStart()
{
        string str = "|A|B|";
        string result[];
        int n = StringSplit( str, '|', result );
        Print( "количество полученных подстрок=", n );
        for ( int i = 0; i < n; i++ )
                Print( "подстрока(", i, ")=", result[ i ] );
}

产生以下结果。

事实证明,在"|A "的情况下,'|'字符分离了空字符串和A,而在 "B|"的情况下,它没有分离B和空字符串。但是,如果它是一个分隔符,它必须分隔一些东西,否则"|A|B|"和 "|A|B " 之间 就没有区别 同时"|A|B|"和 "A|B|"之间也有区别 。如果在一种情况下允许空行,那么在另一种情况下也应该允许

 

分割正确,但不是全部通过。最后还应该发放一个空白令牌。

把它放在serviced中。

 

我的评级有问题,代码下载计数器似乎已经停机。

哦,这不是一个错误...您是否将MQL4的代码添加到您的评级中?

 

是的,我们正在努力将MQL4代码库转移到新的MQL5网站引擎。

我们正在努力实现平台的统一。

 
A100:

内置的StringSplit函数是否正确工作?

产生以下结果。

事实证明,在"|A "的情况下,'|'字符分离了空字符串和A,而在 "B|"的情况下,它没有分离B和空字符串。但是,如果它是一个分隔符,它必须分隔一些东西,否则"|A|B|"和 "|A|B " 之间 就没有区别 同时"|A|B|"和 "A|B|"之间也有区别 。如果在一种情况下允许空行,那么在另一种情况下也应该允许

谢谢你的留言,在4号和5号终端进行了纠正。