以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  后台交易程序怎么不能自动交易?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=754)

--  作者:subert9933
--  发布时间:2010/1/25 12:58:07
--  后台交易程序怎么不能自动交易?
我按照视频教程做了一个交易程序,测试正常,可是加入后台并启动且监控各品种后,没有任何自动下单执行,K线上显示了交易信号,但后台没有执行。我用的是海通的金字塔非模拟版软件,不是下载的金字塔模拟交易软件,但我在金字塔非模拟软件中的委托那里可以找到模拟帐户,且也登录进去。是不是根据视频教程做的模拟后台交易程序只能在金字塔模拟交易软件中执行,而不能在金字塔非模拟软件中执行?
--  作者:admin
--  发布时间:2010/1/25 13:01:47
--  

请确认你的BUY指令有没有改到TBUY

如果你搞不懂后台自动交易的原理,那么请你使用金字塔的前台图表自动交易


--  作者:固一
--  发布时间:2010/1/25 13:54:55
--  
我的情况也一样,我用的海通模拟板,后台交易程序有预警信号,不见下单交易,且手工下单不打钩
--  作者:固一
--  发布时间:2010/1/25 13:58:29
--  


ZB:=SUM( BUYVOL(),5); 
ZS:= SUM( SELLVOL(),5); 
BPK := CLOSE > OPEN AND CROSS(ZB,ZS); 
SPK := CLOSE < OPEN AND CROSS(ZS,ZB);


//对于后台交易模型,可用下面4句代替
SELLSHORT(BPK and HOLDING<0,HOLDING,market); //交易系统之平空操作
BUY(BPK and  HOLDING=0,30%,market);//交易系统之开多操作
SELL(SPK and HOLDING>0,HOLDING,market); //交易系统之平多操作
BUYSHORT(SPK and HOLDING=0,30%,market); //交易系统之开空操作

 

模拟的BUY指令也改成TBUY吗?
--  作者:admin
--  发布时间:2010/1/25 14:22:56
--  

ZB:=SUM( BUYVOL(),5); 
ZS:= SUM( SELLVOL(),5); 
BPK := CLOSE > OPEN AND CROSS(ZB,ZS); 
SPK := CLOSE < OPEN AND CROSS(ZS,ZB);


//对于后台交易模型,可用下面4句代替
TSELLSHORT(BPK and THOLDING<0,THOLDING,MKT); //交易系统之平空操作
TBUY(BPK and  THOLDING=0,2,MKT);//交易系统之开多操作
TSELL(SPK and THOLDING>0,THOLDING,MKT); //交易系统之平多操作
TBUYSHORT(SPK and THOLDING=0,2,MKT); //交易系统之开空操作

 

金字塔有关程式化交易的教程

http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=124

[此贴子已经被作者于2010-1-25 14:23:16编辑过]

--  作者:固一
--  发布时间:2010/1/25 14:38:49
--  

经过试验,这样可以了。上面不行的例子模型。我是从教材搬来的。可见有的教材也存在错误,希望快点改正,


--  作者:admin
--  发布时间:2010/1/25 14:53:36
--  
以下是引用固一在2010-1-25 14:38:49的发言:

经过试验,这样可以了。上面不行的例子模型。我是从教材搬来的。可见有的教材也存在错误,希望快点改正,

 

 教程没错,那是告诉你那个是做程式化测试的代码,实盘交易需要改动的,请将整个金字塔教程看完后再下定论


--  作者:固一
--  发布时间:2010/1/26 10:56:22
--  
 

利用STICKLINE 里的条件W1,再加上交易指令即可改写为交易模型

修改为交易模型如下:

HH1:=IF(H<REF(H,2) AND REF(H,1)<REF(H,2),REF(H,2),0); 

LL1:=IF(L>REF(L,2) AND REF(L,1)>REF(L,2),REF(L,2),0);

HH2:=VALUEWHEN(HH1>0,HH1); 

LL2:=VALUEWHEN(LL1>0,LL1); 

K1:=IF(CLOSE>HH2,-3,IF(CLOSE<LL2,1,0)); 

K2:=VALUEWHEN(K1<>0,K1); 

G:=IF(K2=1,HH2,LL2);

G1:=VALUEWHEN(ISLASTBAR,G); 

W1:=K2; 

W2:=OPEN-CLOSE;  

{开多} ENTERLONG: CROSS(W1,0) OR (CROSS(W2,0) AND CROSS(W1,0)),TFILTER;

{平多} EXITLONG: CROSS(0,W1) OR (CROSS(W2,0) AND CROSS(0,W1)),TFILTER;

{开空} ENTERSHORT: CROSS(0,W1) OR (CROSS(W2,0) AND CROSS(0,W1)),TFILTER;

{平空} EXITSHORT: CROSS(W1,0) OR (CROSS(W2,0) AND CROSS(W1,0)),TFILTER;

图表交易模型就完成了,其仓位控制在第5页图中设置

 

买卖方向相反,请检查。

 


--  作者:轮回
--  发布时间:2010/1/28 18:52:09
--  

从你上面的代码可以看出,你就是要在上涨转换到下跌时买入多头,空头相反。

在上涨过程中,W1=K2=-3;

在下跌过程中,W1=K2=1;

当CROSS(W1,0)时,W1由-3上穿0等于1,就是上涨转换到下跌的时候,你在这时使用的是开多指令。