我的空单止盈的代码如下:
if holding < 0 and ENTERBARS > 0 then //空单的止盈止损
begin
IF AVGENTERPRICE - C >= 30* mindiff then
begin
SELLSHORT(1,0,MARKETR);//止盈30个点
DRAWTEXT(1,h,'空盈');
end
IF C - AVGENTERPRICE >= 20*MINDIFF then
begin
SELLSHORT(1,0,MARKETR);//止损20个点
DRAWTEXT(1,l,'空损');
end
if ISLASTBAR then
DEBUGFILE('d:\止盈止损条件.txt','空单平均成本:avgenterprice:%.2f',avgenterprice);
DEBUGFILE('D:\止盈止损条件.TXT','空盈条件 '&'c:'& numtostr(c,2)&' avgenterprice:'&numtostr(avgenterprice,2)&' AVGENTERPRICE - C:'&numtostr(AVGENTERPRICE - C,2)&' 30*mindiff:'&numtostr(30*mindiff,2),0);
DEBUGFILE('D:\止盈止损条件.TXT','空损条件 '&'c:'& numtostr(c,2)&' avgenterprice:'&numtostr(avgenterprice,2)&' C - AVGENTERPRICE:'&numtostr(C - AVGENTERPRICE,2)&' 20*mindiff:'&numtostr(20*mindiff,2),0);
end
每次止盈的时候,DRAWTEXT(1,l,'空损');这个语句也会执行,也打印出了“空损”
好像是AVGENTERPRICE的问题,出现信号后,还没平仓的时候,AVGENTERPRICE变为0了,导致C - AVGENTERPRICE变成最新价,超过了20*MINDIFF,止损条件成立(但实际是止盈的,这只是AVGENTERPRICE提前变为0导致的)
但为什么AVGENTERPRICE变为0后,止盈的条件还会执行呢,因为AVGENTERPRICE - C变成了最新价的负值,不会大于30*MINDIFF了
可能是金字塔内部机制就是这样的
2013-04-11 09:49:21.671 空盈条件 c:2498.60 avgenterprice:2502.94 AVGENTERPRICE - C:4.34 30*mindiff:6.00
2013-04-11 09:49:21.671 空损条件 c:2498.60 avgenterprice:2502.94 C - AVGENTERPRICE:-4.34 20*mindiff:4.00
2013-04-11 09:49:23.171 空单平均成本:avgenterprice:2502.94
2013-04-11 09:49:23.171 空盈条件 c:2497.80 avgenterprice:2502.94 AVGENTERPRICE - C:5.14 30*mindiff:6.00
2013-04-11 09:49:23.171 空损条件 c:2497.80 avgenterprice:2502.94 C - AVGENTERPRICE:-5.14 20*mindiff:4.00
2013-04-11 09:49:24.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:24.671 空盈条件 c:2496.20 avgenterprice:0.00 AVGENTERPRICE - C:-2496.20 30*mindiff:6.00
2013-04-11 09:49:24.671 空损条件 c:2496.20 avgenterprice:0.00 C - AVGENTERPRICE:2496.20 20*mindiff:4.00
2013-04-11 09:49:26.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:26.171 空盈条件 c:2494.60 avgenterprice:0.00 AVGENTERPRICE - C:-2494.60 30*mindiff:6.00
2013-04-11 09:49:26.171 空损条件 c:2494.60 avgenterprice:0.00 C - AVGENTERPRICE:2494.60 20*mindiff:4.00
2013-04-11 09:49:27.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:27.671 空盈条件 c:2492.60 avgenterprice:0.00 AVGENTERPRICE - C:-2492.60 30*mindiff:6.00
2013-04-11 09:49:27.671 空损条件 c:2492.60 avgenterprice:0.00 C - AVGENTERPRICE:2492.60 20*mindiff:4.00
2013-04-11 09:49:29.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:29.171 空盈条件 c:2492.20 avgenterprice:0.00 AVGENTERPRICE - C:-2492.20 30*mindiff:6.00
2013-04-11 09:49:29.171 空损条件 c:2492.20 avgenterprice:0.00 C - AVGENTERPRICE:2492.20 20*mindiff:4.00
2013-04-11 09:49:32.312 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:32.312 空盈条件 c:2492.00 avgenterprice:0.00 AVGENTERPRICE - C:-2492.00 30*mindiff:6.00
2013-04-11 09:49:32.312 空损条件 c:2492.00 avgenterprice:0.00 C - AVGENTERPRICE:2492.00 20*mindiff:4.00
2013-04-11 09:49:33.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:33.671 空盈条件 c:2493.40 avgenterprice:0.00 AVGENTERPRICE - C:-2493.40 30*mindiff:6.00
2013-04-11 09:49:33.671 空损条件 c:2493.40 avgenterprice:0.00 C - AVGENTERPRICE:2493.40 20*mindiff:4.00
2013-04-11 09:49:35.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:35.171 空盈条件 c:2493.80 avgenterprice:0.00 AVGENTERPRICE - C:-2493.80 30*mindiff:6.00
2013-04-11 09:49:35.171 空损条件 c:2493.80 avgenterprice:0.00 C - AVGENTERPRICE:2493.80 20*mindiff:4.00
2013-04-11 09:49:36.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:36.671 空盈条件 c:2494.00 avgenterprice:0.00 AVGENTERPRICE - C:-2494.00 30*mindiff:6.00
2013-04-11 09:49:36.671 空损条件 c:2494.00 avgenterprice:0.00 C - AVGENTERPRICE:2494.00 20*mindiff:4.00
2013-04-11 09:49:38.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:38.171 空盈条件 c:2494.00 avgenterprice:0.00 AVGENTERPRICE - C:-2494.00 30*mindiff:6.00
2013-04-11 09:49:38.171 空损条件 c:2494.00 avgenterprice:0.00 C - AVGENTERPRICE:2494.00 20*mindiff:4.00
2013-04-11 09:49:39.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:39.671 空盈条件 c:2494.40 avgenterprice:0.00 AVGENTERPRICE - C:-2494.40 30*mindiff:6.00
2013-04-11 09:49:39.671 空损条件 c:2494.40 avgenterprice:0.00 C - AVGENTERPRICE:2494.40 20*mindiff:4.00
2013-04-11 09:49:41.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:41.171 空盈条件 c:2493.80 avgenterprice:0.00 AVGENTERPRICE - C:-2493.80 30*mindiff:6.00
2013-04-11 09:49:41.171 空损条件 c:2493.80 avgenterprice:0.00 C - AVGENTERPRICE:2493.80 20*mindiff:4.00
2013-04-11 09:49:42.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:42.671 空盈条件 c:2493.60 avgenterprice:0.00 AVGENTERPRICE - C:-2493.60 30*mindiff:6.00
2013-04-11 09:49:42.671 空损条件 c:2493.60 avgenterprice:0.00 C - AVGENTERPRICE:2493.60 20*mindiff:4.00
2013-04-11 09:49:44.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:44.171 空盈条件 c:2494.00 avgenterprice:0.00 AVGENTERPRICE - C:-2494.00 30*mindiff:6.00
2013-04-11 09:49:44.171 空损条件 c:2494.00 avgenterprice:0.00 C - AVGENTERPRICE:2494.00 20*mindiff:4.00
2013-04-11 09:49:45.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:45.671 空盈条件 c:2493.80 avgenterprice:0.00 AVGENTERPRICE - C:-2493.80 30*mindiff:6.00
2013-04-11 09:49:45.671 空损条件 c:2493.80 avgenterprice:0.00 C - AVGENTERPRICE:2493.80 20*mindiff:4.00
2013-04-11 09:49:47.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:47.171 空盈条件 c:2493.40 avgenterprice:0.00 AVGENTERPRICE - C:-2493.40 30*mindiff:6.00
2013-04-11 09:49:47.171 空损条件 c:2493.40 avgenterprice:0.00 C - AVGENTERPRICE:2493.40 20*mindiff:4.00
2013-04-11 09:49:48.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:48.671 空盈条件 c:2493.80 avgenterprice:0.00 AVGENTERPRICE - C:-2493.80 30*mindiff:6.00
2013-04-11 09:49:48.671 空损条件 c:2493.80 avgenterprice:0.00 C - AVGENTERPRICE:2493.80 20*mindiff:4.00
2013-04-11 09:49:50.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:50.171 空盈条件 c:2493.60 avgenterprice:0.00 AVGENTERPRICE - C:-2493.60 30*mindiff:6.00
2013-04-11 09:49:50.171 空损条件 c:2493.60 avgenterprice:0.00 C - AVGENTERPRICE:2493.60 20*mindiff:4.00
2013-04-11 09:49:51.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:51.671 空盈条件 c:2494.20 avgenterprice:0.00 AVGENTERPRICE - C:-2494.20 30*mindiff:6.00
2013-04-11 09:49:51.671 空损条件 c:2494.20 avgenterprice:0.00 C - AVGENTERPRICE:2494.20 20*mindiff:4.00
2013-04-11 09:49:53.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:53.171 空盈条件 c:2494.80 avgenterprice:0.00 AVGENTERPRICE - C:-2494.80 30*mindiff:6.00
2013-04-11 09:49:53.171 空损条件 c:2494.80 avgenterprice:0.00 C - AVGENTERPRICE:2494.80 20*mindiff:4.00
2013-04-11 09:49:54.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:54.671 空盈条件 c:2494.60 avgenterprice:0.00 AVGENTERPRICE - C:-2494.60 30*mindiff:6.00
2013-04-11 09:49:54.671 空损条件 c:2494.60 avgenterprice:0.00 C - AVGENTERPRICE:2494.60 20*mindiff:4.00
2013-04-11 09:49:56.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:56.171 空盈条件 c:2494.40 avgenterprice:0.00 AVGENTERPRICE - C:-2494.40 30*mindiff:6.00
2013-04-11 09:49:56.171 空损条件 c:2494.40 avgenterprice:0.00 C - AVGENTERPRICE:2494.40 20*mindiff:4.00
2013-04-11 09:49:57.671 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:57.671 空盈条件 c:2494.40 avgenterprice:0.00 AVGENTERPRICE - C:-2494.40 30*mindiff:6.00
2013-04-11 09:49:57.671 空损条件 c:2494.40 avgenterprice:0.00 C - AVGENTERPRICE:2494.40 20*mindiff:4.00
2013-04-11 09:49:59.171 空单平均成本:avgenterprice:0.00
2013-04-11 09:49:59.171 空盈条件 c:2494.40 avgenterprice:0.00 AVGENTERPRICE - C:-2494.40 30*mindiff:6.00
2013-04-11 09:49:59.171 空损条件 c:2494.40 avgenterprice:0.00 C - AVGENTERPRICE:2494.40 20*mindiff:4.00
我是9:50止盈的,但注意看止盈条件,AVGENTERPRICE - C:-2494.40,是个负值
一次扫描,止盈语句在前,止盈执行后,AVGENTERPRICE变为0.
图表程序化,每次扫描,都会从图表上第一根K线重新开始计算一遍你的程序.你可以在"止盈"语句前面再输出AVGENTERPRICE的值看看.
把那两个差值各写成一个条件
再用shift+q调试
为什么会这样我是懂了,但怎么改,才能止盈它就只输出“空盈”,止损它就只输出“空损”
在条件中加上类似 holding<0这样的仓位控制语句
if c-a<30 and holding<0 then
IF AVGENTERPRICE - C >= 30* mindiff and holding < 0 and ENTERBARS > 0 then//空单的止盈
begin
SELLSHORT(1,0,MARKETR);//止盈30个点
DRAWTEXT(1,h,'空盈');
end
IF C - AVGENTERPRICE >= 20*MINDIFF and holding < 0 and ENTERBARS > 0 then//空单的止损
begin
SELLSHORT(1,0,MARKETR);//止损20个点
DRAWTEXT(1,l,'空损');
end