Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共14 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:如何让公式在周期和序列下都能运行?

1楼
paulshen 发表于:2011/1/29 0:12:46

为了让模型在周期下和序列下都能高效运行,我仿照例子做了个简单公式,如下:

 

RUNMODE:0;

variable:I=0;
variable:STLL=0,STHH=0;

B:barpos,linethick0;
D:datacount,linethick0;

if not(islastbar) then exit;

for I=1 to datacount do begin
 STHH[I]:=HIGH[I];
 STLL[I]:=LOW[I];
 
 if I=1 then begin
  STH[I]:=STHH[I];
  STL[I]:=STLL[I];
 end else begin
  STH[I]:if(STHH[I]>STHH[I-1],STHH[I],STHH[I-1]);
  STL[I]:if(STLL[I]<STLL[I-1],STLL[I],STLL[I-1]); 
 end
end

 

在序列下运行正常,但在周期下显示不出东西。请帮忙看看。

 

这样做的目的是,用Buy等指令在周期下测试,同时能在后台运行在序列模式下。

 

[此贴子已经被作者于2011-1-29 0:13:09编辑过]
2楼
admin 发表于:2011/1/29 0:25:33
STHH 申明的是全局变量,在著周期模式下是个单值变量,不是数组,试试去掉variable声明
3楼
paulshen 发表于:2011/1/29 7:43:38

谢谢。去掉声明后,效果还是一样。

4楼
paulshen 发表于:2011/2/11 0:49:18

能帮忙调试一下这段公式吗?这是可以运行的完整公式。

5楼
admin 发表于:2011/2/11 8:16:13

公式汗有了

if not(islastbar) then exit;

这个语句,表示只在最后周期才进行的操作,即便改成了可以逐周期,也没法用在BUY,SELL上的

6楼
paulshen 发表于:2011/2/11 11:30:00

在周期下,是可以去掉这句的,只是效率低一点。

7楼
admin 发表于:2011/2/11 11:39:07

去不去掉都一样的,如果是普通指标那么逐周期的意义不大,如果要用BUY,SELL交易系统,是行不通的。

BUY,SELL需要每个周期都执行信号判断才能正常工作,你这个公式需要先计算指标数据然后才能出现信号,违背了BUY,SELL的运行机制。

只能使用ENTERLONG等简单交易系统

8楼
paulshen 发表于:2011/2/11 12:06:35
你这个说法不对,去掉islastbar判断以后,同样是每个周期都会有指标值,每个周期都能做信号判断。希望你们的工程师能做点调试。
9楼
paulshen 发表于:2011/2/11 12:08:54

实际情况是,我仅仅允许STHH和STLL也显示指标线,在周期下就能正常运行了。很是奇怪!

 

RUNMODE:0;

//variable:I=0;
//variable:STLL=0,STHH=0;

B:barpos,linethick0;
D:datacount,linethick0;

//if not(islastbar) then exit;

for I=1 to datacount do begin
 STHH[I]:HIGH[I];
 STLL[I]:LOW[I];
 
 if I=1 then begin
  STH[I]:=STHH[I];
  STL[I]:=STLL[I];
 end else begin
  STH[I]:if(STHH[I]>STHH[I-1],STHH[I],STHH[I-1]);
  STL[I]:if(STLL[I]<STLL[I-1],STLL[I],STLL[I-1]); 
 end
end

10楼
paulshen 发表于:2011/2/11 12:09:33
希望你们对待客户的问题能认真一点。
共14 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.02734 s, 2 queries.