以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  邮件提醒sendmail时好时坏  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=12182)

--  作者:飞翔鸟
--  发布时间:2012/6/5 10:28:49
--  邮件提醒sendmail时好时坏

IF CURRENTTIME>091500 AND CURRENTTIME<=151500 AND (MINUTE=4 OR MINUTE=19 OR MINUTE=34 OR MINUTE=49) THEN BEGIN
SENDMAIL(1 ,\'xxxx@126.com\' ,\' 正常\'  ,\'交易正常\' );
END

我想使用SENDMAIL 这个函数, 作为我不在电脑前能发送邮件到邮箱查看电脑是否正常运行,发现后台运行当日启动,有时不能发成功,改改无关紧要的语句(如SENDMAIL(close<>0,\'xxxx@126.com\' ,\' 正常\'  ,\'交易正常\' );
),可能才能发邮件,而一旦当日发送成功一封后,之后的一天都能正常收到邮件,但不关闭金字塔到了第二日就又不发邮件了,不知为何? 找不到规律。

[此贴子已经被作者于2012-6-5 10:32:47编辑过]

--  作者:jinzhe
--  发布时间:2012/6/5 10:54:31
--  

哪个时间周期的

还有可能是currenttime判断本地时间不对,用time判断好了

[此贴子已经被作者于2012-6-5 10:56:10编辑过]

--  作者:王锋
--  发布时间:2012/6/5 10:57:58
--  

使用DEBUGFILE函数加上日志,看看第二天是否执行了邮件发送指令,如果没执行,往上追溯看看关键变量是否存在逻辑问题


--  作者:飞翔鸟
--  发布时间:2012/6/5 11:19:56
--  
以下是引用jinzhe在2012-6-5 10:54:31的发言:

哪个时间周期的

还有可能是currenttime判断本地时间不对,用time判断好了

[此贴子已经被作者于2012-6-5 10:56:10编辑过]

1分钟周期 走完k线发送    我只需要每隔15分钟发一个邮件看看电脑是否在正常运行金字塔。

我试一下time的 一个一个来。


--  作者:飞翔鸟
--  发布时间:2012/6/5 13:55:57
--  

IF {MINUTE=3 OR MINUTE=27 OR MINUTE=28 OR MINUTE=29} minute<>ref(minute,1) THEN BEGIN
SENDMAIL(close<>0,\'xxxxx@126.com\' ,\' 正常\'  ,\'交易正常\' );
END

 

测试一下, 我把代码改成上面的,周期选择5分钟,走完k线模式  目前看正常,每隔5分钟发一次信 ,监控品种if00,今天可能都正常 ,看明天了,DEBUGFILE调试不来,版主有空的话和我一起试一下:)

前提是晚上不关金字塔的话。

[此贴子已经被作者于2012-6-5 13:59:12编辑过]

--  作者:飞翔鸟
--  发布时间:2012/6/6 9:48:39
--  

晚上没有关机和关金字塔,什么都没动,今天如预期般不发邮件了!


--  作者:飞翔鸟
--  发布时间:2012/6/6 10:49:41
--  

这个会不会是bug呢,照5楼的设置跑一下试试


--  作者:jinzhe
--  发布时间:2012/6/6 11:10:52
--  
这个需要测试一下
--  作者:飞翔鸟
--  发布时间:2012/6/6 11:19:45
--  

期待你们能试一下 明天我再来问问结果图片点击可在新窗口打开查看


--  作者:admin
--  发布时间:2012/6/6 11:47:03
--  

IF {MINUTE=3 OR MINUTE=27 OR MINUTE=28 OR MINUTE=29} minute<>ref(minute,1) THEN BEGIN
SENDMAIL(close<>0,\'xxxxx@126.com\' ,\' 正常\'  ,\'交易正常\' );

DEBUGFILE(\'D:\\TEST.TXT\',\'邮件已经发送了\',0)
END

 

加个DEBUGFILE调试函数看看邮件发送函数执行了没有

 

如果没有执行,那么将DEBUGFILE函数放在 前面看看MINUTE的变量是不是因为初始化问题而出现异常

 

DEBUGFILE(\'D:\\TEST.TXT\',\'MINUTE=%.2f\',MINUTE);

DEBUGFILE(\'D:\\TEST.TXT\',\'REFMINUTE=%.2f\',ref(minute,1));

 

IF {MINUTE=3 OR MINUTE=27 OR MINUTE=28 OR MINUTE=29} minute<>ref(minute,1) THEN BEGIN
SENDMAIL(close<>0,\'xxxxx@126.com\' ,\' 正常\'  ,\'交易正常\' );

DEBUGFILE(\'D:\\TEST.TXT\',\'邮件已经发送了\',0)
END