以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  求前值出错  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=155623)

--  作者:dddf
--  发布时间: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
--  发布时间:2017/7/2 18:00:20
--  
这个POSHIGH是买入后的高点,但是奇怪的是图形上显示出来的并没有维持在最高点,而是随着H变化而下降.求老师指示.是写法错误么?
用REF函数又不行,不能在IF内使用.

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

--  作者:wenarm
--  发布时间: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
--  发布时间:2017/7/3 15:11:10
--  
嗯,就是全局变量是不是都是序列变量.能不能用BARPOS定位回溯,来访问前面的数据?因为我这段程序用这个来定位时是出错的,你运行一下就知道.

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

--  作者:qq代人发帖
--  发布时间:2017/7/3 15:38:48
--  

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