1 以买入价为准,5%后日线收盘卖出。
2 以买入价为准,3个交易日后卖出。
看起来是简单得要死,可是我自己编的代码是有问题的。却又未发现问题所在。请各位大侠给出正确的。谢谢。
我的代码:
runmode:0;
input:a(105,100,199);
variable:lastp=0;
if c<o then begin
buy(holding=0,100%,thisclose);//如果收盘小于开盘 且 空仓 就在该日收盘位全仓买入。
lastp:=c;
end;
if c/lastp>(a/100) then begin
sell(holding>0,100%,thisclose);//如果持仓且收盘价大于买入价5%,则全仓卖出。
end;
具体实施的时候,卖出价位十分不准,有时到了5%不卖,之后要么在15%才卖出要么一直持仓。试了很多都是这样,就不举具体例子了、
加粗语句改动,试试是否正确。
runmode:0;
input:a(105,100,199);
variable:lastp=0;
if c<o then begin
buy(holding=0,100%,thisclose);//如果收盘小于开盘 且 空仓 就在该日收盘位全仓买入。
lastp:=c;
end;
if (c-lastp)/lastp>=((a-100)/100) then begin
sell(holding>0,100%,thisclose);//如果持仓且收盘价大于买入价5%,则全仓卖出。
end;
runmode:0;
if c<o then begin
buy(holding=0,100%,thisclose);//如果收盘小于开盘 且 空仓 就在该日收盘位全仓买入。
end;
if c/enterprice>=1.05 then begin
sell(holding>0,0,thisclose);//如果持仓且收盘价大于买入价5%,则全仓卖出。
end;
这样看起来简单点
您这个公式,是想在日K线上运行的,如果用K线走完的话,就会到第2天才会发出委托.所以,推荐用固定时间间隔,注意事项:防止信号闪烁
//以下用固定时间间隔.
runmode:0;
if c<o then begin //-开仓条件这里,楼主自己注意编写,此条件不再更改
buy(holding=0,100%,thisclose);//如果收盘小于开盘 且 空仓 就在该日收盘位全仓买入。
end
if enterbars>3 or (enterbars>0 and l>enterprice*1.05) then begin //换成以最低价为标准与开仓均价比较,防止信号闪烁.
sell(holding>0,100%,thisclose);//如果持仓且最低价大于买入价5%,则全仓卖出。
end