以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  refx函数的问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=169145)

--  作者:m1978xz
--  发布时间:2019/4/2 11:32:48
--  refx函数的问题
我写一个 策略。之后发现虽然买卖代码中写的是在当下收盘价开仓或者平仓。实际主图上的买卖标记(开多或者平多)却显示在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


--  作者:m1978xz
--  发布时间:2019/4/2 11:36:03
--  
需要无视那个代码里边的注释啊。注释是之前写的,没修改成现在的。所以看着没意义。
--  作者:FireScript
--  发布时间:2019/4/2 13:40:18
--  
 “迟行线” 这个变量是引用未来数据了。而你的开平条件和这个都是挂钩的。这意味着你的信号肯定是在距离现在至少26个K的位置才会出现。而最近的26个K,因为refx引用不到数据的缘故,是不会出现信号的。这个函数是不能用在图表交易系统里面,同样这个函数也没有等效的可用函数。

--  作者:m1978xz
--  发布时间:2019/4/2 13:44:27
--  
感谢版主回复。我现在转换了一下思路,只把refx函数 用于 划线。在开平仓的计算中使用ref函数而不是refx相关的变量。应该就能 解决了。我试试先。