以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教一个关于RSI的写法  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=10327)

--  作者:kingmoonwang
--  发布时间:2012/2/28 1:24:43
--  请教一个关于RSI的写法

请教一个RSI的写法。自己写的总是不对。

 

只问多仓的情况就好:

 

已开多仓的情况下:

1. 当RSI 从上向下穿过80,记录此时当根K线的开盘价为AA,收盘价为BB。 (因为一定是阴线,所以AA>BB)。

2. 两个周期后,若有任何CLOSE<BB,则平多开空。

3. 平多之后,若再出现任何K线上穿AA,则再平空开多。

 

多谢。


--  作者:董小球
--  发布时间:2012/2/28 9:29:23
--  
INPUT:N1(6,2,100,10),N2(12,2,100,10),N3(24,2,100,10);
LC := REF(CLOSE,1);
RSI1:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:=SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:=SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;

{
已开多仓的情况下:
1. 当RSI 从上向下穿过80,记录此时当根K线的开盘价为AA,收盘价为BB。 (因为一定是阴线,所以AA>BB)。
2. 两个周期后,若有任何CLOSE<BB,则平多开空。
3. 平多之后,若再出现任何K线上穿AA,则再平空开多。}

AA:=VALUEWHEN(CROSS(80,RSI1),OPEN );
BB:=VALUEWHEN(CROSS(80,RSI1),CLOSE );
BARS:=VALUEWHEN(CROSS(80,RSI1),BARPOS );
IF BARPOS>BARS+2 AND CLOSE<BB THEN BEGIN
SELL(1,1,MARKET);
BUYSHORT(1,1,MARKET);
END 

IF BARPOS>BARS+2 AND CLOSE>AA AND HOLDING<0 THEN BEGIN
SELLSHORT(1,1,MARKET);
BUY(1,1,MARKET);
END 


楼主参考下吧