請教開倉問題 [金字塔]
- 咨詢內容:
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一下,就會開多但,這個是我不想要的,請高手指點!
- 金字塔客服:
把原來的代碼都貼出來
- 用戶回復:
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);
endif 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這是源碼,有其他不妥的地方也請高手指點!
- 網友回復:
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);
endif 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 - 網友回復:
給你在開平倉那里做個限定
variable:n=0,m=0;
if n=0 and 其他開多條件 then begin
buy;
n:=1;
m:=0;
end
if m=0 and 其他開空條件 then begin
buyshort;
m:=1;
n:=0;
end
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容