部分代码:
int OnInit()
{
Print( "SL mover started" );
return( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
modifySLs();
}
void modifySLs()
{
int i, total = OrdersTotal();
Alert( total );
Print( "modify runs" );
for( i = 0; i < total; i++ ) {
modifySLIfNeededForSelectedOrder( i );
}
}
为什么OnTick()
无法运行?
它不会在日志中打印任何消息,当我在Strategy Tester中运行时也不会调用Alert()
函数。 OnInit()
功能正常工作 - 在日志中打印&#34; SL移动器开始&#34;。
答案 0 :(得分:0)
Alert()
功能在策略测试程序中不起作用。
所以最好将其删除。
Print()
功能在策略测试程序的优化过程中不起作用。
因此,除非您的策略测试程序具有遗传优化复选框,否则不会产生任何问题。
如果怀疑确实&#34;进入&#34; OnTick()
代码块可以为其配备一个非阻塞智能通知器:
int aGlobatTickCOUNTER = 0;
void OnTick()
{
Comment( "[OnTick()].INF::", ++aGlobalTickCOUNTER );
modifySLs();
}
答案 1 :(得分:0)
它运行。你认为它不会执行的天气,它会执行。有用。根据图表在最后一个浮点值中更改值时,Ontick()
函数正在运行一次。
但问题是你看不到它是否有效,因为Stratergy测试仪不允许Alerts()
和print()
功能。它只允许执行OrderSend()
,OrderClose()
,Ordermodify()
等函数。