我写一个 策略。之后发现虽然买卖代码中写的是在当下收盘价开仓或者平仓。实际主图上的买卖标记(开多或者平多)却显示在26根K线之前。
请问怎么能在最后一根K线当下的收盘价开仓?
然后我使用ref函数,是想让当下的收盘价曲线前移26根K线。请问有什么别的函数可以替代或者达到同样的效果?
-------------------------
转换线:(HHV(H,7)+LLV(L,7))/2,COLORWHITE,LINETHICK2;
迟行线:REFX(C,25),COLORGRAY,LINETHICK2;
CC:=REF(迟行线,26);
ZZ:=REF(转换线,26);
AA:=迟行线>zz;
BBB:=迟行线<zz;
IF(CC>ZZ AND AA,转换线,DRAWNULL),COLORRED,LINETHICK6;
IF(CC<ZZ AND BBB,转换线,DRAWNULL),COLORGREEN,LINETHICK6;
//多开
IF HOLDING=0 and CC>ZZ AND AA then begin //若持仓为0,且价格涨破前高
BUY(1,70%,LIMITR,c); //以收盘价买入一手
END
//空开
IF HOLDING=0 and CC<ZZ AND BBB then begin //若持仓为0,且价格涨破前高
BUYSHORT(1,70%,LIMITR,c); //以收盘价做空一手
END
//平多
IF HOLDING>0 and CC<ZZ AND BBB then begin
//
SELL(1,HOLDING,LIMITR,C); //按前前低价格平多单
end
//平空
IF HOLDING<0 and CC>ZZ AND AA then begin
//
SELLSHORT(1,HOLDING,LIMITR,C); //按前前低价格平多单
end
需要无视那个代码里边的注释啊。注释是之前写的,没修改成现在的。所以看着没意义。
“
迟行线” 这个变量是引用未来数据了。而你的开平条件和这个都是挂钩的。这意味着你的信号肯定是在距离现在至少26个K的位置才会出现。而最近的26个K,因为refx引用不到数据的缘故,是不会出现信号的。这个函数是不能用在图表交易系统里面,同样这个函数也没有等效的可用函数。
感谢版主回复。我现在转换了一下思路,只把refx函数 用于 划线。在开平仓的计算中使用ref函数而不是refx相关的变量。应该就能 解决了。我试试先。