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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 金字塔软件自带例子中海龟交易策略的buyorderthisbar函数的问题

   

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


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

主题:金字塔软件自带例子中海龟交易策略的buyorderthisbar函数的问题

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/8/24 18:11:13
金字塔软件自带例子中海龟交易策略的buyorderthisbar函数的问题  发帖心情 Post By:2017/8/26 19:49:01    Post IP:175.11.87.42[只看该作者]

管理员好,最近在学习金字塔软件,在里面看到系统自带的双向海龟系统示范模型里面有一个问题,谢谢。
在示范程序的一开始这里buyorderthisbar变量被声明并赋值为零。
 
//声明变量
NT := 1 ;     //调试信息带时间戳
BUYORDERTHISBAR := 0 ;  //当前BAR有过交易

 在下列程序中,多头进场成功后,buyorderthisbar被赋值为1。。。
  //建立多头进场条件
 LONG := H > T20HI ;
 
 //多头进场
 IF LONG THEN BEGIN
  MYENTRYPRICE := IF(OPEN>T20HI+MINDIFF ,OPEN ,T20HI+MINDIFF ) ;   
  BUY( _DEBUG,POSNUM,LIMITR,MYENTRYPRICE);
  POSITION := 1 ;
  TURTLEUNITS := 1 ;
  N := AVGTR ;
  BUYORDERTHISBAR := 1;

 END //IF



下列程序中,多头加仓成功,buyorderthisbar也是被赋值为1;

 
 WHILE (HIGH>MYENTRYPRICE+0.5*N) AND TURTLEUNITS<4 DO BEGIN
  MYENTRYPRICE := IF(OPEN>MYENTRYPRICE+0.5*N ,OPEN ,MYENTRYPRICE+0.5*N ) ;
  MYENTRYPRICE := CEILING(MYENTRYPRICE/MINDIFF)*MINDIFF ; 
  BUY( _DEBUG, POSNUM, LIMITR, MYENTRYPRICE);
  TURTLEUNITS := TURTLEUNITS+1 ;
  BUYORDERTHISBAR := 1;

 END //WHILE 
 


以上是程序中多头对buyorderthisbar的所有赋值。。我现在面临的疑问是多头离场条件中:

LONGX1 := (LOW < T10LO)  ;
 
 IF LONGX1 AND BUYORDERTHISBAR=0 THEN BEGIN
  MYEXITPRICE := IF(OPEN<T10LO-MINDIFF ,OPEN ,T10LO-MINDIFF ) ;   
  SELL( _DEBUG ,0,LIMITR,MYEXITPRICE);
  POSITION := 0 ;
  TURTLEUNITS := 0 ;
 END


多头离场条件中,buyorderthisbar的判断条件是等于0,,,可是在之前的对buyorderthisbar的赋值中,都是在建立多头仓位或者加仓后,都赋值为1。。而只有在建仓和加仓都是成功的之后才能离场,所以这里的buyorderthisbar的判断条件似乎应该是1。。。。。这里我看了好几次没看懂,初次学习编程方面的东西,麻烦管理员帮忙解释一下,谢谢。。

 

PS:上面的所有程序片段都来自于金字塔软件自带的 交易系统——》系统交易——》双向海龟交易策略 里面的程序例子。


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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/8/27 17:49:36    Post IP:180.172.92.104[只看该作者]

这个是笔误,就是你理解的样子,这个平仓条件中应该是1


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zhong.jie
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:15 积分:0 威望:0 精华:0 注册:2016/8/21 22:12:04
  发帖心情 Post By:2017/9/18 1:20:09    Post IP:222.244.78.238[只看该作者]

buyorderthisba在这里是个普通变量,第N根K线开仓,置为1,等第N+1根K线开始的时候又会重置为0,如果第N+1根K线有加仓才会又置为1,不加仓,还是0,如此循环下去。。。
当前K线没有开仓动作这个变量就是0;假如前面开了仓,走到后面某根K线没有达到开加仓条件反而到了止损位,而平仓条件却是变量为1那就没法平仓止损。。。

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


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/9/18 8:37:13    Post IP:180.169.30.6[只看该作者]

抱歉,2楼回复有误。

BUYORDERTHISBAR 的作用是用于判断当前k线位置是否有开仓动作。作用域仅限在当前k线,目的是防止同一根k上出现开平两个动作。

POSITION是全局变量用于记录仓位的状态。

 



编程无捷径,技巧靠积累。
 回到顶部