请教一个RSI的写法。自己写的总是不对。
只问多仓的情况就好:
已开多仓的情况下:
1. 当RSI 从上向下穿过80,记录此时当根K线的开盘价为AA,收盘价为BB。 (因为一定是阴线,所以AA>BB)。
2. 两个周期后,若有任何CLOSE<BB,则平多开空。
3. 平多之后,若再出现任何K线上穿AA,则再平空开多。
多谢。
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 楼主参考下吧 |