欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]开、平仓优先问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2554人关注过本帖树形打印复制链接

主题:[求助]开、平仓优先问题

帅哥哟,离线,有人找我吗?
jackie123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:56 积分:0 威望:0 精华:0 注册:2013/8/1 10:34:18
[求助]开、平仓优先问题  发帖心情 Post By:2013/8/13 10:11:33    Post IP:120.36.182.138[只看该作者]

一个模型里面有两个开、平仓条件,

 

比如:开仓条件1,平仓条件1

       开仓条件2,平仓条件2

 

如何保证“开仓条件1 ”只会让“平仓条件1 ”来平仓,不会让平仓条件2来平仓?因为有时平仓条件1没达到,平仓条件2先达到了。

 


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/8/13 10:21:25    Post IP:58.246.57.26[只看该作者]

variable:n=0,m=0;

if 开仓条件1 and n=0 then begin

开仓语句;

n:=1;

end

 

if 平仓条件1 and n=1 and m<>1 then begin

平仓语句;

n:=0;

end

 

if 开仓条件2 and m=0 then begin

开仓语句;

m:=1;

end

 

if 平仓条件2 and m=1  and n<>1 then begin

平仓语句;

m:=0;

end



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
jackie123
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:56 积分:0 威望:0 精华:0 注册:2013/8/1 10:34:18
  发帖心情 Post By:2013/8/13 13:19:06    Post IP:120.36.182.138[只看该作者]

帮我看看下面的,当DMI 里ADX上升时,用SAR开、平仓;当ADX下降时用BOLL开、平仓。现在是想SAR开仓的,用SAR平;BOLL开仓的用BOLL 平。

 

ADXXS:=ADX>REF(ADX,1);//A.当ADX 上升时:
ADXXX:=ADX<=REF(ADX,1);//B.当ADX下降或走平时
KDA1:=C>SAR1 AND  ADXXS;//开多,SAR 在30分钟K线下方。
KKA1:=C<SAR1 AND  ADXXS;//开空,SAR 在30分钟K线上方。

 

variable:n=0,m=0;

 


IF N=0 THEN BEGIN

IF KDA1 AND HOLDING=0 THEN 
BEGIN
   
 开多1:BUY(HOLDING=0,SS,MARKETR),orderqueue;  

       
END
IF KKA1 AND HOLDING=0 THEN    
BEGIN

  开空1:BUYSHORT(HOLDING=0,SS,MARKETR),orderqueue;
END 
  n:=1;
END

PDA1:=CROSS(SAR1,C)&&REF(KDA1,ENTERBARS)=1;//平多,当价格从上向下穿(小等于)SAR时
PKA1:=CROSS(C,SAR1)&&REF(KKA1,ENTERBARS)=1;//平空,当价格从下向上穿(大等于)SAR时。

IF N=1 AND M<>1 THEN BEGIN
IF PDA1 AND HOLDING>0  THEN    
BEGIN
  平多1:SELL(HOLDING>0,SS,MARKETR),orderqueue;
END
IF PKA1 AND HOLDING<0 THEN 
BEGIN
 平空1: SELLSHORT(HOLDING<0,SS,MARKETR),orderqueue;   
 END
 n:=0;                 
END

 


KDB1:=L<LOWER && ADXXX;// 开多条件: 价格触及boll下轨,且ADX下降时买入
KKB1:=H>UPPER && ADXXX;// 开空条件: 价格触及boll上轨,且ADX下降时卖出

 

IF M:=0 THEN BEGIN
IF KDB1 AND HOLDING<=0   THEN 
BEGIN
 平空2:SELLSHORT(HOLDING<0,SS2,MARKETR),orderqueue;          
  开多2:BUY(HOLDING=0,SS2,MARKETR),orderqueue;             
END
IF KKB1 AND HOLDING>=0  THEN    
BEGIN
  平多2:SELL(HOLDING>0,SS2,MARKETR),orderqueue;
  开空2:BUYSHORT(HOLDING=0,SS2,MARKETR),orderqueue;
  END
  m:=1;
END


 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/8/13 13:26:33    Post IP:58.246.57.26[只看该作者]

IF PKA1 AND HOLDING<0 THEN 
BEGIN
 平空1: SELLSHORT(HOLDING<0,SS,MARKETR),orderqueue;   
 END
 n:=0;                 
