龙听期货论坛's Archiver

C
+
+


 微信: QQ:

龙听 发表于 2018-5-9 11:12

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]