以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  请问我想在平多的时候清光所有600开头的股票,请问用什么语句?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=159784)

--  作者:mhw307
--  发布时间:2017/11/23 9:05:35
--  请问我想在平多的时候清光所有600开头的股票,请问用什么语句?
我做了个跟踪大盘的模型,
想在平多的时候一次性清光所有600开头的股票,请问在TSELL中用什么语句?

--  作者:FireScript
--  发布时间:2017/11/23 9:16:13
--  

加一个判断条件,这样写即可:

 

 

tesll(STRNCMP(STKLABEL ,\'600\' ,3 )=0 and 平仓条件,0,mkt);

 

 


--  作者:mhw307
--  发布时间:2017/11/23 9:45:10
--  
谢谢
--  作者:mhw307
--  发布时间:2017/11/29 10:28:17
--  
不好意思,再问一下老师。
刚才触发卖了,但是没按照设想走,
是不是要把公式改成这样?

平多:tsell(B2,0,MKT,\'STRNCMP(STKLABEL,\'600\',3 )=0\');  

还有请教一下老师,我的思路是在根据大盘买卖点,进行股票交易。
做法是在后台监控股票池,由于每天的监控品种会由股票池定时更新,造成卖的时候监控的品种会和持仓有不同。
我的解决方案是股票池每天更新不管他,卖的时候把所有上证的持仓都清掉。这种情况下是不是不能在后台设置监控品种,而是要在TBUY和TSELL语句里面设置,如果要设置的话,怎么写语句?

还有个办法是买进后股票池就不更新了,这样监控的品种就不会变。但这个办法我目前还没有搞定,能否请老师帮忙想想办法。


--  作者:FireScript
--  发布时间:2017/11/29 10:59:51
--  

你看下tsell的参数说明啊。 你把\'STRNCMP(STKLABEL,\'600\',3 )=0\' 放在哪个位置根本没有任何依据的。这个函数第一个参数就是条件判断的参数。

贴下你当前代码里写的平仓语句,我检查下。

 

你股票池是设置一直保持某个频率在选股?只有这样才会一直更新股票池里面的选股结果的。


--  作者:mhw307
--  发布时间:2017/11/29 11:54:52
--  
B1:=STKINDIEX(\'SZ399102\',\'斜率股票池.买入条件\',0,3,0,100);

B2:=STKINDIEX(\'SZ399102\',\'斜率股票池.卖出条件\',0,3,0,100);

开多:tBUY(B1,100,MKT);          //开多信号
平多:tsell(STRNCMP(STKLABEL,\'300\',3 )=0 and B2,0,MKT);     

那我明白了,这样写是要求监控品种不能变化的,否则只能卖出监控品种和我持仓中都有的股票。

--  作者:mhw307
--  发布时间:2017/11/29 11:55:33
--  
对,我股票池是设置一直执行,间隔1天,86400秒
--  作者:FireScript
--  发布时间:2017/11/29 13:19:37
--  

你实际运行是出现什么情况,不是600开头的也平掉了还是怎么样的。 你代码里写的是“300”开头么。


--  作者:mhw307
--  发布时间:2017/11/29 13:27:53
--  
300、600是因为我选4个市场,每个市场都是一样跟随大盘的策略.
实际运行中 ,比如:
我前天根据大盘买股票池选出的10个股票,由于股票池是每天变化的,昨天收盘股票池又选了一遍,其中只有6个股票和前天的相同,4个换掉了,今天出卖点时系统自动帮我卖了6个,4个没卖掉。

--  作者:FireScript
--  发布时间:2017/11/29 13:39:44
--  
你的股票池是不是设置转移前清空状态池了啊。也就是每次选了新的,旧的状态池就清空了?因为你后台监控的是股票池的选股结果,股票A在你的账号下,但是不在你的股票池里面。那就不能平仓了。