欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于信号执行控制

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2817人关注过本帖树形打印复制链接

主题:关于信号执行控制

帅哥哟,离线,有人找我吗?
投机交易
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
关于信号执行控制  发帖心情 Post By:2015/1/5 11:15:48    Post IP:101.229.249.41[显示全部帖子]

老师:我是刚从文华转过来的,开平仓指令用的是老系统中BPK,SPK,SK,BP,BK,SP;执行方式是出信号立即下单(盘中立即下单,不等到K线走完),由于程序中使用了H>AA,BPK;L<BB,SPK;之类的语句,有时行情激烈同一K线会先达到H>AA执行BPK信号,之后价格下行达到L<BB,又得执行SPK信号,但是同时H>AA还是满足的,这样就会不断开平仓直到当根K线走完,在文华8.1版里只要加上一个MONO_SIGNAL;语句就可控制一根K线只执行一个信号,即同一K线里最先出现的信号被执行之后出现的信号被忽略,金字塔里如何才能做到一根K线只执行一个交易信号?谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/5 11:19:04    Post IP:101.229.249.41[显示全部帖子]

另外,我只想用老系统开平语句,不要涉及新系统指令。


 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/5 12:47:27    Post IP:101.229.249.41[显示全部帖子]

holding=0是表示没有持仓,这个达不到我的要求,平时我几乎全程在场的,也就是一直有持仓的,只有在很特殊的情况下才有离场空仓,因此多数情况下执行反手指令即SPK或BPK,如果在开平仓指令行加入holding=0条件,即多数情况下不会被执行,只有在离场空仓后出现的信号才会被执行,这样达不到我的目的。例如:K线1之前已经执行了SPK指令,即持有了空头仓位,而行情走到K线1时先到达H>AA,我要求立即执行BPK指令(如果加入holding=0即不会被执行),随着行情变化,之后K线1又到达L<BB,如果不控制一根K线只执行一个信号,即会立即去执行SPK指令,我的要求是在K线1里控制后面的SPK指令不被执行,只执行前面的BPK指令,也就是一根K线里如果同时满足二个方向相反的信号就只执行最先出现的信号,忽略后面出现的信号,但是如果是不在同一根K线里的反向信号那是都要执行的,另外,holding=0只有在逐K线模式下才能使用,而我的程序只在序列模式运行。看看有没有类似文华8.1版的MONO_SIGNAL;或8.2版的MULTSIG_MIN(0,0,1);这样的办法来控制?

 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/5 13:53:51    Post IP:101.229.249.41[显示全部帖子]

AA0,BPK;
MM0,SPK;
WW0,SPK;
YY0,BPK;
PP0 AND YP0,BP;
XX0 AND XP0,SP;
DD0,SPK;
DU0,BPK;
GG0,BPK;
TT0,SPK;
HH0,BPK;
LL0,SPK;
MONO_SIGNAL;
AUTOFILTER;

其中有些反向信号有可能会在同一根K线里出现,我要求一根K线只执行一个信号。


 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/5 14:34:52    Post IP:101.229.249.41[显示全部帖子]

应该是一对,例如,有时可能在同一根K线上先满足AA0之后再满足MM0,如果这种情况发生我要求只执行BPK,之后的SPK忽略,不在同一根K线上的反向信号则要求全部都要执行。

 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/5 18:54:33    Post IP:101.229.249.41[显示全部帖子]

按照老师以上的写法,我有二个问题不明白:

1、我的理解是只要多头或空头开仓过之后n=1就永远成立了,而且n也永远不会回到n=0了,那么平仓离场(因为有时会有平仓离场BP或SP指令产生)之后,holding=0,此时enterbars>0还成立吗?如果不成立了,也就意味着平仓离场后就不会再开仓了,因为平仓离场后n=1而holding=0,enterbars>0又不成立,那么上述写法中的所有开仓条件都不成立,所以就开不了仓了,例如K线1之前没有开仓信号,到了K线1有了AA0的BPK指令,此时n=1,holding=1,enterbars=0,到了K线2,n=1,holding=1,enterbars=1,如果K线3触发了XX0 AND XP0,SP;平仓离场了,此时n=1,holding=0,那么enterbars=2还成立吗(平仓后是否变成enterbars=-1)?如果不成立了,则当K线4再次产生AA0时就开不了仓了。

