以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于信号执行控制 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=73934) |
-- 作者:投机交易 -- 发布时间:2015/1/5 11:15:48 -- 关于信号执行控制 老师:我是刚从文华转过来的,开平仓指令用的是老系统中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线只执行一个交易信号?谢谢! |
-- 作者:投机交易 -- 发布时间:2015/1/5 11:19:04 -- 另外,我只想用老系统开平语句,不要涉及新系统指令。 |
-- 作者:jinzhe -- 发布时间:2015/1/5 11:22:27 -- 既然转到金字塔,那么就要按照金字塔 的来处理, 希望只出一个信号的,在新交易系统里面加一个开仓条件:holding=0 |
-- 作者:投机交易 -- 发布时间:2015/1/5 12:47:27 -- 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);这样的办法来控制? |
-- 作者:jinzhe -- 发布时间:2015/1/5 13:29:14 -- 把你文华里面的代码贴出来 |
-- 作者:投机交易 -- 发布时间:2015/1/5 13:53:51 -- AA0,BPK; 其中有些反向信号有可能会在同一根K线里出现,我要求一根K线只执行一个信号。 |
-- 作者:jinzhe -- 发布时间:2015/1/5 14:09:24 -- 只有一个信号(只有一个开或者一个平);还是能有一对开平信号 |
-- 作者:投机交易 -- 发布时间:2015/1/5 14:34:52 -- 应该是一对,例如,有时可能在同一根K线上先满足AA0之后再满足MM0,如果这种情况发生我要求只执行BPK,之后的SPK忽略,不在同一根K线上的反向信号则要求全部都要执行。 |
-- 作者:jinzhe -- 发布时间:2015/1/5 14:46:44 -- 你这么多条件写出来会很多 |
-- 作者:jinzhe -- 发布时间:2015/1/5 14:52:37 -- variable:n=0; if n=0 and holding=0 and (aa0 or yy0 or du0 or gg0 or hh0) then begin if n=0 and holding=0 and (mm0 or ww0 or dd0 or tt0 or ll0) then begin if n=1 and enterbars>0 and (aa0 or yy0 or du0 or gg0 or hh0) then begin sellshort(1,0,market); buy(holding=0,1,market); end
sell(1,0,market); buyshort(holding=0,1,market); end |