请教策略编写过程中遇到的问题:
要表达:当价格突破某根均线时,次根K收盘价未回破就买入,或者次根K盘中突破前根(即突破K)最高价时也买入。
应该如何表达才最合适?
我采用了如下方法表达:
MAN:=MA(CLOSE,N);
AA:=CLOSE>MAN AND CLOSE<=REF(HIGH,1);
BB:=HIGH>REF(HIGH,1);
//交易条件
KDPK:=REF(CROSS(CLOSE,MAN),1) AND (AA OR BB); //开多平空条件
//交易系统
KD:BUY(KDPK AND HOLDING=0,30%,MARKET); //开多信号
但是,我在测试时发现后一种情况都是以次根K的收盘价成交的,而我希望的是以突破K的最高价附近报单的。我想问题可能出在BB:=HIGH>REF(HIGH,1);
具体问题有:
1. 当根K运行过程中价格突破前根最高价时买入,应该如何表达?
2. 假如按照我编的HIGH>REF(HIGH,1),若本周期内最高价突破前高后又回来,然后又突破,系统是如何处理的?
3. 当我们说突破均线(或某个价位)时,是用cross函数,还是用>号?
急切渴望专家高手的帮助,先行谢过!
1.market好好看下函数解释,想要指定价格就不要用market,用limitr+一个指定想要的下单价格
2.系统会判断k线形成后结果,k线形成后,判断结果是不是H>REF(H,1),中间发布发生其他情况不予考虑
3.用cross
请以您的专业来帮助我表达如下诉求:
当价格突破某根均线时:
1. 次根K收盘价未回破,以该根K收盘价报单买入; OR
2. 次根K盘中突破前根K(即突破K)最高价时,以该最高价报单买入
1.收盘价未回破如何定义?最高价有没有突破?
2. h>ref(h,1) and l<ref(h,1)
盘中突破,反过来理解就是最低价没有突破前高但是最高价肯定是突破前高
还有这个突破时的触发价金字塔是取不到的
行情中用limitr,close来下单,实盘下单会按照当时触发时的价格下单(固定1秒轮询模式之下),但是信号和测评会按照当根k线收盘价来处理
明白了你写的 l<ref(h,1)的意思了,l是low对吧? 实际上,次根收盘价若低于均线,就不不视为突破,就不操作了,故我的意思可能 CLOSE>MAN AND CLOSE<=REF(HIGH,1)更贴切?
我上传了附件,用K线图例子说明我的意图。烦请帮助解决,除了买入条件,还请把完整的BUY表达出来。请多费神,谢谢
MAN:=MA(CLOSE,N);
AA:=CLOSE>MAN AND CLOSE<=REF(HIGH,1);
BB:=HIGH>REF(HIGH,1);
//交易条件
KDPK:=REF(CROSS(CLOSE,MAN),1) AND (AA OR BB); //开多平空条件
//交易系统
KD:BUY(KDPK AND HOLDING=0,30%,thisclose); //开多信号
这样改,改成thisclose,盘中触发后按照触发价下单,这个是做不到了