以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]关于使用限价函数碰到的难题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=4771)

--  作者:j888fff
--  发布时间:2011/1/10 17:05:12
--  [求助]关于使用限价函数碰到的难题

图表交易,盘中延时刷新1000毫秒,新交易函数,K线走完模式,逐周期,品种期指。

设想,在以上条件下,以信号出现的K线收盘价+1或-1发单。

比如:开多信号,该根K线收盘价为3000,则以限价函数发出2999(3000-1)发出开多委托单。

实际调试过程中,按两步走。A,先找到以本周期收盘价发单的函数编法;B,在此基础上根据开单方向+1或-1。

 

调试一:LIMIT, close

结果,由于是K线走完模式,所以,发出的价格,是次周期开盘价。实盘多次测试,该结果确定无疑。

 

调试二:LIMIT, ref(close,1)

结果,假设发出信号的那根本周期K线为BB,则前一根K线为AA,次周期K线为CC.

则发出的价格,是AA的收盘价,不是本周期BB的收盘价。

 

调试三:LIMITR, close

成功取到本周期收盘价,并实盘发单成功。

 

调试步骤A完成。

 

调试步骤B:根据开多单,收盘价-1,平多单,收盘价+1 规则编写代码。

如:LIMITR, close-1                     LIMITR, close+1

有些开仓点,会出现不能成交的白色标记。

原因为:因策略,在某个阴K线AA出现开多信号。如,该阴线开盘价为3010,最高价为3020,最低价为2999.8,收盘价为3000。

                         次周期K线BB,                               开盘价为3000,最高价为3050,最低价为2998,收盘价3030.

由于LIMITR是本周期函数,它只将本周期的最低价2999.8和发单价2999做对比,如有差距,则提示不能成交。

但在以上的例子中,以AA收盘价3000-1,即2999发单,在次周期是能成交的,因为次周期最低价能到2998.

从而导致,图表交易信号与事实不符,因为,模型认为一开始开多没有成交,就不再发平仓信号了。

 

请求帮助,如何解决这个问题?

 

 

 

 

 


--  作者:admin
--  发布时间:2011/1/10 17:48:33
--  
LIMIT,是主要是在测试时使用的方法,因为回测时我们可以任何一个看到的价格指定成交,但是实盘就不一样,因为你不知道的最后一跟K线的收盘价到底是多少,故金字塔的函数列表中将LIMIT进行了我们认为比较详尽的描述,是按照当前的实际的价格报单,至于价格的位置,根据你的自动交易方式有关,如果是固定轮询模式,会在检测到信号的当时就触发交易,如果走完K线,则就会在次周期的开盘价位置给你报单。
--  作者:j888fff
--  发布时间:2011/1/10 18:11:26
--  

管理员的意思我明白,

我现在就是想,本周期收盘价-1或+1发单这个功能如何来实现它,且能与图表交易信号相对应。

因为在实盘中,由于期指的波动大,次周期最低价常常能低于本周期收盘价1以上,以这样发单,能省下的手续费和滑点不可估量。以5分钟模型固定1手,10.4.16~11.1.10,交易数量400次计算,几乎能省下400点;如果复利计算,更是不得了。期间如偶有因此造成的漏单,也足以补偿了且富有盈余。

不知道这个设计该如何编制来实现它。苦恼了。。

 

金字塔能否再设计个新的限价函数,以支持这个功能?

比方新函数LLL ,只用来支持K线走完模式,以本周期收盘价-1发单,但和次周期最低价对比,而不是与本周期最低价对比。

 

[此贴子已经被作者于2011-1-10 18:17:43编辑过]

--  作者:admin
--  发布时间:2011/1/10 19:21:14
--  

你可以试试使用MARKET交易控制符,使用市价下单,实盘中再选择走完K线模式,这样测试与实盘交易应该差距最小的


--  作者:j888fff
--  发布时间:2011/1/10 20:49:29
--  

MARKET-1或

MARKET+1?

我试试,这样能成的话,漏单的概率不好测算(-0.2~-1选哪个参数好这个也不好定),还有就是,开盘价如大幅跳空的话,就不大合算了。


--  作者:shy508
--  发布时间:2011/7/21 21:59:14
--  
以下是引用j888fff在2011-1-10 18:11:26的发言:

管理员的意思我明白,

我现在就是想,本周期收盘价-1或+1发单这个功能如何来实现它,且能与图表交易信号相对应。

因为在实盘中,由于期指的波动大,次周期最低价常常能低于本周期收盘价1以上,以这样发单,能省下的手续费和滑点不可估量。以5分钟模型固定1手,10.4.16~11.1.10,交易数量400次计算,几乎能省下400点;如果复利计算,更是不得了。期间如偶有因此造成的漏单,也足以补偿了且富有盈余。

不知道这个设计该如何编制来实现它。苦恼了。。

 

金字塔能否再设计个新的限价函数,以支持这个功能?

比方新函数LLL ,只用来支持K线走完模式,以本周期收盘价-1发单,但和次周期最低价对比,而不是与本周期最低价对比。

 

[此贴子已经被作者于2011-1-10 18:17:43编辑过
支持!困扰好久的问题!
--  作者:shy508
--  发布时间:2011/7/21 22:00:54
--  
以下是引用j888fff在2011-1-10 20:49:29的发言:

MARKET-1或

MARKET+1?

我试试,这样能成的话,漏单的概率不好测算(-0.2~-1选哪个参数好这个也不好定),还有就是,开盘价如大幅跳空的话,就不大合算了。

我这不成啊,楼主测试结果如何?


--  作者:j888fff
--  发布时间:2011/7/31 12:21:34
--  
以下是引用shy508在2011-7-21 22:00:54的发言:

我这不成啊,楼主测试结果如何?

 

用LIMITR, close-1 LIMITR, close+1

并且为防止不成交信号的产生,用了最高最低价过滤。

 


--  作者:睿
--  发布时间:2012/2/17 15:43:54
--  
j888fff 我和你有相同的想法,请问你的下单实现了吗?是本周期收盘加减一个数值吗?
Limitr只是一个修饰符,好像不是函数
“由于LIMITR是本周期函数,它只将本周期的最低价2999.8和发单价2999做对比,如有差距,则提示不能成交。”
这是你实盘测试下单函数后得出的结论吗?
我怎么感觉LIMITR只是告诉Buy函数取得具体哪个周期的收盘价,取到以后就直接限价委托了。为什么还要出现你说的进行价位之间的逻辑比较?