-- 作者:he3617
-- 发布时间:2013/8/2 15:30:40
-- 请教开仓问题
RSI:=ref(SMA(MAX(CLOSE-REF(CLOSE,1),0),N1,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),N1,1)*100,1); UP:=ref(hhv(h,20),1); LD:=ref(llv(l,20),1);
开多条件:=H>UP AND RSI<80;
开空条件:=L<LD AND RSI>20;
我的思路是价格突破20天高点时并且RSI值小于80开仓,如果大于80,则这个交易到下一个空单之前不开多单,但上面这种写法是一旦RSI回到80一下,就会开多但,这个是我不想要的,请高手指点!
|
-- 作者:he3617
-- 发布时间:2013/8/2 15:41:43
--
input:lots(1,0,9,1); input:n(4,0,9,1); input:n1(0.002,0.001,1,0.001); input:M(30,0,50,1); VARIABLE:maxprofit=0; win:=0; win2:=0; cc:=ref(c,1); cyc:=barslast(date>ref(date,1))+1; 今高:=HHV(H,cyc); 今低:=llv(l,cyc); BF:=ref(今高-今低,1); 今开:=if(cyc=1,open,ref(open,cyc-1)); 昨收:="RXMA.ZC#DAY"; 昨高:="RXMA.ZH#DAY"; 昨低:="RXMA.ZL#DAY"; 10日平均波幅:="RXMA.MA10#DAY"; RSI:=ref(SMA(MAX(CLOSE-REF(CLOSE,1),0),N1,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),N1,1)*100,1); UP:=ref(hhv(h,20),1); LD:=ref(llv(l,20),1); if time>=091600 and time<150500 then begin if holding=0 then begin if h>=up and RIS<80 then begin buy(holding=0,lots,limitr,max(open,up)); maxprofit:=0; end if l<=ld AND RIS>20 then begin buyshort(holding=0,lots,limitr,min(open,ld)); maxprofit:=0; end end end if holding>0 and enterbars>0 then begin win:=c-enterprice; if win>maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; end if holding>0 and enterbars>0 then begin 多止损:sell(win<=-10,lots,LIMITR,c); 多止盈:sell(maxprofit>20 and win2>=60 and openprofit>0,lots,limitr,c); end
if holding<0 and enterbars>0 then begin win:=enterprice-c; if win>maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; end if holding<0 and enterbars>0 then begin 空止损:sellshort(win<=-10,lots,limitr,c);; 空止盈:sellshort(maxprofit>20 and win2>=60 and openprofit>0,lots,limitr,c); end
if holding<0 then begin if h>=up then begin sellshort(holding<0,0,limitr,max(open,up)); end if time>=151400 then begin sellshort(1,lots,thisclose); end end if holding>0 then begin if l<=ld then begin sell(holding>0,0,limitr,min(open,ld)); end if time>=151400 then begin sell(1,lots,thisclose); end end
这是源码,有其他不妥的地方也请高手指点!
|
-- 作者:he3617
-- 发布时间:2013/8/2 15:47:18
--
input:lots(1,0,9,1); input:n(4,0,9,1); input:n1(0.002,0.001,1,0.001); input:M(30,0,50,1); VARIABLE:maxprofit=0; win:=0; win2:=0;
RSI:=ref(SMA(MAX(CLOSE-REF(CLOSE,1),0),N1,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),N1,1)*100,1); UP:=ref(hhv(h,20),1); LD:=ref(llv(l,20),1); if time>=091600 and time<150500 then begin if holding=0 then begin if h>=up and Rsi<80 then begin buy(holding=0,lots,limitr,max(open,up)); maxprofit:=0; end if l<=ld AND Rsi>20 then begin buyshort(holding=0,lots,limitr,min(open,ld)); maxprofit:=0; end end end if holding>0 and enterbars>0 then begin win:=c-enterprice; if win>maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; end if holding>0 and enterbars>0 then begin 多止损:sell(win<=-10,lots,LIMITR,c); 多止盈:sell(maxprofit>20 and win2>=60 and openprofit>0,lots,limitr,c); end
if holding<0 and enterbars>0 then begin win:=enterprice-c; if win>maxprofit then maxprofit:=win; win2:=(maxprofit-win)/maxprofit*100; end if holding<0 and enterbars>0 then begin 空止损:sellshort(win<=-10,lots,limitr,c);; 空止盈:sellshort(maxprofit>20 and win2>=60 and openprofit>0,lots,limitr,c); end
if holding<0 then begin if h>=up then begin sellshort(holding<0,0,limitr,max(open,up)); end if time>=151400 then begin sellshort(1,lots,thisclose); end end if holding>0 then begin if l<=ld then begin sell(holding>0,0,limitr,min(open,ld)); end if time>=151400 then begin sell(1,lots,thisclose); end end
|