以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=2660)

--  作者:jery
--  发布时间:2010/8/30 11:52:49
--  信托海龟进行自动化交易,加上自动交易功能?

我是金字塔软件用户,想给海龟加上自动交易功能,个人用户,几个朋友加了一下,一直开或平,不好用,请问得怎么加上?

 

VARIABLE:dayCount=1,PositionCount=1,SellSign=0;
VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0;
VARIABLE:N=0;

MA1:MA(C,5);
MA3:MA(C,10);

M:=MA(TR,20);
BUYHHV:=HHV(H,20);
SELLLLV:=LLV(L,10);

ss:n,linethick0;

IF BARPOS>=21 THEN BEGIN
IF BARPOS=21 THEN
N:=M;
IF DayCount=6 OR BARPOS=21 THEN BEGIN{5天调整N值}
N:=(19*N+TR)/20;{计算N值}
DayCount:=2;
END
DayCount:=DayCount+1;
EntPoint:=ENTERBARS+1;
IF EntPoint=EntAndExitSign THEN BEGIN{说明STOP指令买进头寸成功}
PositionCount:=PositionCount+1;{头寸计数}
SellSign:=True;{开始以STOP卖出,如果达到指定的价格}
END
IF PositionCount=1 THEN BEGIN{第一头寸}
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
开1:BUY(1,HOW,STOP,BUYHHV);{在20日新高STOP指令买进}
END
IF PositionCount=2 THEN BEGIN{如到第二头寸}
HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
开2:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第一头寸)+0.5个N以STOP指令买进}
END
IF PositionCount=3 THEN BEGIN{如到第三头寸}
HOW:=CASH(0)*0.01/N;
开3:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第二头寸)+0.5个N以STOP指令买进}
END
IF PositionCount=4 THEN BEGIN
HOW:=CASH(0)*0.01/N;
开4:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);
END
IF SellSign=True THEN BEGIN
    ExitPoint:=EXITBARS+1;
    IF ExitPoint=EntAndExitSign THEN BEGIN {说明卖出成功}
       PositionCount:=1;{头寸计算复原}
       SellSign:=False;
    END
    IF ENTERPRICE-2*N then SELL(1,100%,STOP,SELLLLV);{退出离盈利头寸}
    ELSE
    SELL(1,100%,STOP,ENTERPRICE-2*N);{退出亏损头寸}
    END
END;


--  作者:admin
--  发布时间:2010/8/30 12:56:49
--  

目前金字塔提供海龟交易,是范例,根本就无法保障投资收益,请用户三思而后行!


--  作者:jery
--  发布时间:2010/8/30 15:10:47
--  

老大,我很清楚风险了,就是在这里请老大帮帮忙,由于经常不盯盘,产生的风险相当大,呵呵,老大,帮帮忙吧,请老大闲时喝茶了!!!


--  作者:jery
--  发布时间:2010/8/30 15:14:39
--  

朋友修改完这个模型,加上自动化交易化语句后,程序一直在开仓或平仓,没有完全修改好,水平还是不行呀,恳请老大帮忙了。只要开1、开2出现信号后进行自动交易,固定手数就可以了。平仓全部平掉,呵呵


--  作者:董小球
--  发布时间:2010/8/30 16:01:02
--  
明天测试测试再说 我也修了修
--  作者:jery
--  发布时间:2010/8/30 22:27:44
--  

谢谢董小球哥哥了,不胜感激了,但愿能如愿!!!


--  作者:fly
--  发布时间:2010/8/31 14:56:15
--  

我改了个(改动的地方红色标识),不过还是跟海龟交易的原模型有些出入,放出来请高手指导,以期抛砖引玉

 

VARIABLE:dayCount=1,PositionCount=1,SellSign=0;
VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0;
VARIABLE:N=0;

MA1:MA(C,5);
MA3:MA(C,10);

M:=MA(TR,20);
BUYHHV:=ref(HHV(H,20),1);
SELLLLV:=ref(LLV(L,10),1);

 

ss:n,linethick0;

IF BARPOS>=21 THEN
 BEGIN
 IF BARPOS=21 THEN
 N:=M;
 IF DayCount=6 OR BARPOS=21 THEN
  BEGIN{5天调整N值}
  N:=(19*N+TR)/20;{计算N值}
  DayCount:=2;
  END
 DayCount:=DayCount+1;
 EntPoint:=ENTERBARS;
 
 IF EntPoint=EntAndExitSign THEN
  BEGIN{说明STOP指令买进头寸成功}
  PositionCount:=PositionCount+1;{头寸计数}
  SellSign:=True;{开始以STOP卖出,如果达到指定的价格}
  END
 {第一头寸}
 IF PositionCount=1 THEN
  BEGIN
  HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
  h20:buyhhv,linethick0;
  开1:BUY(c>=buyhhv,HOW,thisclose);{在20日新高STOP指令买进}  
  END
 {如到第二头寸}
 IF PositionCount=2 THEN 
  BEGIN
  HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模}
  开2:BUY(c>ENTERPRICE+0.5*N,HOW,thisclose);{在上头寸(即第一头寸)+0.5个N以STOP指令买进}     
  END
 {如到第三头寸}
 IF PositionCount=3 THEN
  BEGIN
  HOW:=CASH(0)*0.01/N;
  开3:BUY(c>ENTERPRICE+0.5*N,HOW,thisclose);{在上头寸(即第二头寸)+0.5个N以STOP指令买进}  
  END
 IF PositionCount=4 THEN
  BEGIN
  HOW:=CASH(0)*0.01/N;
  开4:BUY(c>ENTERPRICE+0.5*N,HOW,thisclose);  
  END
 IF SellSign=True THEN
  BEGIN
      ExitPoint:=EXITBARS;
      {说明卖出成功}
      IF ExitPoint=EntAndExitSign THEN
       BEGIN 
          PositionCount:=1;{头寸计算复原}
          SellSign:=False;
       END

      
      IF ENTERPRICE-2*N then SELL(c<sellllv,100%,thisclose);{退出离盈利头寸}
      ELSE
      SELL(c<ENTERPRICE-2*N,100%,thisclose);{退出亏损头寸}
     END
 END;


--  作者:jery
--  发布时间:2010/8/31 15:19:29
--  

FLY哥哥,不知道你更改了原海龟发出信号的时间和变量没有,我明天测试一下,海龟的信号是万万不能更改的呀,呵呵


--  作者:jery
--  发布时间:2010/8/31 15:33:04
--  

与海龟进行了比对,比海龟信号晚了1-2个信号周期,这是什么原因呀


--  作者:jery
--  发布时间:2010/8/31 15:35:06
--  

这个模型能否自动交易呀