老师好,请问如何让MSGOUT在同根k线上只提示一次?(盘中每次一有数据进入,满足条件的话,同根k线上会反复提示,看得比较烦。)谢谢!
IF BARPOS>EXTGBDATA('A') THEN
MSGOUT();
EXTGBDATASET('A',BARPOS);
老师能解释下代码意思及原理吗?我感觉这行代码实现的是在一根k线只判断一次。但如果我想实现当根k线在条件condition1 成立后不再判断,是否应改成:
IF BARPOS>EXTGBDATA('A') and condition1 THEN begin MSGOUT(); EXTGBDATASET('A',BARPOS); end; |
是的,BARPOS在新K线形成的时候值就会变化,而A对应的值只会在MSGOUT后才会刷到最新BARPOS的值
所以没输出前BARPOS一直比A大,在输出后2者相等则不会输出
[此贴子已经被作者于2013/10/21 14:24:33编辑过]
但是系统提示exitgbdata这个函数会在金字塔或框架关闭后仍然保存,我有好几个框架都要用到,我担心当切换框架后会出现问题。
同一个EXTGBDATASET是在整个金字塔范围内共享的,每次开启策略前在工具-数据-全局变量管理器中把对应的值修改为0
用VARIABLE也是可以的,但比较复杂!上述办法比较简单实用
对应您代码运行后会在下面全局变量管理找到这个设置的变量,将数值改了0就行了

此主题相关图片如下:无标题.png
[此贴子已经被作者于2013/10/21 14:58:15编辑过]