以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 -- 不好意思,再问一下老师。 刚才触发卖了,但是没按照设想走, 是不是要把公式改成这样? 还有请教一下老师,我的思路是在根据大盘买卖点,进行股票交易。 做法是在后台监控股票池,由于每天的监控品种会由股票池定时更新,造成卖的时候监控的品种会和持仓有不同。 我的解决方案是股票池每天更新不管他,卖的时候把所有上证的持仓都清掉。这种情况下是不是不能在后台设置监控品种,而是要在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在你的账号下,但是不在你的股票池里面。那就不能平仓了。 |