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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 求前值出错

   

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


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

主题:求前值出错

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


加好友 发短信
等级:论坛游侠 帖子:130 积分:0 威望:0 精华:0 注册:2015/9/13 18:43:06
求前值出错  发帖心情 Post By:2017/7/2 17:59:12 [只看该作者]

INPUT: chanlength(20,1,90,1);
INPUT: chandelay(15,1,90,1);
INPUT: trailingatrs(3,1,90,1);
INPUT: atrlength(10,1,90,1);

VARIABLE: upperchan=0,lowerchan=0,poshigh=0,atrval=0,con=0,STOPLINE=0;

minpoint:=MINDIFF;
upperchan:=HHV(h,chanlength);
lowerchan:=LLV(l,chanlength);
up:upperchan;
dn:lowerchan;

 con:=h>=upperchan[BARPOS-chandelay] and h[BARPOS-1]<upperchan[BARPOS-chandelay];
if HOLDING=0 THEN BUY(con,1,MARKETr);

if ENTERBARS=0 THEN BEGIN
  poshigh:=h;
  end
else BEGIN
if h>poshigh[BARPOS-1] THEN poshigh:=h;//这个POSHIGH是买入后的高点,但是奇怪的是图形上显示出来的并没有维持在最高点,而是随着H变化而下降.求老师指示.是写法错误么?
end;
ATRVAL:=MA(TR,atrlength)*trailingatrs;

ph:poshigh;
ph1:poshigh[BARPOS-1],LINETHICK0;

IF HOLDING=1 AND ENTERBARS>0 THEN BEGIN
STOPLINE:=MAX(POSHIGH[BARPOS-1]-ATRVAL[BARPOS-1],LOWERCHAN[BARPOS-CHANDELAY]-MINPOINT);
sell(l<STOPLINE,0,MARKETr);
end

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


加好友 发短信
等级:论坛游侠 帖子:130 积分:0 威望:0 精华:0 注册:2015/9/13 18:43:06
  发帖心情 Post By:2017/7/2 18:00:20 [只看该作者]

这个POSHIGH是买入后的高点,但是奇怪的是图形上显示出来的并没有维持在最高点,而是随着H变化而下降.求老师指示.是写法错误么?
用REF函数又不行,不能在IF内使用.

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


加好友 发短信
等级:论坛游侠 帖子:130 积分:0 威望:0 精华:0 注册:2015/9/13 18:43:06
  发帖心情 Post By:2017/7/2 18:22:56 [只看该作者]

从TB翻译过来的.手生.好象两者的数组模式相差很大.有两者改写的对应技巧么?
[此贴子已经被作者于2017/7/2 18:23:43编辑过]

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


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

表述下你的代码需求。

if ENTERBARS=0 THEN BEGIN
  poshigh:=h;
  end
else BEGIN
if h>poshigh[BARPOS-1] THEN poshigh:=h;//这个POSHIGH是买入后的高点,但是奇怪的是图形上显示出来的并没有维持在最高点,而是随着H变化而下降.求老师指示.是写法错误么?
end;

 

 

根据代码逻辑,可以直接使用这种方式代替上述代码部分,hhv(HIGH,ENTERBARS);

 

tb属于类c的语法,可能很多地方都是通过数组处理的,

金字塔的函数返回值大部分都是序列变量值,再处理用户的需求时,是很少需要采用数组处理。即可完成需求。

 



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


加好友 发短信
等级:论坛游侠 帖子:130 积分:0 威望:0 精华:0 注册:2015/9/13 18:43:06
  发帖心情 Post By:2017/7/3 15:11:10 [只看该作者]

嗯,就是全局变量是不是都是序列变量.能不能用BARPOS定位回溯,来访问前面的数据?因为我这段程序用这个来定位时是出错的,你运行一下就知道.

第二就是在程序化交易测评时,结果不正确,交易次数极少.而在图表上肉眼可见的交易信号就很多.是不是也和使用这个BARPOS有关.

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


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
  发帖心情 Post By:2017/7/3 15:38:48 [只看该作者]

关于金字塔里面的全局变量的说明:http://www.weistock.com/WeisoftHelp/index.html?zbgs003.htm  全局变量和序列变量有区分的,不能等同看待,详情的话你看下全局变量的说明。全局变量回溯也是可以的,只是并不好用。

 

 


 回到顶部