请教开仓问题 [金字塔]
- 咨询内容:
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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容