以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 卖出确定 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=173088) |
-- 作者:tyx0063 -- 发布时间:2019/11/13 19:53:39 -- 卖出确定 专业版,后台交易。 问题1:T日,按思路1买入AA、BB;按思路2买入CC、DD;所有被买的票进入持仓里。 T+1日,按短线策略1卖出AA,但此策略也符合卖出CC,然而CC是中线思路买的票,不能按AA卖出,请问如何避免? 问题2:T日,按思路1最多只能买3支,思路2最多只能买2支,总量不能超过5支。请问,如何避免思路1实际买了4支或5支,而思路2因晚一些触发而1支都没机会买?
|
-- 作者:FireScript -- 发布时间:2019/11/14 9:34:26 -- 1.如果2个思路 监控的都是同样的版块 。那就有点难区分了。因为2个策略本身是独立运行的 不相互沟通。我看你另一个帖子说的是用股票池选股。其实如果是股票池选股,后台程序化进行买卖,这个应该还是有可能能实现的。因为选股时候可以把选的股票放到不同板块去,然后后台就监控不同的板块,我监控的板块里面都没有这个品种,自然也不会去平它。 2.限制总的买入个数,也是可以的,思路就是读版块品种数量就行了,但是也可能存在一些巧合情况下的误差,比如我思路1 刚判断总的数量小于5,思路2瞬间下了一个,那我思路1至少要等到下次判断时候才能知道。 “思路2因晚一些触发而1支都没机会买” 这个得理清楚一套逻辑和流程出来才行。比如你说这个晚 到底晚多久才算晚呢。如果就是一直都不满足,那我思路1到后面到底还下不下呢。这个需要用户自行理清里面的逻辑。
|
-- 作者:tyx0063 -- 发布时间:2019/11/14 10:46:50 -- 1.T日,按思路C>ma(c,5),选出3支票(最多3支)进入股票池C1,随即后台读取C1作3支买入;T+1日,前面股票池刷新,思路C>ma(c,5),又选出3支进入股票池C1,c1就共有6支票了;T+1日,后台对股票池c1的6支票进行监控卖出实际持仓的2支,卖后,后台又对c1读取买入2支。后台如果不重复设条件c>ma(c,5),就会把c1池里的任意2支买入,但如果条件不是简单的c>ma(c,5),而是较繁杂的思路,那么就得重复在后台条件里都设置,这样就造成重复和内存不必要浪费吧。如何解决? 2.读板块品种数量,用到哪个函数,是取样板块还是实际持仓板块?我的意思是实际持仓里,只能有思路1出来的不超过3支,思路2出来的不超过2支。如何实现? 谢谢!
|
-- 作者:FireScript -- 发布时间:2019/11/14 11:08:35 -- 1.你这里是担心把前面卖出去的又重新买入了是吗? 后台有代码可以执行从版块删除品种的操作。卖出后直接进行删除即可 DELETEFROMBLOCK( , ) 就可以执行。在执行卖出的时候,把这个也进行一次执行即可。代码稍微注意点,卖出的条件必须和删除品种的操作完全同步即可。 2.STKCOUNT( ) 函数即可。这个函数取的是版块的品种数量,利用这个函数还能统计当前这个版块 在实际持仓里面 到底持有了几只品种 ; 在实际持仓里直接进行操作是不行的,你无法区分2个品种来源,因此我前面才建议你下单之前先放到版块里去,这样就相当于多了一个来源的标识了。知道来源了就能控制数量了。 |
-- 作者:tyx0063 -- 发布时间:2019/11/14 11:45:09 -- 接3楼: 1.T+1日,卖出2支并删2支后,状态池c1为6-2=4支,其中包含 T日进来的1支,如何只买今天进来的3支中的2支,决不能是昨天进来的1支。 2.统计某个板块在持仓品种的数量,如何做到?
|
-- 作者:FireScript -- 发布时间:2019/11/14 14:00:23 -- 1.先从头理一下 。需求是不是大致如下几点: 1)策略1 和策略2 哪个策略买入,也由哪个策略卖出。策略1买入的不能由策略2执行卖出 2)策略1 和策略2 实际持有的品种数量有上限,分别是3,2;(是单日数量还是说历史买入的也计算在内?) 3)买入只能买当天进入的品种。昨日进入的品种不买入。 2.这个需要写一个循环。 限制下在最后一个K操作即可 VARIABLE:ct:=0; num:=STKCOUNT(\'自选股\'); for i=1 to num do begin codeStr:=STKFROMBLK(\'自选股\',i); cc:TBUYHOLDINGEX(\'\',codeStr,1); //这里需要根据是统计今日仓还是老仓 进行调整 if cc>0 then ct:=ct+1; end 你这个需求主要是在涉及到2个策略交易到同样品种的时候会很麻烦。所以我想问清楚全部明显 然后我本地先尝试下。
|
-- 作者:tyx0063 -- 发布时间:2019/11/14 15:14:30 --
|
-- 作者:FireScript -- 发布时间:2019/11/14 15:38:05 -- 第二条还需要明确下:比如当前策略1昨天买入了三个品种的持仓且现在还在持仓中,今天又把三个品种中的某一个重复选进来了,那现在是下单还是不下单呢。等于是品种类不增加,还是三个品种,但是量上有增加。 另外就是这个三支是指当日买入的量限制在三支,还是说账户栏上始终保持只能有三支。2个区别还是很大的。 第三条确认下:意思是只管当前是否符合条件,无论什么时候进入池子的,只要持仓限制没达到就可以买入是吗? |
-- 作者:tyx0063 -- 发布时间:2019/11/14 16:08:48 -- ②只要持仓里还有该品种,再选进来,也不再多买;持仓品种数不管今日往日,实际持仓里永远策略一不超3,策略二不超2,不是指今天可买多少品种。 ③嗯,对的。 谢谢您的耐心??
|
-- 作者:FireScript -- 发布时间:2019/11/14 16:16:19 -- 最后一个需要确认的东西。策略1 和策略2 是可能同时选到同一个品种上去的。这种的处理逻辑是怎样选择?允许2个策略各下一次吗,等于是某个品种重复买入了。 |