大家好!请教一个问题:我在策略里写了一个发邮件的语句:
IF HOLDING<=0 and (CALL_COND) THEN BEGIN
SELLSHORT(HOLDING<0,0,MARKET);//做多前先平空
开多:BUY(1,1,MARKET);
now:=numtostr(YEAR(),0)&'-'&numtostr(MONTH(),0)&'-'&numtostr(DAY(),0)&' '&numtostr(HOUR(),0)&':'&numtostr(MINUTE(),0)&':'&numtostr(SECOND(),0);
SENDMAIL(1,'XXX@139.com','开仓提醒:'&now&' '&STKLABEL()&'开多','品种:'&STKLABEL()&';时间:'&now&';方向:开多'&';价位:'&CLOSE),ALLOWREPEAT;
END
昨天和今天各有一条开仓记录,但是却没有收到邮件,请问这是怎么回事呢?
下面这个收盘的邮件提示也没有正常发送,但是有时候重新加载策略的时候却能发送成功:
if time=030000 then begin
now:=numtostr(YEAR(),0)&'-'&numtostr(MONTH(),0)&'-'&numtostr(DAY(),0)&' '&numtostr(HOUR(),0)&':'&numtostr(MINUTE(),0)&':'&numtostr(SECOND(),0);
SENDMAIL(1,'XXX@139.com','收盘提醒:'&now,'当前资产:'&numtostr(当前资产,0)&';当前持仓:'&numtostr(当前持仓,0)){,ALLOWREPEAT};
end
请问是我的语句有什么问题吗?
1、可以检查下条件holding<=0和call_cond这两个条件是否满足。
2、你运行的是什么周期的K线,运行的品种是哪个,图表程序化是受分笔驱动的,检查下当时是否有分笔呢,夜盘的尾端一般成交量都很少的。
我这是在上周白天测试的时候的语句,我能够开仓说明我的holding这些条件没错吧,但是就是没发邮件提醒,我想加上邮件提醒的功能。
如果你的代码中触发的是这一条开多语句的话,那应该也会执行下面这条sendmail语句的。所以首先先检查下邮件发送测试是否成功,是否勾选了运行公式系统发送邮件,在这些都正常的基础上,再看下是否触发的上面的开多信号,代码中是否还有其他的开仓语句?
邮件发送测试是成功的,也勾选了“允许公式系统发送邮件”,现在是在开仓条件满足了,但是发送邮件却不成功,感觉挺奇怪的。
不限制条件,就直接写sendmail能发送吗,发送不成时候再试下邮件测试是否正常
请问我直接写一个sendmail的语句,不加任何限制条件,在哪些情况下能够触发该语句执行呢?是不是只能在启动程序化交易的情况下?平时编译代码,或者应用于图,或者点确定会触发吗?
会触发的,因为在启动时,或应用于图表时,都会在k线上进行一次执行程序的,这样就会触发sendmail语句的。