//这个程序用于指定价格平仓,图表化情况下,已经手工开仓,程序平仓
//只平一次
c1:=0;
KD:=c>0; //开多条件,即时价大于零,开仓
PD:=c>=588; //平多条件
//KK:=; //开空条件
//PK:=; //平空条件
//平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0 and c1=0,2,THISCLOSE); //开多信号
平多:SELL(PD,0,THISCLOSE); //平多信号
//开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
ho:HOLDING;
if pd then c1:=1;
你是想实现半自动的方式?
[此贴子已经被作者于2017/9/18 8:16:42编辑过]
variable: c1:=0;
//aa:EXTGBDATA(c1 );
KD:=c>0; //开多条件
PD:=c>=550; //平多条件
KK:=; //开空条件
PK:=; //平空条件
//平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0 and c1=0 ,1,THISCLOSE); //开多信号
平多:SELL(PD,0,THISCLOSE); //平多信号
//开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
ho:HOLDING;
if pd then c1=1;
怎么还是不行
麻烦说清楚你的需求,以及上述代码中不满足现象。
[此贴子已经被作者于2017/12/12 21:29:13编辑过]
你如果是手工开仓的,希望实现自动平仓的话。应该吧你开仓位置开在历史信号上,并且让其不会在当前k线上满足开仓条件。
buy(barpos=1,30,THISCLOSE);//在历史上第一根位置开出足够的仓位,便于后执行平仓条件时有足够的虚拟仓位。条件可以修改为其它的,只要满足上面说的就行。
只有这样你才能不会出现上面说的,存在出现开仓信号。
平多:SELL(PD,1,THISCLOSE);
另外你上面的条件是直接全平,这种情况下,当前仓位可能根本平不掉,因为在历史k线上其虚拟仓位可能已经被平。