MultiCharts编程-PowerLanguage-Execution Control执行控制
[p=30, 2, left] [font=宋体]对于程序脚本的执行,若需要控制它在某种条件下中断对图表数据的计算,可以使用本章的[/font]Abort[font=宋体]或[/font]RaiserRuntimeError[font=宋体]关键字。本章其他关键字则可以设定[/font]PowerLanguage[font=宋体]的浮点运算的容差值。浮点运算一般是含有除法的数学运算,除数一般要指定非零值,再做运算。如:[/font]if aa<>0 thencc=bb/aa;[/p][table=98%][tr] [td=2,1] Abort [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]产生运算错误并中断公式的执行。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]Abort;[/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]Abort;[/p] [p=30, 2, left][font=宋体][size=12.0pt]中断执行脚本,会弹出警示视窗:[/size][/font][/p] [p=30, 2, left][img]http://p.qhlt.cn/filestores/2018/05/09/fe3cd7a85031311f078b0642ac0582ac.png[/img][/p]
[/td] [/tr]
[/table]
[p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcExactAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]0.00[font=宋体][size=12.0pt],[/size][/font]fpcExactAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]5[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcExactAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(5) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为[/size][/font]Exact[font=宋体][size=12.0pt]:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcExactAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为[/size][/font]Exact[font=宋体][size=12.0pt]:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(5); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcHighAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]2.2204460492503131e-14[font=宋体][size=12.0pt],[/size][/font]fpcHighAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]3[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcHighAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(3) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为高:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcHighAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为高:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(3); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcLowAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]2.2204460492503131e-10[font=宋体][size=12.0pt],[/size][/font]fpcLowAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]1[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcLowAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(1) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为低:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcLowAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为低:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(1); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcMedAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]2.2204460492503131e-12[font=宋体][size=12.0pt],[/size][/font]fpcMedAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]2[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcMedAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(2) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为中等:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcMedAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为中等:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(2); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcVeryHighAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]2.2204460492503131e-16[font=宋体][size=12.0pt],[/size][/font]fpcVeryHighAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]4[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcVeryHighAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(4) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为较高:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcVeryHighAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为较高:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(4); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] fpcVeryLowAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]常数,和[/size][/font]SetFPCompareAccuracy[font=宋体][size=12.0pt]联合使用,指定浮点运算容差值为[/size][/font]2.2204460492503131e-8[font=宋体][size=12.0pt],[/size][/font]fpcVeryLowAccuracy[font=宋体][size=12.0pt]可以用数值[/size][/font]0[font=宋体][size=12.0pt]代替。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy(fpcVeryLowAccuracy) [/p] [p=30, 2, left][font=宋体][size=12.0pt]或:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(0) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为较低:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcVeryLowAccuracy); [/p] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的容差值为较低:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(0); [/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] RaiseRunTimeError [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]产生运算错误并显示指定的错误讯息警示。[/size][/font]Run-time-error[font=宋体][size=12.0pt]会中断公式的执行。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]RaiseRunTimeError(“Message”)[/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]参数[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]Message——[font=宋体][size=12.0pt]字符串表达式,用来指定错误信息。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]产生运算错误,弹出警示讯息[/size][/font]”Strategy Stopped”[font=宋体][size=12.0pt]:[/size][/font][/p] [p=30, 2, left]RaiseRunTimeError(“Strategy Stopped”);[/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] RecalcLastBarAfter [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]超过指定时间,则初始化计算。指定时间为秒。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]RecalcLastBarAfter([font=宋体][size=12.0pt]时间[/size][/font])[/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]参数[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]时间[/size][/font]——[font=宋体][size=12.0pt]秒数[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]RecalcLastBarAfter(60) [font=宋体][size=12.0pt]自上次计算后如果超时[/size][/font]1[font=宋体][size=12.0pt]分钟的话,则启动新的脚本计算。[/size][/font][/p] [/td] [/tr]
[/table][p=30, 2, left]
[/p][table=98%]
[tr] [td=2,1] SetFPCompareAccuracy [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]说明[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点运算的精确度。[/size][/font][/p] [p=30, 2, left][font=宋体][size=12.0pt]两个浮点数在([/size][/font]absvalue(Value1-value2)<=[font=宋体][size=12.0pt]容差值)时,可视为相等。[/size][/font][/p] [p=30, 2, left][font=宋体][size=12.0pt]预设定浮点容差值为[/size][/font]2.2204460492503131e-012[font=宋体][size=12.0pt]。[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left]SetFPCompareAccuracy([font=宋体][size=12.0pt]精确度[/size][/font]) [/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]参数[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]精确度[/size][/font]——[font=宋体][size=12.0pt]代表精确度的常数,代表意义如下:[/size][/font][/p] [table]
[tr] [td=1,1,191] [p=30, 2, left][font=宋体][size=12.0pt]语法[/size][/font][/p] [/td] [td=1,1,57] [p=30, 2, left][font=宋体][size=12.0pt]数值[/size][/font][/p] [/td] [td=1,1,246] [p=30, 2, left][font=宋体][size=12.0pt]精确度[/size][/font][/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcVeryLowAccuracy[/p] [/td] [td=1,1,57] [p=30, 2, left]0[/p] [/td] [td=1,1,246] [p=30, 2, left]02.2204460492503131e-8[/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcLowAccuracy[/p] [/td] [td=1,1,57] [p=30, 2, left]1[/p] [/td] [td=1,1,246] [p=30, 2, left]12.2204460492503131e-10[/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcMedAccuracy[/p] [/td] [td=1,1,57] [p=30, 2, left]2[/p] [/td] [td=1,1,246] [p=30, 2, left]22.2204460492503131e-12 (Default) [/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcHighAccuracy[/p] [/td] [td=1,1,57] [p=30, 2, left]3[/p] [/td] [td=1,1,246] [p=30, 2, left]32.2204460492503131e-14[/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcVeryHighAccuracy [/p] [/td] [td=1,1,57] [p=30, 2, left]4[/p] [/td] [td=1,1,246] [p=30, 2, left]42.2204460492503131e-16[/p] [/td] [/tr]
[tr] [td=1,1,191] [p=30, 2, left]fpcExact[/p] [/td] [td=1,1,57] [p=30, 2, left]5[/p] [/td] [td=1,1,246] [p=30, 2, left]0.00[/p] [/td] [/tr]
[/table] [p=30, 2, left][/p] [/td] [/tr]
[tr] [td=1,1,15%] [p=30, 2, left][font=宋体][size=12.0pt]范例[/size][/font][/p] [/td] [td=1,1,84%] [p=30, 2, left][font=宋体][size=12.0pt]设定浮点精确度为高:[/size][/font][/p] [p=30, 2, left]SetFPCompareAccuracy(fpcHighAccuracy); [/p] [p=30, 2, left]SetFPCompareAccuracy(3); [/p] [/td] [/tr]
[/table]
页:
[1]