以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]新人请教反弹指标问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=9513)

--  作者:duguhun
--  发布时间:2011/12/27 23:14:00
--  [求助]新人请教反弹指标问题

各位前辈,我想设计一个1分钟线序列模式下运行的公式:变量A初始值为-1,当铜价从开盘以来的最低价反弹200点时A值变为1 ,当铜价从A值变为1以后的最高价下跌200点时A值变为-1。可是我运行了我写的公式,A值一直为-1,铜价上涨500点A值也没有变为1。我是什么地方写错了呢?我想请教大家,谢谢啦

 

A[1]:=0;
A[2]:=-1;
for i=3 to datacount do
begin
IF A[i-1]=-1 and C>(LLV(C,BARSLAST(A[i]<>A[i-1])+1)+200) THEN A[i]:=1;
ELSE IF A[i-1]=1 and C<(HHV(C,BARSLAST(A[i]<>A[i-1])+1)-200) THEN A[i]:=-1;
ELSE A[i]:=A[i-1];
end
多空方向:A;



--  作者:duguhun
--  发布时间:2011/12/27 23:50:44
--  

如果把第5、6行的C改成C[i],则从第3根K线起A值一直为1

 

A[1]:=0;
A[2]:=-1;
for i=3 to datacount do
begin
IF A[i-1]=-1 and C[i]>(LLV(C,BARSLAST(A[i]<>A[i-1])+1)+200) THEN A[i]:=1;
ELSE IF A[i-1]=1 and C[i]<(HHV(C,BARSLAST(A[i]<>A[i-1])+1)-200) THEN A[i]:=-1;
ELSE A[i]:=A[i-1];
end
多空方向:A;


--  作者:duguhun
--  发布时间:2011/12/27 23:51:59
--  
是不是在序列模式下无法实现呢?
--  作者:阿火
--  发布时间:2011/12/28 8:04:00
--  

用逐K线模式写呗,何必用序列模式


--  作者:duguhun
--  发布时间:2011/12/28 8:51:28
--  

如果是逐K线模式要怎么写呢?我尝试了一下也没有成功


--  作者:fly
--  发布时间:2011/12/28 9:38:58
--  

variable:flag=0,h1=0;//FLAG反弹标识;h1记录反弹后最高价

 

m:=barslast(date<>ref(date,1))+1;
Daylow:=llv(low,m); //当日最低价

 

if c>Daylow+200 then
begin
flag:=1;
h1:=high;  //记录FLAG值变为1以后的最高价
end

 

if h1<>0 and high>h1 then h1:=high;
if c<h1-200 then flag:=-1;

 

//每日收盘时,赋值为0,第2天重新开始标识
if time>=closetime(0) then
begin
flag:=0;
h1:=0;
end

 

ff:flag,linethick0;