金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1631|回复: 2

股票策略中如何限制每天开仓数量

[复制链接]

10

主题

89

帖子

89

积分

等级: 免费版

注册:
2023-9-25
曾用名:
发表于 2023-10-8 09:16 | 显示全部楼层 |阅读模式
在不管老仓情况下,如何限定每天买入股票数量,比如每天不超过5只?

还有种情况,已经买入了三只,总持仓不超过5只

这两种情况分别怎么写语句判断呢?
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-8 09:39 | 显示全部楼层
本帖最后由 技术009 于 2023-10-8 09:41 编辑

第二种情况直接判断 THOLDCOUNT 的返回值就行了,但是如果不同品种同时触发了信号,因为程序运行速度是很快的,根本无法等到你前面成交数据更新,即THOLDCOUNT还没有及时更新,这时候是可能会导致多下单的。这种情况不好规避。  


限制每天买入的数量,这个只能挨个品种判断是否有今仓了。做一次累计了。

TH:=THOLDCOUNT('');

j:=0;
FOR I=1 TO TH do
BEGIN
HLABEL:= THOLDINDEXLABEL(I,'');
今仓:=TBUYHOLDINGEX('',HLABEL,2)-TBUYHOLDINGEX('',HLABEL,0);
if 今仓<>0 then j:=j+1;

end   

现在判断j值的状况就行了。但是也存在前面说的那个问题,同时一瞬间出多个信号情况下,是无法保证能控制住的。



金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-8 10:15 | 显示全部楼层
加一个锁试下,限制不让同时在一次轮训中触发信号:

th:=tholdcount('');

j:=0;
for i=1 to th do
begin
hlabel:= tholdindexlabel(i,'');
今仓:=tbuyholdingex('',hlabel,2)-tbuyholdingex('',hlabel,0);
if 今仓<>0 then j:=j+1;

end   


n:=5;//开仓数量限制

lock:extgbstring('lock');
if  j<n and 开仓条件 and strcmp(lock,'')=0   then
begin
tbuy(1,1,mkt);
extgbstringset('lock',stklabel);               
end

//上一笔开仓成交了 则解除锁
if tisprvremain(1)=0 and lock=stklabel  then extgbstringset('lock','');       
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-1 17:15 , Processed in 0.163118 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表