//+------------------------------------------------------------------+//| Service program start function |//+------------------------------------------------------------------+intOnStart()
{
Comment("text");
return(0);
}
intOnStart()
{
ChartCommentSet("Hello Service", ChartFirst());
return(0);
}
//+------------------------------------------------------------------+ //| Функция устанавливает текст комментария в левом верхнем углу | //| графика. | //+------------------------------------------------------------------+ bool ChartCommentSet(conststring str, constlong chart_ID=0)
{
//сбросим значение ошибки ResetLastError();
//установим значение свойства if(!ChartSetString(chart_ID, CHART_COMMENT, str))
{
//выведем сообщение об ошибке в журнал "Эксперты" Print(__FUNCTION__+", Error Code = ", GetLastError());
return(false);
}
//успешное выполнение return(true);
}
//+------------------------------------------------------------------+//| Service program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
ChartCommentSet("Hello Service", ChartFirst());
return;
}
//+------------------------------------------------------------------+//| Функция устанавливает текст комментария в левом верхнем углу |//| графика. |//+------------------------------------------------------------------+bool ChartCommentSet(conststring str, constlong chart_ID=0)
{
//сбросим значение ошибкиResetLastError();
//установим значение свойстваif(!ChartSetString(chart_ID, CHART_COMMENT, str))
{
//выведем сообщение об ошибке в журнал "Эксперты"Print(__FUNCTION__+", Error Code = ", GetLastError());
return(false);
}
//успешное выполнениеreturn(true);
}
//+------------------------------------------------------------------+
雷纳特,是否有可能在服务中实现自定义玻璃?
文档中说,OnBookEvent处理程序在指标和专家中被调用。
服务方面呢?如何在服务中运行堆栈?
我希望能够在服务中运行我的自定义堆栈。
根据你的说法,服务不支持OnStart以外的任何处理程序,这就成了一个问题。
问题是,在指标和专家顾问 方面,服务要比系统OnTimer快得多。
而且最好使用服务来构建自定义堆栈。
p.s.
我读过这篇文章,对一些熟练的程序员不能使用服务感到惊讶。
服务很酷,它们可以实现很多东西,最多可以异步执行整个项目,在服务之间共享任务的逻辑。
,但更合理的做法是在语言中加入Thread(params)函数,这将实现对传递给函数的参数的线程并行。
好吧,如果会有线程,那么进程就会以Process(params)函数的形式与它们一起进行。
其中一个重要的优点,服务的处理速度比系统时间快,也就是说,它的处理时间仅为1ms,甚至可能更短。
因为我在While()循环中强制设置了Sleep(1)的限制。
系统的OnTimer()与EventSetMillisecondTimer(1)事件在Expert Advisors和指标中的处理时间是~20ms。
就处理性能而言,这并不是一个糟糕的收获。
不幸的是,服务中不支持专家顾问处理程序,这严重限制了可能的解决方案。
很久以前,用户要求在没有时间表的情况下实现专家顾问的启动,服务正好可以解决这个问题。
从服务菜单中的 "自动交易 "按钮来看,交易的可能性是存在的。
但你不能仅用OnStart处理程序来建立一个完整的交易解决方案。
确实非常方便。
重新启动计算机,忘记了RAMDrive。运行MT5,它立即报告了一个问题。
使用RamDisk的自动安装+结点+动态分配不是更容易吗?
当启动PC时,它会自动挂载并链接所有东西,如果驱动器上没有足够的空间,它会自动从RAM中添加。
使用RamDisk的自动安装+结点+动态分配不是更容易吗?
在启动时,PC会自动挂载和链接所有的东西,如果磁盘上没有足够的空间,它会自动从RAM中添加。
并非总是需要,这就是为什么我没有在启动时创建它。
终端在重启时喜欢改变自定义符号的 属性。例如,其货币。
这就是服务部门可以发挥作用的地方。当启动时,它们会纠正测试者的未经授权的行为。
事实上,是否可以输出任何其他图表?
回答我自己 ))
回答我自己 ))
是的--一切都写在左上角
终端在重启时喜欢改变自定义符号的属性。例如,其货币。
这就是服务部门可以发挥作用的地方。它们纠正了测试器在启动时的未授权行为。
关于交易、自动交易系统和交易策略测试的论坛
自定义符号。误差、错误、问题、建议。
fxsaber, 2019.09.15 22:30
解决了终端重启后自动改变自定义符号货币的问题。
在服务中增加启动专家顾问自动优化 的可能性。
还有各种功能,例如,能够知道优化/运行已经完成。