以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  求助公式是否正确 自编  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=416)

--  作者:金钱豹
--  发布时间:2009/12/9 11:29:56
--  求助公式是否正确 自编

计算10周期(H-L)均值

开多:C>前4周期最高值;

开空:C<前4周期最低值;

平多:C<前4周期最高值-1.5倍的10周期(H-L)均值;

平空:C>前4周期最低值+1.5倍的10周期(H-L)均值;

 

为何以下公式显示不正确?在0轴上有一直线?

 

input:hn(4,1,30),lown(4,1,20);

VARIABLE:N=0,BS=0;

BDZ:=H-L;
NZ:=MA(BDZ,20);
MA1:ma(c,5);


BUYHHV:=HHV(H,hn);
SELLLLV:=LLV(L,lown);

IF BARPOS>4 THEN

 BEGIN

   
 IF C>ref(BUYHHV,1) AND BS=0 THEN
  BEGIN
   DRAWICON(1,L*0.95,1);
   BS=1;
  END;
 
 IF C<ref(SELLLLV,1) AND BS=0 THEN
  BEGIN
   DRAWICON(1,H*1.05,2);
   BS=-1;
  END;
  
IF C<ref(BUYHHV,1)-NZ*1.5 AND BS=1 THEN
 BEGIN
  DRAWICON(1,H*1.05,3);
  BS=0;
 END;

IF C>ref(SELLLLV,1)+NZ*1.5 AND BS=-1 THEN
 BEGIN
  DRAWICON(1,L*0.95,4);
  BS=0;
 END;
 
 END;

 

 


--  作者:金钱豹
--  发布时间:2009/12/9 11:34:15
--  

根据以上思路,为何只开仓不平仓,我设定了“BS”这个参数,是想在开仓之前一定要空仓才可以,为何不平仓就开新仓了?

 

 

input:hn(4,1,30),lown(4,1,20);

VARIABLE:N=0,BS=0;

BDZ:=H-L;
NZ:=MA(BDZ,20);

BUYHHV:=HHV(H,hn);
SELLLLV:=LLV(L,lown);

IF BARPOS>4 THEN

 BEGIN

   
 IF C>ref(BUYHHV,1) AND BS=0 THEN
  BEGIN
   TBUY(1,1,mkt);
   BS=1;
  END;
 
 IF C<ref(SELLLLV,1) AND BS=0 THEN
  BEGIN
   TBUYSHORT(1,1,mkt);
   BS=-1;
  END;
  
IF C<ref(BUYHHV,1)-NZ*1.5 AND BS=1 THEN
 BEGIN
  TSELL(1,0,mkt);
  BS=0;
 END;

IF C>ref(SELLLLV,1)+NZ*1.5 AND BS=-1 THEN
 BEGIN
  TSELLSHORT(1,0,mkt);
  BS=0;
 END;
 
 END;


--  作者:admin
--  发布时间:2009/12/9 11:36:34
--  
平仓反手的模型,请参考置顶的常见公式问题说明
--  作者:金钱豹
--  发布时间:2009/12/9 11:39:47
--  
希望板主认真看公式,我并不是想平仓反手,只想解决方案。几次提问题,都让看常见公式说明,哪个地方错了,请指正!
--  作者:admin
--  发布时间:2009/12/9 11:42:26
--  
以交由版主去处理,请耐心等待结果。
--  作者:金字塔
--  发布时间:2009/12/9 11:45:02
--  

次序问题,先平后开,就将平仓指令

IF C<ref(BUYHHV,1)-NZ*1.5 AND BS=1 THEN
 BEGIN
  TSELL(1,0,mkt);
  BS=0;
 END;

IF C>ref(SELLLLV,1)+NZ*1.5 AND BS=-1 THEN
 BEGIN
  TSELLSHORT(1,0,mkt);
  BS=0;
 END;

放在前面


--  作者:金钱豹
--  发布时间:2009/12/9 11:50:59
--  
问题是,BS不等于0时,为何也开仓?
--  作者:金字塔
--  发布时间:2009/12/9 12:24:53
--  

为何不用金字塔程式化交易设计指南里的例子唐奇安通道,修改一下就行

 

input:N(20,0,60,1) ,NS(30,0,100,1);

 

持仓:=tHOLDING,LINETHICK0;

KCS:= intpart(tasset*0.3/close);//也表示30%的开仓数

 

BUY1:=hhv(ref(h,1),N);

SELL1:=llv(ref(l,1),N);

BPK:=CROSS(H,BUY1);

SPK:=CROSS(SELL1,L);

Price:=tAVGENTERPRICE; //持仓价位


tSELLSHORT(BPK and 持仓<0,t持仓,mkt);

tSELLSHORT(持仓<0,持仓,Stp,Price+NS);//NS止损

tBUY(BPK and 持仓=0, KCS,mkt);

 

tSELL(SPK and 持仓>0,持仓,mkt);

tSELL(持仓>0,持仓,Stp,Price-NS);//NS止损

tBUYSHORT(SPK and 持仓=0, KCS,mkt);


--  作者:金字塔
--  发布时间:2009/12/9 13:01:58
--  求:闪电下单全撤和自动判断开平方向代码

BS=1;

BS的语法本身有问题,缺“:”