END

 

这里两个的END是干什么用的?



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
jackie123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:56 积分:0 威望:0 精华:0 注册:2013/8/1 10:34:18
  发帖心情 Post By:2013/8/13 15:19:25    Post IP:120.36.182.138[只看该作者]

哦 ,多了个END,但是不是有个原则,先平后开吗,加上全局变量这要怎么弄?

 回到顶部
帅哥哟,离线,有人找我吗?
jinzhe
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2013/8/13 15:28:38    Post IP:58.246.57.26[只看该作者]

把开平单独列出来写,不要按照反手的方式写


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
jackie123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:56 积分:0 威望:0 精华:0 注册:2013/8/1 10:34:18
  发帖心情 Post By:2013/8/13 19:15:55    Post IP:120.36.182.138[只看该作者]

我的模型里是两个开仓条件,三个平仓条件。平仓2,平仓3执行不对,帮我改改。谢了!


ADXXS:=ADX>REF(ADX,1);//A.当ADX 上升时:
ADXXX:=ADX<REF(ADX,1);//B.当ADX下降或走平时
KDA1:=C>SAR1 AND   ADXXS;//开多,SAR 在K线下方。
KKA1:=C<SAR1 AND  ADXXS;//开空,SAR 在K线上方。

PDA1:=CROSS(SAR1,C)&&REF(KDA1,ENTERBARS)=1;//平多,当价格从上向下穿SAR时
PKA1:=CROSS(C,SAR1)&&REF(KKA1,ENTERBARS)=1;//平空,当价格从下向上穿SAR时。

 

variable:n=0,m=0;

 


IF N=0 THEN BEGIN

   
 开多1:BUY(KDA1 AND HOLDING=0,SS,MARKETR),orderqueue;  


  开空1:BUYSHORT(KKA1 AND HOLDING=0,SS,MARKETR),orderqueue;
 
  n:=1;
END

 

IF N=1 AND M<>1  THEN BEGIN

  平多1:SELL(PDA1 AND HOLDING>0,SS,MARKETR),orderqueue;

 平空1: SELLSHORT(PKA1 AND HOLDING<0,SS,MARKETR),orderqueue;   
 
 n:=0;                 
END


KDB1:=L<LOWER && ADXXX;// 开多条件: 价格触及下轨买入
KKB1:=H>UPPER && ADXXX;// 开空条件: 价格触及上轨卖出
PDB1:=(H>UPPER||C<ENTERPRICE-12) AND REF(KDB1,ENTERBARS)=1;//  平多条件 ( 1).如买入后价格一直上行触及BOLL上轨,卖出平仓。并反向开空仓。
                                                           //            (2).如买入后没触及上轨就又返身向下,则触及买入价-12点平仓。
                                                          
PKB1:=(L<LOWER||C>ENTERPRICE+12) AND REF(KKB1,ENTERBARS)=1;//平空条件 ( 1).如卖出入后价格一直下行触及BOLL下轨,买入平仓。并反向开多仓。
                                                          //           (2).如卖出后没触及下轨就又返身向上,则触及卖出价+12点平仓。 

IF M:=0 THEN BEGIN

  开空2:BUYSHORT(KKB1 AND HOLDING=0,SS2,MARKETR),orderqueue;       
  开多2:BUY(KDB1 AND HOLDING=0,SS2,MARKETR),orderqueue;             
M:=1;
END

IF M:=1 AND N<>1  THEN BEGIN
  平多2:SELL(KKB1 AND HOLDING>0,SS2,MARKETR),orderqueue;
  平空2:SELLSHORT(KDB1 AND HOLDING<0,SS2,MARKETR),orderqueue;                                             
  

  平多3:SELL(PDB1 AND HOLDING>0,ss2,MARKETR),orderqueue;


  平空3:SELLSHORT(PKB1 AND HOLDING<0,ss2,MARKETR),orderqueue; 
 
  m:=0;                   
END


 回到顶部
帅哥哟,离线,有人找我吗?
jackie123
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:56 积分:0 威望:0 精华:0 注册:2013/8/1 10:34:18
  发帖心情 Post By:2013/8/14 16:12:44    Post IP:120.36.182.138[只看该作者]

JINZHE帮忙解决以上问题,谢谢了

 回到顶部