以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  大家看下这个策略的问题在哪里  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=143237)

--  作者:望海潮
--  发布时间:2016/11/23 10:42:33
--  大家看下这个策略的问题在哪里
ma5:=ma(c,5);
ma10:=ma(c,10);
A2:=ma5-ma10;
A3:=ma5-ma10;
H1:= IFELSE(A2<REF(A2,2)&&REF(A2,1)<REF(A2,2),REF(H,2),0);
L1:= IFELSE(A3>REF(A3,2)&&REF(A3,1)>REF(A3,2),REF(L,2),0);
H2:VALUEWHEN(H1>0,H1),colorwhite;
L2:VALUEWHEN(L1>0,L1),coloryellow;
x:=IFELSE(c>h2,-1,IFELSE(c<l2,1,0));
y:=VALUEWHEN(x<>0,x);
GG:=IFELSE(y=1,H2,L2);

AA:=y;

STICKLINE(y=1&&c<=o,CLOSE,OPEN,40,0),COLORGREEN;
STICKLINE(y=1&&c>=o,CLOSE,OPEN,40,1),COLORGREEN;
STICKLINE(y=-1&&c<=o,CLOSE,OPEN,40,0),COLORRED;
STICKLINE(y=-1&&c>=o,CLOSE,OPEN,40,1),COLORRED;


STICKLINE(y=1&&c<=o,c,l,0.1,0),COLORGREEN;
STICKLINE(y=1&&c>=o,o,l,0.1,1),COLORGREEN;
STICKLINE(y=-1&&c<=o,c,l,0.1,0),COLORRED;
STICKLINE(y=-1&&c>=o,o,l,0.1,1),COLORRED;


STICKLINE(y=1&&c<=o,o,h,0.1,0),COLORGREEN;
STICKLINE(y=1&&c>=o,c,h,0.1,1),COLORGREEN;
STICKLINE(y=-1&&c<=o,o,h,0.1,0),COLORRED;
STICKLINE(y=-1&&c>=o,c,h,0.1,1),COLORRED;



PK:SELLSHORT(CROSS(0,AA),100%,THISCLOSE);
PD:SELL(CROSS(AA,0),100%,THISCLOSE);

KD:BUY(CROSS(0,AA)&&HOLDING=0,1,THISCLOSE);
KK:BUYSHORT(CROSS(AA,0)&&HOLDING=0,1,THISCLOSE);


这个函数会出现假信号。
图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2222.png
图片点击可在新窗口打开查看

--  作者:望海潮
--  发布时间:2016/11/23 10:46:34
--  
H2:VALUEWHEN(H1>0,H1),colorwhite;
L2:VALUEWHEN(L1>0,L1),coloryellow;
x:=IFELSE(c>h2,-1,IFELSE(c<l2,1,0));
y:=VALUEWHEN(x<>0,x);

我这个函数定义了两条线  H2跟L2,定义>H2为 -1,为红色,做多,<L2定义为 1,蓝色。  当落在二者区间,定义为0,当为0的时候,向前取上一次条件满足的信号。由这三张图可以知道,当K线突破H2变成红色,可当价格收为十字星,价格落在0区域,应该返回之前的状态,可是它没有,还是保持着突破的信号,一直到第三张图,收盘了才恢复正常
图片点击可在新窗口打开查看此主题相关图片如下:3333.png
图片点击可在新窗口打开查看

--  作者:望海潮
--  发布时间:2016/11/23 10:49:53
--  
既然收盘可以变成正常颜色跟信号,是不是说明当价格落在0区域,VALUEWHEN这个函数确实向前赋值了,可是当行情在走的时候,它怎么没有变化? 是不是它没有按照现价时时在计算这个函数?还是说跟逐K线模式有关?只在收盘计算?
--  作者:望海潮
--  发布时间:2016/11/23 10:52:57
--  
上方线为H2,下方为L2
--  作者:望海潮
--  发布时间:2016/11/23 18:27:04
--  
还是VALUEWHEN这个函数,当K线没有走完,上一次取的是本K线中上一次x的状态。收盘的时候  取的是之前K线的X?
--  作者:jinzhe
--  发布时间:2016/11/24 10:02:20
--  
本地跟踪测试中
--  作者:jinzhe
--  发布时间:2016/11/24 13:24:14
--  

我了下把ifelse改成if现象就没了。

但是不确定,因为就出现过一次,后面想验证时就没出现过类似的情况


--  作者:yukizzc
--  发布时间:2016/11/24 13:57:56
--  
请问您这个是在哪个品种上哪个周期发现的,我们这边复盘看看
--  作者:望海潮
--  发布时间:2016/12/1 16:27:36
--  
不是这个问题  是VALUEWHEN 的问题

后面用BARSLAST改写下就可以了。


VALUEWHEN 的问题感觉是,当本K线还在走,它的向前赋值是赋值到上一次自己突破位置时候的取值,它是在自己K线上面的取值,收盘的时候是取上一根满足的条件值。

--  作者:jinzhe
--  发布时间:2016/12/1 16:37:06
--  

用户是用了IF后还是有同样的问题吗?