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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]关于变量的问题

   

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


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

主题:[求助]关于变量的问题

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


加好友 发短信
等级:新手上路 帖子:4 积分:0 威望:0 精华:0 注册:2013/12/29 16:58:49
[求助]关于变量的问题  发帖心情 Post By:2014/1/5 13:18:24 [只看该作者]

本人处于学习阶段,系统自带公式:图表交易模块范例——05.完整交易系统范例   

//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//此策略以当前价格突破为进场条件,进场之后记录价格变动的最高、最低,并计算回撤点数,当参数设置启动了回撤止盈时,符合条件就会平仓。
//有止损设置,赚钱超过3点时,如果价格回撤,系统会保留1.2点的盈利退出,这样至少可以保住手续费。
//作者:GUOTX2010  日期:2011-03-21

//参数定义
EMA13:=EMA(C,10),COLORWHITE; 
EMA21:=EMA(C,21),COLORYELLOW; 
EMA34:=EMA(C,34),COLORFF00FF;
EMA60:=MA(C,55),COLORFFCC66; 
X1:=(C+L+H)/3; 
X2:=EMA(X1,5); 
X3:=EMA(X2,4); 
STICKLINE(X2>X3 AND C>EMA13,LOW,HIGH,0.1,1),COLORRED; 
STICKLINE(X2>X3 AND C>EMA13,CLOSE,OPEN,3,1),COLORRED; 
STICKLINE(X2<X3 AND C<EMA13,LOW,HIGH,0.1,1),COLORFFFF52;
STICKLINE(X2<X3 AND C<EMA13,CLOSE,OPEN,3,0),COLORFFFF52;
BUY1:=FILTER(X2>X3 AND C>EMA13,4);
SELL1:=FILTER(X2<X3 AND C<EMA13,4);
//使用系列模式时
//{开多} ENTERLONG:BUY1,TFILTER;
//{平多}EXITLONG:SELL1 ,TFILTER;
//
//{开空}ENTERSHORT:SELL1 ,TFILTER;
//{平空}EXITSHORT:BUY1 ,TFILTER;
//使用逐K线模式时
VARIABLE:DUOKONG=0;
TSFS:=0;     {停损反手,1-反手 0-不反手}
ORDVOL:=1;     {开仓手数}
ZSDS:=10;     {止损点数}
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
VARIABLE:YDZY=1;     {移动止盈总开关,1为开,0为关}
VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}
VARIABLE:DHCDS=3,KHCDS=3;   {多、空单回撤点数}
VARIABLE:DYLDS=7,KYLDS=7;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:Z3B1:=1;     {赚3保1开关}
DUOKONG:=1;
//持有空单
IF HOLDING<0 THEN BEGIN
 IF BUY1 THEN BEGIN   //平空单
  空平:SELLSHORT(1,0,MKT),ORDERQUEUE;
 END
 
 //止损
 IF C-ENTERPRICE>=ZSDS THEN BEGIN
  空损:SELLSHORT(1,0,MKT),ORDERQUEUE;
 END
 
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新低
  IF L<LOWPRICE THEN BEGIN
   LOWPRICE:=L;
  END 
  
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF ENTERPRICE-LOWPRICE>=KYLDS THEN BEGIN
   IF L-LOWPRICE>=KHCDS THEN BEGIN  //回撤超过3点
    空赢:SELLSHORT(1,0,MARKET);
   END 
  END 
 END
 
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN
   IF ENTERPRICE-L<=1.2 THEN BEGIN
    空保:SELLSHORT(1,0,MARKET);
   END
  END
 END
END
//开多单
IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
  IF BUY1 THEN BEGIN
   多开:BUY(1=1,ORDVOL,MKT);
   HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价
  END 
 END
END
//持有多单
IF HOLDING>0 THEN BEGIN
 IF SELL1 THEN BEGIN  {平多单}
  多平:SELL(1,0,MKT),ORDERQUEUE;
 END
 
 //多单管理
 //止损
 IF ENTERPRICE-C>=ZSDS THEN BEGIN
  多损:SELL(1,0,MKT),ORDERQUEUE;
 END
 //移动止盈
 IF YDZY=1 THEN BEGIN
  //每周期判断是否创新高
  IF H>HIGHPRICE THEN BEGIN
   HIGHPRICE:=H;
  END 
 
  //如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
  IF HIGHPRICE-ENTERPRICE>=DYLDS THEN BEGIN
   IF HIGHPRICE-H>=DHCDS THEN BEGIN  //回撤超过3点
    多赢:SELL(1,0,MARKET);
   END 
  END 
 END
 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN
   IF H-ENTERPRICE<=1.2 THEN BEGIN
    多保:SELL(1,0,MARKET);
   END
  END
 END
END
//开空单
IF HOLDING=0 THEN BEGIN
 IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN
  IF SELL1 THEN BEGIN
   空开:BUYSHORT(1=1,ORDVOL,MKT);
   LOWPRICE:=ENTERPRICE;
  END 
 END
END

当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;



上述是该模型代码,我的问题如下:

1、关于变量定义的问题    代码中定义 VARIABLE:DUOKONG=0;   后面又有 DUOKONG:=1; 
  //开多单
  IF HOLDING=0 THEN BEGIN
  IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN  等等,这个DUOKONG到底是怎么变化的,怎么可以是变量又是常数,没有写出
运算规则,是怎么可能会等于1 或者2的?

2、在什么情况下会使用到变量,如这个例子里面的变量  VARIABLE:Z3B1:=1;     {赚3保1开关},这个在这个例子中还出现了两次;

 //赚3保1
 IF Z3B1=1 THEN BEGIN
  IF ENTERPRICE-LOWPRICE>=3 THEN BEGIN
   IF ENTERPRICE-L<=1.2 THEN BEGIN
    空保:SELLSHORT(1,0,MARKET);
   END
  END
 END

//赚3保1
 IF Z3B1=1 THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=3 THEN BEGIN
   IF H-ENTERPRICE<=1.2 THEN BEGIN
    多保:SELL(1,0,MARKET);
   END
  END
 END

这个变量是怎样变化的,怎么感觉不到有什么作用?



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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2014/1/5 20:46:01 [只看该作者]

代码中定义 VARIABLE:DUOKONG=0;   后面又有 DUOKONG:=1; 

前面是对变量的定义,并初始化为0,后面的是赋值语句,将变量赋值为1

 

 

建议初学者,学习一下金字塔的调试功能,尤其是单步跟踪,断点等,这样对了解系统的工作流程是有很大用处的.

 

http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=57075 问题4



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
1985625he
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:4 积分:0 威望:0 精华:0 注册:2013/12/29 16:58:49
  发帖心情 Post By:2014/1/6 10:44:51 [只看该作者]

回答的太敷衍了,完全没有看问题啊


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


加好友 发短信
等级:超级版主 帖子:5895 积分:3774 威望:0 精华:0 注册:2012/1/1 0:00:01
  发帖心情 Post By:2014/1/6 10:55:16 [只看该作者]

 您对应用DBUGFILE跟踪下这个变量对应变化的情况,即可分析出对应问题


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

客户服务部

-----------------------------------------------------------

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

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