以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=174756) |
-- 作者:qq代人发帖 -- 发布时间:2020/3/4 14:50:04 -- 如何记录前一天的持仓。 请教:如何记录前一天的持仓。最近被持仓问题搞疯。全局变量,内置数据库都用了。 有没有什么好办法记录前一天的持仓情况。好让策略能在前一天持仓的基础上继续运行? |
-- 作者:FireScript -- 发布时间:2020/3/4 14:53:35 -- 你是图表程序化?还是后台程序化? 具体操作过程能否说明下。[此贴子已经被作者于2020/3/4 14:57:12编辑过]
|
-- 作者:starmichael -- 发布时间:2020/3/4 15:24:30 -- 是后台操作 |
-- 作者:FireScript -- 发布时间:2020/3/4 15:32:20 -- 后台读取的就是账号最新的状态,也就是昨日最后的仓位情况。你这还需要记录啥呢? |
-- 作者:wenarm -- 发布时间:2020/3/4 15:33:29 -- 1.这种状态记录,只能选择在某个时间点,将其写入到ext全局变量中。 2.你这种操作实际上没有多大意义。不知道你记历史做什么用。
|
-- 作者:starmichael -- 发布时间:2020/3/4 21:42:19 -- 1. 因为有多策略。所以要分清各个策略的持仓情况。 2. 因为第二天,策略重新运行。如果没有昨天的开仓状态,就会出现重复开仓的现象。
|
-- 作者:wenarm -- 发布时间:2020/3/4 22:05:20 -- 1您这种需求,最好的解决办法是多账户。别的想区分策略持仓的方法都无法满足。 2在后台中,这种情况是不存在的。虽然重新启动运行,但是之前的开平信号等记录都还是在的。对其操作不可能丢。 你说的重复下单,指的是什么?后台不会对历史信号操作。
建议你把完整代码贴出来给我们看下。 |
-- 作者:starmichael -- 发布时间:2020/3/5 9:13:06 -- 2020-03-04 14:54:02.790 -================open=4153.00===================== 2020-03-04 14:54:03.009 Holding=0.000 2020-03-04 14:54:03.009 vHolding=0.000 2020-03-04 14:54:03.009 rAG1vHolding=0.000 2020-03-04 14:54:03.025 --------------------------------- End of Data close=4151.00----------------------- 2020-03-04 14:57:02.587 workmode=1.000 2020-03-04 14:57:02.587 -================open=4151.00===================== 2020-03-04 14:57:02.775 Holding=0.000 2020-03-04 14:57:02.775 vHolding=0.000 2020-03-04 14:57:02.790 rAG1vHolding=0.000 2020-03-04 14:57:02.790 --------------------------------- End of Data close=4153.00----------------------- 这是昨晚系统记录的持仓情况。 2020-03-05 09:00:08.635 workmode=1.000 2020-03-05 09:00:08.641 -================open=4153.00===================== 2020-03-05 09:00:08.858 Holding=2.000 2020-03-05 09:00:08.865 vHolding=2.000 2020-03-05 09:00:08.872 rAG1vHolding=2.000 2020-03-05 09:00:08.879 --------------------------------- End of Data close=4155.00----------------------- 2020-03-05 09:03:02.431 workmode=1.000 2020-03-05 09:03:02.446 -================open=4147.00===================== 2020-03-05 09:03:02.587 Holding=2.000 2020-03-05 09:03:02.587 vHolding=2.000 2020-03-05 09:03:02.587 rAG1vHolding=2.000 这是今早开盘记录的持仓信息。 一开盘,我就有了两个持仓。而实际情况是,仓位在昨天就清空了。 也就是今天开盘的持仓和昨天的持仓没有衔接上,而是又新计算了一个持仓。
|
-- 作者:FireScript -- 发布时间:2020/3/5 9:21:50 -- 你这个输出的代码怎么写的啊。贴下看下。 |
-- 作者:starmichael -- 发布时间:2020/3/5 9:57:31 -- VARIABLE:vHolding=IF(workmode=3 or workmode=0,0,EXTGBDATA(\'AG1vHOLDING\')); 。。。。。。 IF (workmode=1 or workmode=2) THEN BEGIN EXTGBDATASET(\'AG1vHolding\',vHolding); rAG1vHolding:EXTGBDATA(\'AG1vHolding\'),LINETHICK0; END IF ISLASTBAR and (workmode=1 or workmode=2) THEN BEGIN DEBUGFILE(debugfilename,\'-================open=%.2f=====================\',open); DEBUGFILE(Debugfilename,\'Holding=%.3f\',Holding);//输出vHolding DEBUGFILE(Debugfilename,\'vHolding=%.3f\',vHolding);//输出vHolding DEBUGFILE(Debugfilename,\'rAG1vHolding=%.3f\',rAG1vHolding);//输出vHolding DEBUGFILE(debugfilename,\'--------------------------------- End of Data close=%.2f-----------------------\',close); END |