以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  增加一个条件  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=141348)

--  作者:惊弓之鸟
--  发布时间:2016/10/19 20:49:01
--  增加一个条件

老师好,

请把我系统里的平推条件(彩色部分)加入到我的“交易系统”中去。

我自己直接加入进去的话,就会发现只要满足了平推的盈利幅度 ,就触发出局了

后面的“止盈条件”就形同虚设了;

 

开多条件:= H>REF(HHV(H,N),1 ) AND  H>hh  AND HOLDING<=0 AND A=0 AND CC<1 AND 开仓时间;
开空条件:= L<REF(LLV(L,N),1)  AND  L<ll  AND HOLDING>=0 AND B=0 AND CC<1 AND 开仓时间;

止损平多条件1:=ENTERPRICE-L>=ZATR*0.5 AND HOLDING>0;   //百分比止损
止损平空条件1:=H-ENTERPRICE>=ZATR*0.5 AND HOLDING<0;

//平推平多条件:=开仓后最高-ENTERPRICE>ZATR*0.5*1.5 AND HOLDING>0;    //平推
//平推平空条件:=ENTERPRICE-开仓后最低>ZATR*0.5*1.5 AND HOLDING<0;

止盈平多条件:=H-ENTERPRICE>=ZATR*0.5*3 AND HOLDING>0;
止盈平空条件:=ENTERPRICE-L>=ZATR*0.5*3 AND HOLDING<0;

收盘平多条件:=TIME>=145800 AND HOLDING>0;
收盘平空条件:=TIME>=145800 AND HOLDING<0;


 

//交易系统

SOS平空:SELLSHORT(止损平空条件1,1,LIMITR,空方止损线);
//平推平空:SELLSHORT(平推平空条件,1,MARKET);


IF 收盘平空条件 THEN BEGIN
收盘平空:SELLSHORT(1,1,MARKET);
END

IF 止盈平空条件 THEN BEGIN
LF平空:SELLSHORT(1,1,LIMITR,空方LF止盈线);
B:=1;
END

输出B:=B,COLORWHITE,LINETHICK0;


IF 开多条件 THEN BEGIN
开多:BUY(1,1,LIMITR,输出H);
CC:=CC+1;
END

SOS平多:SELL(止损平多条件1,1,LIMITR,多方止损线);
//平推平多:SELL(平推平多条件,1,MARKET);

IF 收盘平多条件 THEN BEGIN
收盘平多:SELL(1,1,MARKET);
END


IF 止盈平多条件 THEN BEGIN
LF平多:SELL(1,1,LIMITR,多方LF止盈线);
A:=1;
END

输出A:=A,COLORWHITE,LINETHICK0;

IF 开空条件 THEN BEGIN
开空:BUYSHORT(1,1,LIMITR,输出L);
CC:=CC+1;
END

输出CC:=CC,COLORWHITE,LINETHICK0;


IF TIME>=145800 THEN A:=0;
IF TIME>=145800 THEN B:=0;
IF TIME>=145800 THEN CC:=0;


--  作者:jinzhe
--  发布时间:2016/10/20 8:45:28
--  
说明你的新条件很容易满足,倒是老条件在满足触发前,新条件就满足出发了
--  作者:惊弓之鸟
--  发布时间:2016/10/20 9:19:59
--  
以下是引用jinzhe在2016-10-20 8:45:28的发言:
说明你的新条件很容易满足,倒是老条件在满足触发前,新条件就满足出发了

老师没明白我的意思,我解释的还不够清楚......

我这2 个条件是不冲突的,是2 个出局模式 不会在同一天都满足触发的;

我举一个具体的例子 螺纹多单为例:我开多螺纹价格是2500,出局条件有3个  ,第一是开仓后直接止损(下跌10个点)第二是平推(先上涨15个点或以上 然后回落到开仓成本就出局)

第三是开仓后很顺利一路上涨(一路上涨30个点 中途没有大的回撤)

 

现在我的问题是凡是开仓后一路上涨到15个点的时候 ,系统就止盈了 , 这个我的本意不符合;

老师看看我上面的编程问题出在了哪里? 谢谢


--  作者:jinzhe
--  发布时间:2016/10/20 9:31:43
--  

//平推平多条件:=开仓后最高-ENTERPRICE>ZATR*0.5*1.5 AND HOLDING>0;    //平推
//平推平空条件:=ENTERPRICE-开仓后最低>ZATR*0.5*1.5 AND HOLDING<0;

 

 

那么这里的zatr是什么,然后乘0.5乘1.5又是为了什么

 

这句是你上面3种平仓方式里面的哪一种


--  作者:惊弓之鸟
--  发布时间:2016/10/20 10:16:19
--  
以下是引用jinzhe在2016-10-20 9:31:43的发言:

//平推平多条件:=开仓后最高-ENTERPRICE>ZATR*0.5*1.5 AND HOLDING>0;    //平推
//平推平空条件:=ENTERPRICE-开仓后最低>ZATR*0.5*1.5 AND HOLDING<0;

 

 

那么这里的zatr是什么,然后乘0.5乘1.5又是为了什么

 

这句是你上面3种平仓方式里面的哪一种

zatr是固定止损系数,像螺纹固定止损系数是20,那么止损就是20乘以0.5 ,平推条件就是当价格到达20*0.5*1.5 ,然后又回落到成本就出局;

这句是上面3种平仓方式的第二种(平推模式)


--  作者:jinzhe
--  发布时间:2016/10/20 10:23:05
--  

//平推平多条件:=开仓后最高-ENTERPRICE>ZATR*0.5*1.5 AND HOLDING>0 and c<=enterprice;    //平推
//平推平空条件:=ENTERPRICE-开仓后最低>ZATR*0.5*1.5 AND HOLDING<0 and c>=enterprice;


--  作者:惊弓之鸟
--  发布时间:2016/11/2 11:50:42
--  
以下是引用jinzhe在2016-10-20 10:23:05的发言:

//平推平多条件:=开仓后最高-ENTERPRICE>ZATR*0.5*1.5 AND HOLDING>0 and c<=enterprice;    //平推
//平推平空条件:=ENTERPRICE-开仓后最低>ZATR*0.5*1.5 AND HOLDING<0 and c>=enterprice;

金哲老师好

 

上次您为了添加了C>=enterprice(空单为例),实盘运行了一段时间没有问题,但是今天发现了问题;

仔细查看后 ,发现原来您添加的这个指令必须要求触发平推的那根K线收盘价>=enterprice  才出平推讯号,如果有上影线大于等于开仓价 而收盘价低于开仓价 还是不会触发的;

我的本意是要求开仓后符合平推的条件后,盘中只要最高价触发了开仓价 , 就平推出局;

发一个今天螺纹的实际讯号图看看,水平线就是今天的开仓价,红箭头那根K线的最高价已经触摸到了开仓价,按 我的本意是要触发平推的,

但是那根K线的收盘价还是低于了开仓价 ,所以导致没有触发平推讯号的产生;

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2016/11/2 13:09:35
--  
你要这样的话,那么就是要把c改成h了
--  作者:惊弓之鸟
--  发布时间:2016/11/2 13:25:37
--  
以下是引用jinzhe在2016-11-2 13:09:35的发言:
你要这样的话,那么就是要把c改成h了

好的 谢谢老师


--  作者:jinzhe
--  发布时间:2016/11/2 13:40:12
--  
通用的c<enterprice要改成  l<enterprice