//应用于图表,以多头为例,空头的情况按照反写就行,仅供参考。
variable:maxprofit=0;
if holding>0 and enterbars>0 then
begin
win:=high-AVGENTERPRICE; //记录最大盈利
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win; //记录回调幅度
end
if maxprofit>=50*mindiff and win2>0.2*maxprofit then
sell(holding>0,holding,market); //最大盈利高于50*mingdiff 并且回落大于最高值的20%,则止盈
//应用于后台
GLOBALVARIABLE:maxprofit=0;
if tholding>0 and TENTERBARS>0 then
begin
win:=high-TAVGENTERPRICE;
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win;
end
if maxprofit>=50*mindiff and win2>0.2*maxprofit then
tsell(tholding>0,tholding,MKT);
//以下代码供参考学习,建议先使用模拟盘运行调试。
variable:maxprofit=0;
if holding>0 and enterbars>0 then
begin
win:=high-AVGENTERPRICE; //记录多头最大盈利
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win; //记录多头回调幅度
end
if holding<0 and enterbars>0 then
begin
win:=avgenterprice-low; //记录空头最大盈利
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win; //记录空头回调幅度
end
if maxprofit>=50*mindiff and win2>0.2*maxprofit then
begin
sell(holding>0,holding,market); //最大盈利高于50*mingdiff 并且回落大于最高值的20%,止盈多头
sellshort(holding<0,holding,market); //最大盈利高于50*mingdiff 并且回落大于最高值的20%,止盈空头
maxprofit:=0;
end
//用于后台
GLOBALVARIABLE:maxprofit=0;
if tholding>0 and TENTERBARS>0 then
begin
win:=high-TAVGENTERPRICE;
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win;
end
if tholding<0 and TENTERBARS>0 then
begin
win:=TAVGENTERPRICE-low;
if win>maxprofit then maxprofit:=win;
win2:=maxprofit-win;
end
if maxprofit>=50*mindiff and win2>0.2*maxprofit then
begin
tsell(tholding>0,tholding,MKT);
tsellshort(tholding<0,tholding,MKT);
maxprofit:=0;
end
可以的,逻辑上没有问题啊。
你用的走完k还是固定时间间隔下单,走完k很有可能两根k差100点导致
你用固定时间间隔看下呢