老师你好,请教:
1、下面三行代码的含义是否是:“当收盘价突破当天的开盘价时开多单”,是否有逻辑等方面的问题,是否用到未来数据:
aa:=barslast(day-ref(day,1)<>0);
bb:=ref(open,aa);
if cross(c,bb) then buy(holding=0,1,limitr,bb);
2、下面的止赢表达式中,用的是市价平仓,如果改用限价,limitr后面的平仓代码怎么写呢:{lowprice已定义}
if holding<0 and enterbars>0 then begin
if c<lowprice then lowprice:=c;
if ((enterprice-lowprice)/enterprice*100>2 and (c-lowprice)/(enterprice-lowprice)*100>=30) then sellshort(1,0,marketr);
谢谢老师!
当然有问题。如果收盘价满足条件,则用指定价买入,你哪里买得到?凡是用收盘价作为判断条件的,必须要在次周期开盘动作。
用轮询模式也无法实现吗?
第1个问题里面,我想表达的意思是:比如3分钟周期交易,当价格上破bb线时即入场,下破时即出场,不需要等到k线走完才报单----代码怎么表达呢?
问题2也是这个意思,我是想在价格一旦达到止赢条件即平仓,不要等到K线走完才平,所以才问到限价指令limitr后面的代码怎么写?谢谢
不知道你的BB是不是你的本意,你的代码求的是今日开盘价,你有没有想过如果当前是今天第一根K线,cross(c,bb) 的意义是什么?
轮询模式,本根K线及时触发,不能用CLOSE来判断条件是否能成立,这个信号是不稳定的,
因为一根K线没有走完之前,close是变动的,但是你要求在走完之前就触发条件,盘中就会产生信号闪烁,历史测试看不出来。
所以只能用HIGH、LOW来判断是否满足条件。
上述代码我是在什么论坛上看到的。既然AA是今日开盘价,那BB:=REF(OPEN,AA))这条线是什么意思?