金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 693|回复: 9

请教后台程序条件设置

[复制链接]

65

主题

305

帖子

305

积分

Rank: 4

等级: 专业版

注册:
2021-7-7
曾用名:
发表于 2024-4-17 13:48 | 显示全部楼层 |阅读模式
请教后台程序条件设置,监控随机个股100只,

满足条件,
A:最近100个交易日,统计个股大于昨日收盘价*1.05,且满足个股小于昨日收盘价*1.15的交易日,其所对应日期的交易额,的平均数。
满足当今天成交额大于A条件成交额*5,触发市价买入50万元。

举例:如昨收股价100元,满足>100*1.05=105元,且<100*1.15元,收盘价满足在(105元-115元)的交易日,最近100个交易日内,满足前置条件的假设分别是2月1日,3月2日,4月3日,5月4日,6月5日,
找到2月1日,3月2日,4月3日,5月4日,6月5日对应的几天成交额分别是2.2亿元,2.4亿元,2.6亿元,2.8亿元,3.0亿元,
这5天对应成交额的平均成交额是2.6亿元。

当今天成交额>2.6*5时候,触发市价买入50万元。

专业版后台程序设置,应该如何编写,请教谢谢
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-4-17 14:45 | 显示全部楼层
[PEL] 复制代码
input:rg(100,1,400),zj(50,1,1000,0.01);//rg是统计范围,zj是资金,单位是万
con:c>1.03*ref(c,1) and c<1.15*ref(c,1);

v1:if(con,amount,0);
con_count:sum(con,rg);

//满足成交额条件的 成交额均值
amt_av:sum(v1,rg)/con_count;

ss:intpart(zj*10000/c/100);//按照资金计算手数,向下取值 实际资金占用小于等于zj (单位万)


if tbuyholdingex('','',2)=0  and  amount>amt_av*5 then tbuy(1,ss,mkt);
回复

使用道具 举报

65

主题

305

帖子

305

积分

Rank: 4

等级: 专业版

注册:
2021-7-7
曾用名:
 楼主| 发表于 2024-4-17 14:54 | 显示全部楼层
资深技术05 发表于 2024-4-17 14:45
[mw_shl_code=pel,true]input:rg(100,1,400),zj(50,1,1000,0.01);//rg是统计范围,zj是资金,单位是万
con ...

if tbuyholdingex('','',2)=0

请教【指定账户品种买入持仓量=0】的意思是?
回复

使用道具 举报

65

主题

305

帖子

305

积分

Rank: 4

等级: 专业版

注册:
2021-7-7
曾用名:
 楼主| 发表于 2024-4-17 14:58 | 显示全部楼层
资深技术05 发表于 2024-4-17 14:45
[mw_shl_code=pel,true]input:rg(100,1,400),zj(50,1,1000,0.01);//rg是统计范围,zj是资金,单位是万
con ...

input:rg(100,1,400),

100,1,400
三个数值代表的意义分别是?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-4-17 14:58 | 显示全部楼层
意思是空仓时候买入。
然后这里改下  我测试写的是1.03  
con:c>1.05*ref(c,1) and c<1.15*ref(c,1);
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-4-17 14:59 | 显示全部楼层
“input:rg(100,1,400),

100,1,400
三个数值代表的意义分别是?”

参数范围,默认100,最小1,最大400
回复

使用道具 举报

65

主题

305

帖子

305

积分

Rank: 4

等级: 专业版

注册:
2021-7-7
曾用名:
 楼主| 发表于 2024-4-17 15:06 | 显示全部楼层
资深技术05 发表于 2024-4-17 14:59
“input:rg(100,1,400),

100,1,400

如果往前跑了100个交易日,发现没有满足con条件的交易日,会不会返回一个0的错误值?
回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-4-17 15:08 | 显示全部楼层
if tbuyholdingex('','',2)=0  and  amount>amt_av*5 and amt_av<>0 then tbuy(1,ss,mkt);

补充一个判断就行了。
回复

使用道具 举报

65

主题

305

帖子

305

积分

Rank: 4

等级: 专业版

注册:
2021-7-7
曾用名:
 楼主| 发表于 2024-4-17 21:16 | 显示全部楼层
资深技术05 发表于 2024-4-17 15:08
if tbuyholdingex('','',2)=0  and  amount>amt_av*5 and amt_av0 then tbuy(1,ss,mkt);

补充一个判断就 ...

如果往前跑了100个交易日,发现没有满足con条件的交易日

能不能设置,如果往前跑了100个交易日,没有发现满足
再往前跑100个交易日,如此循环,直至到满足的出现?

如此循环会不会严重影响后台的运行速度

回复

使用道具 举报

2

主题

4429

帖子

4429

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-24
曾用名:
发表于 2024-4-18 09:29 | 显示全部楼层
input:rg(100,1,400),zj(50,1,1000,0.01);//rg是统计范围,zj是资金,单位是万
con:c>1.03*ref(c,1) and c<1.15*ref(c,1);

v1:if(con,amount,0);
con_count:sum(con,rg);

//满足成交额条件的 成交额均值
amt_av:sum(v1,rg)/con_count;
ss:intpart(zj*10000/c/100);//按照资金计算手数,向下取值 实际资金占用小于等于zj (单位万)

i:floor(datacount/100);//当前数据有多少组,100个数据一组.
last_amt_av:0;
if amt_av=0 then
begin

for j=1 to i-1 do
begin
v1:=amt_av[barpos-j*100];

if v1>0 then
begin
last_amt_av:=v1;       
break;
end  

end                 
                 
end



if tbuyholdingex('','',2)=0  and  amount>max(last_amt_av,amt_av)*5 and max(last_amt_av,amt_av)<>0 then tbuy(1,ss,mkt);

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 13:23 , Processed in 0.210982 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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