2、上述写法是否能过滤同向开仓信号?因为我写的是过滤模型,要求开仓后所有同向信号过滤,不要重复开仓,例如,K线10执行了BPK指令后即有了多头持仓后,当K线11再次产生BPK信号时即过滤掉不去执行,直到出现SPK或者出现SP时才去执行。


 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/6 10:15:43    Post IP:101.229.255.64[显示全部帖子]

老师,上述编写我有二个问题:

1、我的理解是当第一次多头或空头开仓之后n=1就永远成立,以后就再也不会有n=0了,因为后面没有赋值0给n了,这样一旦平仓离场(有特殊情况会平仓离场)后,之后再产生BPK、SPK之类的开仓指令就不会执行了,因为平仓离场后holding=0,而enterbars=-1,这样上述语句中的四个开仓条件就不成立了。例如K线1之前没有开仓信号,到K线1时执行了BPK信号,持有多头,此时holding=1,enterbars=0,n=1,到K线3时执行了SP信号平仓离场,此时holding=0,n=1,那么enterbars=2是否成立?如果变成了enterbars=-1,那么当K线4再次出现BPK信号时是否会被执行?按照老师上述编程只有当n=0 and holding=0或n=1 and enterbars>0时才会开仓,不知我的理解对不对,我的要求是如果K线4再次出现BPK信号是要去执行的。

2、老师上述编程,开仓后是否能过滤同方向的信号?我是过滤模型,不进行加减仓的,要求过滤掉同向信号。例如,K线4执行BPK信号持有多头后,如果K线5又出现BPK同向信号(此时K线4的多头并没有平仓),则要求过滤掉K线5的多头信号,直到执行SPK或SP之后再执行后面出现的BPK或BK信号。


 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/6 10:44:54    Post IP:101.229.255.64[显示全部帖子]

好的先试下看看,但是好象同向信号过滤语句没有看到哦?

[此贴子已经被作者于2015/1/6 10:46:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/7 10:13:29    Post IP:101.229.250.200[显示全部帖子]

老师,我按照上述编写试验了下,发现不能满足我的要求,我也不是空想,从试验结果来看,一旦开仓后n就永远等于1了,更不可思议的是K线1开仓(出信号立即下单)后当K线1没走完之前enterbars显示为0,当K线1走完跳到下一根K线2后,在K线2的enterbars显示为0,而光标移到K线1则enterbars显示为-1,要到再下一根K线3时才显示为1.这样按照老师提供的用enterbars>0作为开平仓条件来控制一根K线只执行一个信号就有问题,虽然一根K线执行一个信号是做到了,但是在K线2时即使出信号也不会执行了,因为运行到K线2时还是enterbars=0,要等到K线3以后出现的信号都会被执行,这样不能满足我的要求,请老师再想想办法。老师可以用下面的程序试验,加载到股指1分钟K线,逐K线模式1秒轮询,观察一下nn和tt二个值是不是和我说的一样。

variable:n=0;
M5:MA(C,5);
RH:REF(H,1);
RL:REF(L,1);
AA0:=H>M5 AND H>RH;
AAP:=C>M5 AND C<RL;
MM0:=L<M5 AND L<RL;
MMP:=C<M5 AND C>RH;
if n=0 and holding=0 and (aa0) then begin
 buy(1,1,market);
 n:=1;
end

if n=0 and holding=0 and (mm0) then begin
 buyshort(1,1,market);
 n:=1;
end

if n=1 and enterbars>0 and (aa0) then begin

    sellshort(1,0,market);

    buy(holding=0,1,market);

end


if n=1 and enterbars>0 and (mm0) then begin

    sell(1,0,market);

    buyshort(holding=0,1,market);

end
if enterbars>0 and  AAP then sell(1,0,market);
if enterbars>0 and  MMP then sellshort(1,0,market);
nn:n,NODRAW;
tt:enterbars,NODRAW;


 回到顶部
帅哥哟,离线,有人找我吗?
投机交易
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2015/1/5 10:38:23
  发帖心情 Post By:2015/1/7 10:58:29    Post IP:101.229.250.200[显示全部帖子]

老师,thisclose到底是以什么价格发出委托?出信号立即下单就是以出信号时的最新价发出委托?那么这样就会有很多单子不会成交了,我要求出信号立即下单并且一定要一次成交,不得撤单再委托,怎么办?

 回到顶部
总数 12 1 2 下一页