以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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
--  
  1. 1.①对的。②持仓里只能是思路一不超过3支,思路二不超过2支,那怕总持仓品种有空余。③新选股不管是新进入C1还是过去在池里,只要符合筛选条件,如cross(c,ma(c,5))

--  作者: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个策略各下一次吗,等于是某个品种重复买入了。