multicharts关键词GetAppInfo
**** Hidden Message *****[/size] [code]GetAppInfo(aiBarSpacing)[/code]—— 返回目前图表上的K棒宽度 [code]GetAppInfo(aiCalcReason) [/code]
返回重新计算的原因 。
GetAppInfo返回初始化计算的原因:
0 (CalcReason_default) - 默认当新的bar/tick出现时,计算会初始化
1 (CalcReason_mouseLClick) - 鼠标在图表上左击后,计算会初始化
2 (CalcReason_mouseRClick) - 鼠标在图表上右击后,计算会初始化
3 (CalcReason_timer) - 在RecalcLastBarAfter期限超时后,计算会初始化
4 (CalcReason_MPChange) - 在商品的图表部位即marketposition变动后,计算会初始化
5 (CalcReason_OrderFilled) - 在委托单成交后,计算会初始化(仅用于信号) RecalcLastBarAfter
[table]
[tr][td]
超过指定时间,则初始化计算。指定时间为秒。 [/td][/tr]
[/table]
[table]
[tr][td][b]用法[/b]
RecalcLastBarAfter([i]Timeout[/i])
参数说明: [i]Timeout[/i] —— 秒数 (时间) [/td][/tr]
[/table]
[table]
[tr][td][b]范例[/b]
RecalcLastBarAfter(60) 自上次计算后如果超时1分钟的话,则启动新的脚本计算。 [/td][/tr]
[/table] 实例:
[code]switch (getappinfo(aicalcreason)) begin
case CalcReason_MouseLClick : if MouseClickCtrlPressed then begin
var: var0(0), var1(0);
repeat
if 0 = var0 then begin
var0 = MouseClickDateTime;
break;
end;
until(false);
end;
end;
var1 = datetime2eltime(var0);
print("Time of the Bar = ", var1);[/code]
Will return the time of the bar after left click on it pressing Ctrl button on the keyboard.左键单击键盘上的Ctrl按钮后,将返回该条的时间。 实例:
Using GetAppInfo for Chart Window information
The example below uses the Print keyword to print information about the current Chart Window to the PowerLanguage Editor output log:
[code]// Example: Getting data about the chart window using GetAppInfo
if LastBarOnChart_s = True then begin
Print("The leftmost date on this chart is ", FormatDate("MM/dd/yyyy", GetAppInfo(aiLeftDispDateTime)),
", and the rightmost date on this chart is ", FormatDate("MM/dd/yyyy", GetAppInfo(aiRightDispDateTime)));
Print(NewLine,
"The leftmost bar closes at ", FormatTime("HH:mm:ss", GetAppInfo(aiLeftDispDateTime)),
" and the rightmost bar closes at ", FormatTime("HH:mm:ss", GetAppInfo(aiRightDispDateTime)) );
Print(NewLine,
"The highest price on the Y axis (price scale) is ", NumToStr( GetAppInfo(aiHighestDispValue), 0),
" and the lowest price on the same axis is ", NumToStr( GetAppInfo(aiLowestDispValue), 0));
end;[/code]
This would give an output similar to:
[code]The leftmost date on this chart is 01/20/2012, and the rightmost date on this chart is 01/20/2012
The leftmost bar closes at 12:31:16 and the rightmost bar closes at 21:56:15
The highest price on the Y axis (price scale) is 2438 and the lowest price on the same axis is 2411[/code] 实例:
使用GetAppInfo监视ATS
在下面的简化示例中,GetAppInfo(aiStrategyAuto)用于监视自动交易策略的状态。如果ATS关闭,则会发出声音警报。
[code]// Strategy that gets turned off.
Variables:
IntraBarPersist PrevATSStatus(0), // Holds the status of the ATS at the previous update
atsStatus(0); // Holds the current ATS status
if (LastBarOnChart_s = True) then begin
atsStatus = GetAppInfo(aiStrategyAuto);
// If the current ATS Status is different from the previous, and the previous
// status was ON, give an sound alert.
if (atsStatus <> PrevATSStatus) and (PrevATSStatus = 1) then begin
PlaySound("C:\Temp\atsTurnedOff.wav");
end;
PrevATSStatus = atsStatus;
RecalcLastBarAfter(15); // Update every 15 seconds, even if the data feed stops updating
end;[/code]
页:
[1]