以文本方式查看主题

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

--  作者:lipeng6880
--  发布时间:2018/8/7 9:57:05
--  跨周期程序的问题

老师您好:我写了个海龟交易的跨周期程序,只是做空部分,但是加载上去没有信号,您给看下哪里有问题:

先建一指标HGJY:

INPUT:N(20,1,200,1);
N周期高点:REF(HHV(H,N),1);
N周期低点:REF(LLV(L,N),1);


开多平空交叉:=CROSS(C,N周期高点);
开空平多交叉:=CROSS(N周期低点,C);
开多平空大于:=C>N周期高点;
开空平多小于:=C<N周期低点;

再写程序:

INPUT:N(20,1,200,1);
N周期高点:REF(HHV(H,N),1);
N周期低点:REF(LLV(L,N),1);
SS:=MAX(1,INTPART(30000/(C*10*0.16)));
手数:=SS;
开多平空交叉:=CROSS(C,N周期高点);
开空平多交叉:=CROSS(N周期低点,C);
开多平空大于:=C>N周期高点;
开空平多小于:=C<N周期低点;
开多平空交叉A:STKINDIEX(\'\',"HGJY.开多平空交叉",0,21,112,1000);
开空平多交叉A:STKINDIEX(\'\',"HGJY.开空平多交叉",0,21,112,1000);
开多平空大于A:STKINDIEX(\'\',"HGJY.开多平空大于",0,21,112,1000);
开空平多小于A:STKINDIEX(\'\',"HGJY.开空平多小于",0,21,112,1000);

if holding=0 and 开空平多小于 and 开空平多小于A then
begin

buyshort(holding=0 and 开空平多小于 and 开空平多小于A,手数);
end

if holding<0 and (开多平空交叉 or 开多平空交叉A) then
begin

sellshort(holding<0 and (开多平空交叉 or 开多平空交叉A),holding);
end


--  作者:FireScript
--  发布时间:2018/8/7 10:25:52
--  
 1.代码有些小问题,
stkindex里面设置的数据量可能不够 STKINDIEX(\'\',"HGJY.开多平空交叉",0,21,112,1000);   如果不好控制,就直接用stkind就可以了。
第二个参数:
"HGJY.开多平空交叉"  改成  \'HGJY.开多平空交叉\'  用单引号,测试的时候发现这2者是不一样的

2.被引用的变量的定义方式
用“:”定义 而不是 “:=” 去定义。

3.你的条件本身较难触发。我修改了引用的周期等才调试出了信号。