查看执行模式的源代码
←
执行模式
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
=事件触发= 在公式中,可以编写一小段代码,这段代码是在某些事件发生的时候才执行。 这类事件包括'''初始化'''和'''执行完毕''' ===初始化=== 只要编写一个内置函数,并且命名为OnInit,那么它就会在初始化时执行。 fucntion OnInit Begin //做一些只需要做一次,没有必要每次行情来时都做的工作。例如,设置画线的颜色,设置账号。等等。 End 那么,OnInit究竟具体在什么时候会发生呢。 包括并且不限于以下情况,例如: 1.切换成其他品种; 2.切换成其他周期; 3.服务器推送来一些旧的历史数据(某种情况下,可能客户端会先请求最新一段数据,再请求旧的数据) 初始化事件会让公式清除所有状态重新运行计算1次,后续行情到来不再计算。 ===执行完毕=== 只要编写一个内置函数,并且命名为OnExit,那么它就会在公式执行到末尾时执行。 function OnExit Begin //做一些收尾工作 End 为什么需要OnExit呢,是因为目前公式引擎支持“中断”。所谓中断,就是如果某些公式计算一次时间特别长,有时公式运行到一半,还没计算完,用户切换到其他品种了,那之前的计算就没有必要继续下去,这时候,系统就会强行中断计算。 但是,用户可能希望某些计算是必须要执行的,例如,这个公式可能是调用DLL的,DLL可能在开始分配了一些资源,而且必须在运算完毕后释放,这部分计算就可以写在OnExit中,正常情况下它们会在公式主体运行结束之后被执行。如果公式主体被中断,它们会在中断后执行。 ===公式主体=== 公式的主体是名为OnStart的函数,象这样: Function OnStart Begin mm:ma(c, close ); End 但是,为了方便编写,上述的“Function OnStart”可以省略。 也就是可以只写 mm: ma( c, Close ); 凡是没有包在其它函数体里面的代码都被认为是 OnStart 函数的内容。除非显式声明了 OnStart 函数。如果既声明了OnStart函数,又写了一段没有被任何函数包裹的代码,那么没有被包裹的代码被直接忽略,认为是空白。
返回到
执行模式
。
个人工具
内存:18904KB
3.128.94.112
该IP地址的讨论
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
金魔方论坛
下载金魔方
帮助
工具箱
链入页面
链出更改
特殊页面