flag:=1;
If close>open and flag=1 then begin//若当前K线是阳线,且之前flag=1,则开多仓。
buy(CLOSE>open,10,CLOSE);
DEBUGFILE('C:\交易信号2.TXT',' 买入价格='&numtostr(CLOSE,5),0);
Flag:=flag+1;//flag=2
End
If close<open and flag=2 then begin//若当前K线是阴线,且之前flag=2,则平多仓。
sell(close<open,10,THISCLOSE);
Flag:=1; //重置flag到初始状态
End
--------------------------------------------------------------
按照我的理解是 :当满足条件后 ,FIAG加1后等于2了,只有平仓之后,FLAG才会重置为1的状态。
也就是在平仓之前,BEGIN......END之间的语句只会执行1次
可为什么DEBUGFILE('C:\交易信号.....)不停的输出?
想知道如何才能控制 DEBUGFILE('C:\交易信号.....)这个语句只执行一次?
以下是引用jinzhe在2017-3-14 14:50:50的发言:
用走完k线下单模式
请讲的具体些,怎么样设置成 走完K线下单模式?
另外请教下,如果是 写突破的话,比如说 今天的最高价>昨天最高价 就BUY..... 一般情况下,成交的价格就等于昨天的最高价,
如果等K线走完的话,那么成交价格则成了第二天的开盘价了,这样是没有办法准确的控制自己开仓的价格的,因为第2天的开盘谁也不知道会开在什么地方啊,是集合竞价出来的
我已经改成
走完k线下单模式 了
可是依然 输出了N多个信号?
2017-03-14 15:15:01.934 买入价格=1.06440
2017-03-14 15:15:04.937 买入价格=1.06432
2017-03-14 15:15:07.940 买入价格=1.06436
2017-03-14 15:15:08.938 买入价格=1.06436
2017-03-14 15:15:10.944 买入价格=1.06432
2017-03-14 15:15:11.938 买入价格=1.06431
2017-03-14 15:15:41.453 买入价格=1.06440
If close>open and flag=1 then begin//若当前K线是阳线,且之前flag=1,则开多仓。
buy(CLOSE>open,10,CLOSE);
if time<>extgbdata('time') then begin
DEBUGFILE('C:\交易信号2.TXT',' 买入价格='&numtostr(CLOSE,5),0);
extgbdataset('time',time);
end
End
这样写,用extgbdataset这个后台全局变量来限定,注意这个函数不能用在图表交易做交易相关用
[此贴子已经被作者于2017-3-14 15:35:15编辑过]