以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=6213) |
-- 作者:董小球 -- 发布时间:2011/4/19 15:33:51 -- 如何求得某笔开仓历时 请问各位大大,如何求得某一笔开仓的开仓历时? 目的是判断某笔成交后到底是持有了多长时间!
我想出来了一个算法,但是在时间这一句有点问题,代码我发醋来看看!
//Q用来记录所剩持仓中最老的持仓单在数组中的位置,J记录数组坐标,I记录当时持仓量用于判断;
//卖持
//如果持仓时间超过3分钟则平仓,这里为防止市价强平不成交,应配合交易设置中的“未成交则撤单报单”来使用
奇怪不知道为何(TIME0-X[Q])>=180 这一句是恒不成立的,因为X[Q]总是实时更新的,并非算法中所预想的那样(判断持仓有变化则记录一个时间到数组中去),谁帮忙看看啊!! [此贴子已经被作者于2011-4-22 13:55:46编辑过]
|
-- 作者:阿火 -- 发布时间:2011/4/19 16:32:46 -- 不是enterbars吗 |
-- 作者:董小球 -- 发布时间:2011/4/19 16:42:03 -- 我要求的是某一笔的 不是单单上次的
目的是为了计算每笔成交后的持有时间长度 |
-- 作者:阿火 -- 发布时间:2011/4/19 17:13:14 -- 哦。那就好的方法是 用全局变量indi记录每笔交易 variable:indi=0;
每次平仓后,indi累加一次
最后要调用那一笔交易,就再用barslast()
比如现在的indi=100,要调用第96次交易的开仓历史就用 aa:ref(enterbars,barslast(indi=96 and ref(indi,1)=95)); aa在程序的不同位置,可能会得到不同的结果,特别是在反手模型的时候 [此贴子已经被作者于2011-4-19 17:20:50编辑过]
|
-- 作者:董小球 -- 发布时间:2011/4/20 9:25:26 -- 要是有个这样的函数就好了 返回现有持仓中的每笔开仓距今的秒数 |
-- 作者:董小球 -- 发布时间:2011/4/21 15:33:19 -- 顶起来,我写了下代码 大家给看看 |
-- 作者:董小球 -- 发布时间:2011/4/22 13:55:16 -- FF:TIME0; FF的值一只增加是对的 但是HH的值,发现并没有把当时的time0赋值给数组中去,一直是最新的TIME0 |
-- 作者:轮回 -- 发布时间:2011/4/25 0:41:30 -- A1:TBUYHOLDINGEX(\'\' ,\'\' ,0 ); 兄弟,这里并非(判断持仓有变化则记录一个时间到数组中去),而是只要满足TBUYHOLDINGEX(\'\' ,\'\' ,0 )后每TICK都计算一次. |
-- 作者:董小球 -- 发布时间:2011/4/25 9:12:00 -- 哦 这样啊,我再价格计数器试试,多谢指教~ |