以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  空单止盈了,为什么也打印出“空损”  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=50920)

--  作者:wn10000neng
--  发布时间:2013/4/11 10:09:10
--  空单止盈了,为什么也打印出“空损”

我的空单止盈的代码如下:

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,是个负值


--  作者:fly
--  发布时间:2013/4/11 10:18:02
--  

一次扫描,止盈语句在前,止盈执行后,AVGENTERPRICE变为0.

 

图表程序化,每次扫描,都会从图表上第一根K线重新开始计算一遍你的程序.你可以在"止盈"语句前面再输出AVGENTERPRICE的值看看.


--  作者:jinzhe
--  发布时间:2013/4/11 10:18:41
--  

 

[此贴子已经被作者于2013-4-11 10:19:23编辑过]

--  作者:jinzhe
--  发布时间:2013/4/11 10:20:59
--  

把那两个差值各写成一个条件

再用shift+q调试

[此贴子已经被作者于2013-4-11 10:21:09编辑过]

--  作者:wn10000neng
--  发布时间:2013/4/11 10:28:28
--  

为什么会这样我是懂了,但怎么改,才能止盈它就只输出“空盈”,止损它就只输出“空损”


--  作者:wn10000neng
--  发布时间:2013/4/11 12:05:18
--  
没人吗
--  作者:jinzhe
--  发布时间:2013/4/11 13:17:41
--  

在条件中加上类似 holding<0这样的仓位控制语句

if c-a<30 and holding<0 then


--  作者:fly
--  发布时间:2013/4/12 9:29:18
--  

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