mujijin每日检测
来源:互联网 发布:youxi域名 编辑:程序博客网 时间:2024/06/06 17:12
%% 每日监测数据 日期范围是20151231-20150805
%本程序主要是针对于一个母基金进行运算的,首先一个母基金包含了多个子基金,子基金中包含了
%通过0000100001 在产品表中找到隶属于他的产品,然后使用这三个数值来进行运算
%select productCode,productName,parentProductCode,accountType from product WHERE parentProductCode='0000100001'
%债券杠杆率 暂时不用。
%% 1
Fcode = '0000100001';%子基金名称
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select productCode,productName,parentProductCode,accountType from product WHERE parentProductCode=0000100001'];
%command ='select productCode,productName,parentProductCode,accountType from product WHERE parentProductCode=Fcode';
cursor = exec(conn,command);
result = fetch(cursor);
Sdata = result.Data; %已经将数据正确的读入到表中
Titles = {'子基金产品代码','子基金产品名称','父亲结点','accountType'};
Database.Titles = Titles;
Database.Data = Sdata;
%save('account04.mat','-struct','Database');%保存数据格式
close(cursor);
close(conn);
%% 2计算股票产品 {'000010000100002'} {'优势1号'} {'0000100001'} {'股票'}
[m1,n1]=size(Sdata);
pcode = Sdata{2,1};
if strcmp(Sdata(2,4),'股票')==1
fprintf('股票');
stockCode = pcode;
end
%% 3计算期货产品 {'000010000100001'} {'优势一号'} {'0000100001'} {'期货'}
pcode = Sdata{1,1};
if strcmp(Sdata(2,4),'期货')==1
fprintf('期货');
futrueCode = pcode;
end
%% 4先求子基金,然后要子基金合并,首先从account表中拉取需要的数据,然后在positions_history中拉取数据。
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingday,netvalue,equity,avaiableMoney,margin from account WHERE productCode = 0000100001 and tradingday >= 20160805 ORDER BY tradingDay'];
cursor = exec(conn,command);
result = fetch(cursor);
DataAcc = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','净值','总权益','avaiableMoney','期货保证金'};
Database.Titles = Titles;
Database.Data = DataAcc;
%save('account04.mat','-struct','Database');%保存数据格式
close(cursor);
close(conn);
%load('account04.mat')
%当日盈亏是就算是收益率序列,用净值求得
%% 5 stockCode 000010000100002 股票权益','账户现金
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingday,equity,avaiableMoney from account WHERE productCode = 000010000100002 and tradingday >= 20160805 ORDER BY tradingDay'];
cursor = exec(conn,command);
result = fetch(cursor);
stockData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','股票权益','账户现金'};
Database.Titles = Titles;
Database.Data = stockData;
close(cursor);
close(conn);
%% 6 futrueCode 000010000100001 期货权益 期货结算准备金
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingday,equity,avaiableMoney from account WHERE productCode = 000010000100001 and tradingday >= 20160805 ORDER BY tradingDay'];
cursor = exec(conn,command);
result = fetch(cursor);
futrueData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','期货权益','期货结算准备金'};
Database.Titles = Titles;
Database.Data = futrueData;
close(cursor);
close(conn);
%% 7 进入position_history 求得股票市值,股票市值是由某日的全部持有股票累加而得。
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingDay,direction,productCode,productName,instrumentCode,marketValue from positions_history WHERE productCode = 000010000100002 and tradingday >= 20160805 ORDER BY tradingDay'];
cursor = exec(conn,command);
result = fetch(cursor);
marketValueData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','操作','子基金代码','子基金产品名','股票代码','单只股票市值'};
Database.Titles = Titles;
Database.Data = marketValueData;
close(cursor);
close(conn);
%将marketValueData 中每一个同日期下的数据进行相加,并构建新表,日期,子基金代码,子基金产品名,总股票市值累加
[m2,n2]=size(marketValueData);
pp01=cell2mat(marketValueData(:,1));
pp02=unique(pp01);
[m3,n3]=size(pp02);
tt=0;
for j=1:m3
for i=1:m2
bb =pp02(j);
aa =marketValueData{i,1};
if bb==aa
tt = tt+marketValueData{i,6};
end
end
marketData{j,1}=pp02(j,1);
marketData{j,2}=marketValueData{1,3};
marketData{j,3}=marketValueData{1,4};
marketData{j,4}=tt;
tt=0;
end
%% 8 股票仓位 = 股票市值/股票权益 由5 7 两步求得 stockData marketData
%[m10,n10]=size(stockData);
%[m11,n11]=size(marketData);
%kmin = min(m10,m11);
%for i=1:kmin
%aa=stockData{i,1};
%ab=marketData{i,1};
%if aa==ab
%StockPositions(i,1)=stockData(i,1);
%StockPositions(i,2)=marketData(i,4)/stockData(i,2);
%end
%StockPositions(i,1)
%end
%% 9 期货仓位 = (股指期货+商品)/总权值 4 6 两步已经求得 , 期货保证金(margin)accont下求得
[m12,n12]=size(DataAcc);
[m13,n13]=size(futrueData);
kmin = min(m12,m13);
for i=1:kmin
aa=DataAcc{i,1};
ab=futrueData{i,1};
if strcmp(aa,ab)==1
%fprintf('有匹配的')
futurepos(i,1)=futrueData(i,1);
futurepos{i,2}=futrueData{i,2}/DataAcc{i,3};
elseif strcmp(aa,ab)==0
fprintf('不匹配9');
end
end
%futurepos 期货仓位
%% 10 股指期货多头市值 多开 买入 必须 IC IH IF
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingDay,direction,productCode,instrumentCode,marketValue from positions_history WHERE productCode = 000010000100001 and tradingday >= 20160805 ORDER BY tradingDay' ];
cursor = exec(conn,command);
result = fetch(cursor);
futureValueData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','操作','子基金代码','子基金产品名','股票代码','单只股票市值'};
Database.Titles = Titles;
Database.Data = futureValueData;
close(cursor);
close(conn);
%将marketValueData 中每一个同日期下的数据进行相加,并构建新表,日期,子基金代码,子基金产品名,总股票市值累加
[m4,n4]=size(futureValueData);
pp03=cell2mat(futureValueData(:,1));
pp04=unique(pp03);
[m5,n5]=size(pp04);
dd=0; %多开和买入
for j=1:m5
for i=1:m4
bb =pp04(j);
aa =futureValueData{i,1};
if bb==aa
dk=futureValueData{i,2};
if strcmp(dk,'多开')||strcmp(dk,'买入')
%判断是否是股指
strarray= futureValueData{i,4};
str ={'IC','IH','IF'};
%SSt= strmatch(str(2), strarray);
yes=0;
for i=1:3
SSt= strmatch(str(i), strarray);
if SSt==1
yes=1;
end
end
if yes==1 %是股指期货
dd = dd+futureValueData{i,5};
end
end
end
end
marketData01{j,1}=pp04(j,1);
marketData01{j,2}=futureValueData{1,3};
marketData01{j,3}=futureValueData{1,4};
marketData01{j,4}=dd;
dd=0;
end
%% 11 股指期货空头市值 空开 卖出 必须 IC IH IF
[m6,n6]=size(futureValueData);
pp06=cell2mat(futureValueData(:,1));
pp08=unique(pp06);
[m8,n5]=size(pp08);
kk=0; %多开和买入
for j=1:m8
for i=1:m6
bb =pp08(j);
aa =futureValueData{i,1};
if bb==aa
dk=futureValueData{i,2};
if strcmp(dk,'空开')||strcmp(dk,'卖出')
%判断是否是股指
strarray= futureValueData{i,4};
str ={'IC','IH','IF'};
%SSt= strmatch(str(2), strarray);
for i=1:3
SSt= strmatch(str(i), strarray);
if SSt==1
yes=1
end
end
if yes==1 %是股指期货
kk = kk+futureValueData{i,5};
end
end
end
end
marketData02{j,1}=pp08(j,1);
marketData02{j,2}=futureValueData{1,3};
marketData02{j,3}=futureValueData{1,4};
marketData02{j,4}=kk;
kk=0;
end
%% 12 股指期货净市值 = 股指期货多头-股指期货空头 可能为负值 对冲市值就是, 空头市值
%marketData01 marketData02
[m14,n14]=size(marketData01);
[m16,n16]=size(marketData02);
kmin = min(m14,m16);
for i=1:kmin
aa=marketData01{i,1};
ab=marketData02{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的12')
futurejing(i,1)=marketData01(i,1);
futurejing{i,2}=marketData01{i,4}-marketData02{i,4};
elseif strcmp(aa,ab)==0
fprintf('不匹配12');
end
end
%% 13 商品期货多头市值 排除股指 开头不能是 IC IH IF
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingDay,direction,productCode,instrumentCode,marketValue from positions_history WHERE productCode = 000010000100001 and tradingday >= 20160805 ORDER BY tradingDay' ];
cursor = exec(conn,command);
result = fetch(cursor);
futureValueData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','操作','子基金代码','子基金产品名','股票代码','单只股票市值'};
Database.Titles = Titles;
Database.Data = futureValueData;
close(cursor);
close(conn);
%将marketValueData 中每一个同日期下的数据进行相加,并构建新表,日期,子基金代码,子基金产品名,总股票市值累加
[m4,n4]=size(futureValueData);
pp03=cell2mat(futureValueData(:,1));
pp04=unique(pp03);
[m5,n5]=size(pp04);
dd=0; %多开和买入
for j=1:m5
for i=1:m4
bb =pp04(j);
aa =futureValueData{i,1};
if bb==aa
dk=futureValueData{i,2};
if strcmp(dk,'多开')||strcmp(dk,'买入')
%判断是否是股指
strarray= futureValueData{i,4};
str ={'IC','IH','IF'};
%SSt= strmatch(str(2), strarray);
yes=0;
for i=1:3
SSt= strmatch(str(i), strarray);
if SSt==1
yes=1
end
end
if yes==0 %不是股指期货
dd = dd+futureValueData{i,5};
end
end
end
end
marketData03{j,1}=pp04(j,1);
marketData03{j,2}=futureValueData{1,3};
marketData03{j,3}=futureValueData{1,4};
marketData03{j,4}=dd;
dd=0;
end
%% 14 商品期货空头市值 排除股指 开头不能是 IC IH IF
conn=database('report','uxmc','uxmc-123', 'com.mysql.jdbc.Driver','jdbc:mysql://report001.mysql.rds.aliyuncs.com/report');
ping(conn);
command =['select tradingDay,direction,productCode,instrumentCode,marketValue from positions_history WHERE productCode = 000010000100001 and tradingday >= 20160805 ORDER BY tradingDay' ];
cursor = exec(conn,command);
result = fetch(cursor);
futureValueData = result.Data; %已经将数据正确的读入到表中
Titles = {'日期','操作','子基金代码','子基金产品名','股票代码','单只股票市值'};
Database.Titles = Titles;
Database.Data = futureValueData;
close(cursor);
close(conn);
%将marketValueData 中每一个同日期下的数据进行相加,并构建新表,日期,子基金代码,子基金产品名,总股票市值累加
[m4,n4]=size(futureValueData);
pp03=cell2mat(futureValueData(:,1));
pp04=unique(pp03);
[m5,n5]=size(pp04);
dd=0; %多开和买入
for j=1:m5
for i=1:m4
bb =pp04(j);
aa =futureValueData{i,1};
if bb==aa
dk=futureValueData{i,2};
if strcmp(dk,'多开')||strcmp(dk,'买入')
%判断是否是股指
strarray= futureValueData{i,4};
str ={'IC','IH','IF'};
%SSt= strmatch(str(2), strarray);
yes=0;
for i=1:3
SSt= strmatch(str(i), strarray);
if SSt==1
yes=1
end
end
if yes==0 %不是股指期货
dd = dd+futureValueData{i,5};
end
end
end
end
marketData04{j,1}=pp04(j,1);
marketData04{j,2}=futureValueData{1,3};
marketData04{j,3}=futureValueData{1,4};
marketData04{j,4}=dd;
dd=0;
end
%% 15 商品非轧差市值合计 这个是商品多头市值+ 商品空头市值
[m103,n103]=size(marketData03);
[m104,n104]=size(marketData04);
kmin = min(m103,m104);
for i=1:kmin
aa=marketData03{i,1};
ab=marketData04{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的15')
shangpinfei(i,1)=marketData03(i,1);
shangpinfei{i,2}=marketData03{i,4}+marketData04{i,4};
elseif strcmp(aa,ab)==0
fprintf('不匹配15');
end
end
%% 16 商品总市值/总权益
[m105,n105]=size(shangpinfei);
[m106,n106]=size(DataAcc);
kmin = min(m105,m106);
for i=1:kmin
aa=shangpinfei{i,1};
ab=DataAcc{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的16')
feibizhi(i,1)=DataAcc(i,1);
feibizhi{i,2}=shangpinfei{i,2}/DataAcc{i,3};
elseif strcmp(aa,ab)==0
fprintf('不匹配16');
end
end
%% 17 净仓位市值 = 股票 +股指期货(其中股指期货= 股票多头- 股票空头。。。可能为负值)
%stockData futurejing
[m117,n117]=size(stockData);
[m127,n127]=size(futurejing);
kmin = min(m117,m127);
for i=1:kmin
aa=stockData{i,1};
ab=futurejing{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的16')
jingpos(i,1)=stockData(i,1);
jingpos{i,2}=stockData{i,2}+futurejing{i,2};
elseif strcmp(aa,ab)==0
fprintf('不匹配16');
end
end
%% 18 股票(股指)净头寸市值/股票市值比 净市值仓位的比较,股指多 + 股指空/股票市值 (子基金中,为什么这么算呢,因为要通过这个了解他策略的好坏)
[m117,n117]=size(stockData);
[m127,n127]=size(futurejing);
kmin = min(m117,m127);
for i=1:kmin
aa=stockData{i,1};
ab=futurejing{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的16')
jingpos18(i,1)=stockData(i,1);
jingpos18{i,2}=futurejing{i,2}/stockData{i,2};
elseif strcmp(aa,ab)==0
fprintf('不匹配16');
end
end
%% 19 股票净头寸/总权益 股票净头寸= 股票- 股指期货
[m117,n117]=size(stockData);
[m127,n127]=size(futurejing);
kmin = min(m117,m127);
for i=1:kmin
aa=stockData{i,1};
ab=futurejing{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的16')
jingpos19(i,1)=stockData(i,1);
jingpos19{i,2}=stockData{i,2}-futurejing{i,2};
elseif strcmp(aa,ab)==0
fprintf('不匹配16');
end
end
%% 20 股票市值/总权益
[m105,n105]=size(stockData);
[m106,n106]=size(DataAcc);
kmin = min(m105,m106);
for i=1:kmin
aa=stockData{i,1};
ab=DataAcc{i,1};
if strcmp(aa,ab)==1
fprintf('有匹配的16')
stockbizhi(i,1)=DataAcc(i,1);
stockbizhi{i,2}=stockData{i,2}/DataAcc{i,3};
elseif strcmp(aa,ab)==0
fprintf('不匹配16');
end
end
%% 21 累计收益率 当前 - 初始/当前
%% 当前没有解决的问题,
0 0
- mujijin每日检测
- 每日掌握一个Linux命令 之 检测系统资源化 vmstat
- 每日
- 每日一题(22)——区间重合检测(二)(线段树)
- 每日一题(21)——区间重合检测(一)(普通区间合并&并查集)
- [每日]每日练习
- 每日人民币汇率
- 每日单词
- 每日一语
- 每日见闻
- 每日規劃力
- 每日培训
- 每日构建
- 每日英语
- 每日一得
- 每日构建
- 每日心得体会 .
- 每日心得
- 2014年首届CCF软件能力认证试题第一题 .
- sql server中常用函数集锦(整理)
- MQTT:使用Mosquitto作为broker,SSL加密,附Java Demo
- java代码优化总结
- php爬虫教程(三)规则分析
- mujijin每日检测
- 数据库大型应用解决方案总结
- 阿里云单邮件发送 - 整理说明文档
- MySQL性能优化总结
- hibernate 出现Caused by: java.sql.SQLException: Column 'id' not found.异常
- leetcode:数学:Rectangle Area(223)
- 最全web前端资料整理
- windows10 vs2015编译 带nginx-rtmp-module 模块的32位nginx
- PHP命名空间(Namespace)的使用详解副本