组合评测
来源:互联网 发布:苹果上mac是什么意思 编辑:程序博客网 时间:2024/04/28 09:26
%%清空数据 第一份输出数据
clear;clc
tic
format long
%% 数据拉取,全部都拉进来就可以了,到时候有交互运算
[data_fund,textdata_fund,raw_fund]=xlsread('入选子基金.xlsx','子基金');
[data_all,textdata_all,raw]=xlsread('入选子基金.xlsx','子基金汇总');
[dataindex,textindex]=xlsread('基金指数编制.xlsx','指数汇总');
%Rate_pfund = price2ret(data_all(:,4)) 这个数据同下面的相近但是不一样
day = 5;
year = 250;
N = 52 %周总数
%% 读入第四列数据
for ik = 1:9
%ik = 1
TotalData=data_all(:,ik);
TR = tick2ret(TotalData);
Data = TotalData;
[row,col]=find(isnan(Data));
if row > 0
Data = Data(max(row)+1:end,1);
end
[Time,nn]=size(Data);
Data = Data./Data(1,:); %标准化
%%
%初始值设计
MAR = 0.03;%0.1 % 最低可接受回报MAR需自行选择
noriskrate = 0.03; %无风险收益率
%%
%累计净值
sumReturns = Data(end,:);
%%
%年化收益 52周
N=52;
annuReturns = Data(end,:).^(N/Time)-1;
%%
%波动率
% Volatility = (annuReturns-ones(1,n)*noriskrate)./SharpeRatio;
expReturns = zeros(Time,nn);
for i=2:Time
expReturns(i,:) = Data(i,:)./Data(i-1,:)-1;
end
Volatility = sqrt(N)*std(expReturns);
%%
%最大回撤 maxdrawdown
maxReturns = zeros(Time,nn);
for i=1:Time
maxReturns(i,:) = max(Data(1:i,:),[],1);
end
maxDrawdown = -max(1-Data./maxReturns);
%%
%夏普比率
% SharpeRatio = sharpe(Asset,0.03);woshuo
SharpeRatio = (annuReturns-ones(1,nn)*noriskrate)./Volatility;
%%
%卡马尔比率(年化/最大回撤)
kamaRatio = -annuReturns./maxDrawdown;
%%
%Sortino比率
MAR = MAR/N; %化为日(周,月)收益
Sortino = (mean(expReturns(2:end,:)) - MAR) ./ sqrt(lpm(expReturns(2:end,:), MAR, 2));
%%
%Stutzer指数
%对于一定范围的theta值,target单调递增或只有一个拐点
%theta预设穷举搜索范围为[-15,0];
theta = -15:0.01:0;
n_theta = length(theta);
temp_Ip = zeros(n_theta,nn);
% riskfree = (1+noriskrate)^(1/N)-1;
riskfree = noriskrate/N;
for i=1:n_theta
temp_Ip(i,:) = -log(sum(exp(theta(i)*(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)))/(Time-1));
end
Ip = max(temp_Ip);
Stutzer = sign(mean(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)).*sqrt(2*Ip);
%%
%获利天(周,月)数
number_profit = sum(expReturns>0);
%获利的平均收益
mean_profit = sum((expReturns>0).*expReturns)./number_profit;
%受损天(周,月)数
number_loss = sum(expReturns<0);
%受损的平均受损
mean_loss = sum((expReturns<0).*expReturns)./number_loss;
% 最长的连续获利天(周,月)数 during_profit
% 最长的连续受损天(周,月)数 during_loss
temp_profit = zeros(1,nn);
temp_loss = zeros(1,nn);
during_profit = zeros(1,nn);
during_loss = zeros(1,nn);
for i = 1:Time
for j = 1:nn
if expReturns(i,j)>0
temp_profit(j) = temp_profit(j)+1;
temp_loss(j) = 0;
elseif expReturns(i,j)<0
temp_loss(j) = temp_loss(j)+1;
temp_profit(j) = 0;
end
if temp_loss(j)>during_loss(j)
during_loss(j)=temp_loss(j);
end
if temp_profit(j)>during_profit(j)
during_profit(j)=temp_profit(j);
end
end
end
%%
%最大单日(周,月)收益
max_profit = max(expReturns);
%最大单日(周,月)受损
max_loss = min(expReturns);
%胜率
Hit = sum(expReturns>0)/(Time-1);
%收益盈亏比
GPRe=-mean_profit./mean_loss;
%dataret = [];
ip= ik+2;
dataret{4,1}='累计净值';
dataret{5,1}='年华收益';
dataret{6,1}='年华波动';
dataret{7,1}='最大回撤';
dataret{8,1}='夏普比率';
dataret{9,1}='卡玛比率';
dataret{10,1}='获利周数';
dataret{11,1}='获利周平均收益';
dataret{12,1}='受损周数';
dataret{13,1}='受损周平均收益';
dataret{14,1}='最大连续收益';
dataret{15,1}='最大连续受损';
dataret{16,1}='单周最大收益';
dataret{17,1}='单周最大受损';
dataret{18,1}='胜率';
dataret{19,1}='盈亏收益比';
%数据输出,
dataret{4,ip}=sumReturns;
dataret{5,ip}=annuReturns;
dataret{6,ip}=Volatility;
dataret{7,ip}=maxDrawdown;
dataret{8,ip}=SharpeRatio;
dataret{9,ip}=kamaRatio;
dataret{10,ip}=number_profit;
dataret{11,ip}=mean_profit;
dataret{12,ip}=number_loss;
dataret{13,ip}=mean_loss;
dataret{14,ip}=during_profit;
dataret{15,ip}=during_loss;
dataret{16,ip}=max_profit;
dataret{17,ip}=max_loss;
dataret{18,ip}=Hit;
dataret{19,ip}=GPRe;
end
%% 读入全部列数据,逐个行读取,每行9个元素,如果有4个是NAN的则,则5个数据,5个数据每个都乘以1/5,保证横截面是1
%建立一个列数组
TotalData=data_all(:,1);
TR = tick2ret(TotalData);
%整体转化为收益率
TRdata = tick2ret(data_all);
ip =1;%代表第一行
for ip=1:65
wnum = isnan(TRdata(ip,:));%第一行权值%将为0(有信息)位置的信息乘以权重定数 1/5,1/6 等
wk=0;
kk=length(wnum);
for i = 1:kk
if wnum(1,i) == 0
wk=wk+1;
end
end
fprintf('%d,%d\n',ip,wk);
TR(ip,1:1)=0;
kk=length(wnum);
for j = 1:kk
if wnum(1,j) == 0
TR(ip)=TR(ip)+ TRdata(ip,j:j)/wk;
end
end
end
%其中TR是组合收益率,TDATA是累计净值
TDATA= ret2tick(TR);
Datazh =TDATA;
xlswrite('C:\Users\liangtianxin\Desktop\liangtianxin\finished\zhdata.xls', Datazh, 'Sheet1');
system('taskkill /F /IM EXCEL.EXE');
[Time,nn]=size(Datazh);
Datazh = Datazh./Datazh(1,:); %标准化
%%
%初始值设计
MAR = 0.03;%0.1 % 最低可接受回报MAR需自行选择
noriskrate = 0.03; %无风险收益率
%%
%累计净值
sumReturns = Datazh(end,:);
%%
%年化收益 52周
N=52;
annuReturns = Datazh(end,:).^(N/Time)-1;
%%
%波动率
% Volatility = (annuReturns-ones(1,n)*noriskrate)./SharpeRatio;
expReturns = zeros(Time,nn);
for i=2:Time
expReturns(i,:) = Datazh(i,:)./Datazh(i-1,:)-1;
end
Volatility = sqrt(N)*std(expReturns);
%%
%最大回撤 maxdrawdown
maxReturns = zeros(Time,nn);
for i=1:Time
maxReturns(i,:) = max(Datazh(1:i,:),[],1);
end
maxDrawdown = -max(1-Datazh./maxReturns);
%%
%夏普比率
% SharpeRatio = sharpe(Asset,0.03);woshuo
SharpeRatio = (annuReturns-ones(1,nn)*noriskrate)./Volatility;
%%
%卡马尔比率(年化/最大回撤)
kamaRatio = -annuReturns./maxDrawdown;
%%
%Sortino比率
MAR = MAR/N; %化为日(周,月)收益
Sortino = (mean(expReturns(2:end,:)) - MAR) ./ sqrt(lpm(expReturns(2:end,:), MAR, 2));
%%
%Stutzer指数
%对于一定范围的theta值,target单调递增或只有一个拐点
%theta预设穷举搜索范围为[-15,0];
theta = -15:0.01:0;
n_theta = length(theta);
temp_Ip = zeros(n_theta,nn);
% riskfree = (1+noriskrate)^(1/N)-1;
riskfree = noriskrate/N;
for i=1:n_theta
temp_Ip(i,:) = -log(sum(exp(theta(i)*(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)))/(Time-1));
end
Ip = max(temp_Ip);
Stutzer = sign(mean(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)).*sqrt(2*Ip);
%%
%获利天(周,月)数
number_profit = sum(expReturns>0);
%获利的平均收益
mean_profit = sum((expReturns>0).*expReturns)./number_profit;
%受损天(周,月)数
number_loss = sum(expReturns<0);
%受损的平均受损
mean_loss = sum((expReturns<0).*expReturns)./number_loss;
% 最长的连续获利天(周,月)数 during_profit
% 最长的连续受损天(周,月)数 during_loss
temp_profit = zeros(1,nn);
temp_loss = zeros(1,nn);
during_profit = zeros(1,nn);
during_loss = zeros(1,nn);
for i = 1:Time
for j = 1:nn
if expReturns(i,j)>0
temp_profit(j) = temp_profit(j)+1;
temp_loss(j) = 0;
elseif expReturns(i,j)<0
temp_loss(j) = temp_loss(j)+1;
temp_profit(j) = 0;
end
if temp_loss(j)>during_loss(j)
during_loss(j)=temp_loss(j);
end
if temp_profit(j)>during_profit(j)
during_profit(j)=temp_profit(j);
end
end
end
%%
%最大单日(周,月)收益
max_profit = max(expReturns);
%最大单日(周,月)受损
max_loss = min(expReturns);
%胜率
Hit = sum(expReturns>0)/(Time-1);
%收益盈亏比
GPRe=-mean_profit./mean_loss;
%dataret = [];
iq= 2;
dataret{3,2}='组合';
dataret{3,3}='喜岳';
dataret{3,4}='长丰';
dataret{3,5}='淘利';
dataret{3,6}='盛冠达';
dataret{3,7}='因诺';
dataret{3,8}='青骓';
dataret{3,9}='雁丰';
dataret{3,10}='黑翼';
dataret{3,11}='量道';
%dataret{3,1}='累计净值';
%dataret{4,1}='年华收益';
%dataret{5,1}='年华波动';
%dataret{6,1}='最大回撤';
%dataret{7,1}='夏普比率';
%dataret{8,1}='卡玛比率';
%dataret{9,1}='获利周数';
%dataret{10,1}='获利周平均收益';
%dataret{11,1}='受损周数';
%dataret{12,1}='受损周平均收益';
%dataret{13,1}='最大连续收益';
%dataret{14,1}='最大连续受损';
%dataret{15,1}='单周最大收益';
%dataret{16,1}='单周最大受损';
%dataret{17,1}='胜率';
%dataret{18,1}='盈亏收益比';
dataret{4,iq}=sumReturns;
dataret{5,iq}=annuReturns;
dataret{6,iq}=Volatility;
dataret{7,iq}=maxDrawdown;
dataret{8,iq}=SharpeRatio;
dataret{9,iq}=kamaRatio;
dataret{10,iq}=number_profit;
dataret{11,iq}=mean_profit;
dataret{12,iq}=number_loss;
dataret{13,iq}=mean_loss;
dataret{14,iq}=during_profit;
dataret{15,iq}=during_loss;
dataret{16,iq}=max_profit;
dataret{17,iq}=max_loss;
dataret{18,iq}=Hit;
dataret{19,iq}=GPRe;
xlswrite('C:\Users\liangtianxin\Desktop\liangtianxin\finished\fund_zh.xls', dataret, 'Sheet1');
system('taskkill /F /IM EXCEL.EXE');
clear;clc
tic
format long
%% 数据拉取,全部都拉进来就可以了,到时候有交互运算
[data_fund,textdata_fund,raw_fund]=xlsread('入选子基金.xlsx','子基金');
[data_all,textdata_all,raw]=xlsread('入选子基金.xlsx','子基金汇总');
[dataindex,textindex]=xlsread('基金指数编制.xlsx','指数汇总');
%Rate_pfund = price2ret(data_all(:,4)) 这个数据同下面的相近但是不一样
day = 5;
year = 250;
N = 52 %周总数
%% 读入第四列数据
for ik = 1:9
%ik = 1
TotalData=data_all(:,ik);
TR = tick2ret(TotalData);
Data = TotalData;
[row,col]=find(isnan(Data));
if row > 0
Data = Data(max(row)+1:end,1);
end
[Time,nn]=size(Data);
Data = Data./Data(1,:); %标准化
%%
%初始值设计
MAR = 0.03;%0.1 % 最低可接受回报MAR需自行选择
noriskrate = 0.03; %无风险收益率
%%
%累计净值
sumReturns = Data(end,:);
%%
%年化收益 52周
N=52;
annuReturns = Data(end,:).^(N/Time)-1;
%%
%波动率
% Volatility = (annuReturns-ones(1,n)*noriskrate)./SharpeRatio;
expReturns = zeros(Time,nn);
for i=2:Time
expReturns(i,:) = Data(i,:)./Data(i-1,:)-1;
end
Volatility = sqrt(N)*std(expReturns);
%%
%最大回撤 maxdrawdown
maxReturns = zeros(Time,nn);
for i=1:Time
maxReturns(i,:) = max(Data(1:i,:),[],1);
end
maxDrawdown = -max(1-Data./maxReturns);
%%
%夏普比率
% SharpeRatio = sharpe(Asset,0.03);woshuo
SharpeRatio = (annuReturns-ones(1,nn)*noriskrate)./Volatility;
%%
%卡马尔比率(年化/最大回撤)
kamaRatio = -annuReturns./maxDrawdown;
%%
%Sortino比率
MAR = MAR/N; %化为日(周,月)收益
Sortino = (mean(expReturns(2:end,:)) - MAR) ./ sqrt(lpm(expReturns(2:end,:), MAR, 2));
%%
%Stutzer指数
%对于一定范围的theta值,target单调递增或只有一个拐点
%theta预设穷举搜索范围为[-15,0];
theta = -15:0.01:0;
n_theta = length(theta);
temp_Ip = zeros(n_theta,nn);
% riskfree = (1+noriskrate)^(1/N)-1;
riskfree = noriskrate/N;
for i=1:n_theta
temp_Ip(i,:) = -log(sum(exp(theta(i)*(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)))/(Time-1));
end
Ip = max(temp_Ip);
Stutzer = sign(mean(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)).*sqrt(2*Ip);
%%
%获利天(周,月)数
number_profit = sum(expReturns>0);
%获利的平均收益
mean_profit = sum((expReturns>0).*expReturns)./number_profit;
%受损天(周,月)数
number_loss = sum(expReturns<0);
%受损的平均受损
mean_loss = sum((expReturns<0).*expReturns)./number_loss;
% 最长的连续获利天(周,月)数 during_profit
% 最长的连续受损天(周,月)数 during_loss
temp_profit = zeros(1,nn);
temp_loss = zeros(1,nn);
during_profit = zeros(1,nn);
during_loss = zeros(1,nn);
for i = 1:Time
for j = 1:nn
if expReturns(i,j)>0
temp_profit(j) = temp_profit(j)+1;
temp_loss(j) = 0;
elseif expReturns(i,j)<0
temp_loss(j) = temp_loss(j)+1;
temp_profit(j) = 0;
end
if temp_loss(j)>during_loss(j)
during_loss(j)=temp_loss(j);
end
if temp_profit(j)>during_profit(j)
during_profit(j)=temp_profit(j);
end
end
end
%%
%最大单日(周,月)收益
max_profit = max(expReturns);
%最大单日(周,月)受损
max_loss = min(expReturns);
%胜率
Hit = sum(expReturns>0)/(Time-1);
%收益盈亏比
GPRe=-mean_profit./mean_loss;
%dataret = [];
ip= ik+2;
dataret{4,1}='累计净值';
dataret{5,1}='年华收益';
dataret{6,1}='年华波动';
dataret{7,1}='最大回撤';
dataret{8,1}='夏普比率';
dataret{9,1}='卡玛比率';
dataret{10,1}='获利周数';
dataret{11,1}='获利周平均收益';
dataret{12,1}='受损周数';
dataret{13,1}='受损周平均收益';
dataret{14,1}='最大连续收益';
dataret{15,1}='最大连续受损';
dataret{16,1}='单周最大收益';
dataret{17,1}='单周最大受损';
dataret{18,1}='胜率';
dataret{19,1}='盈亏收益比';
%数据输出,
dataret{4,ip}=sumReturns;
dataret{5,ip}=annuReturns;
dataret{6,ip}=Volatility;
dataret{7,ip}=maxDrawdown;
dataret{8,ip}=SharpeRatio;
dataret{9,ip}=kamaRatio;
dataret{10,ip}=number_profit;
dataret{11,ip}=mean_profit;
dataret{12,ip}=number_loss;
dataret{13,ip}=mean_loss;
dataret{14,ip}=during_profit;
dataret{15,ip}=during_loss;
dataret{16,ip}=max_profit;
dataret{17,ip}=max_loss;
dataret{18,ip}=Hit;
dataret{19,ip}=GPRe;
end
%% 读入全部列数据,逐个行读取,每行9个元素,如果有4个是NAN的则,则5个数据,5个数据每个都乘以1/5,保证横截面是1
%建立一个列数组
TotalData=data_all(:,1);
TR = tick2ret(TotalData);
%整体转化为收益率
TRdata = tick2ret(data_all);
ip =1;%代表第一行
for ip=1:65
wnum = isnan(TRdata(ip,:));%第一行权值%将为0(有信息)位置的信息乘以权重定数 1/5,1/6 等
wk=0;
kk=length(wnum);
for i = 1:kk
if wnum(1,i) == 0
wk=wk+1;
end
end
fprintf('%d,%d\n',ip,wk);
TR(ip,1:1)=0;
kk=length(wnum);
for j = 1:kk
if wnum(1,j) == 0
TR(ip)=TR(ip)+ TRdata(ip,j:j)/wk;
end
end
end
%其中TR是组合收益率,TDATA是累计净值
TDATA= ret2tick(TR);
Datazh =TDATA;
xlswrite('C:\Users\liangtianxin\Desktop\liangtianxin\finished\zhdata.xls', Datazh, 'Sheet1');
system('taskkill /F /IM EXCEL.EXE');
[Time,nn]=size(Datazh);
Datazh = Datazh./Datazh(1,:); %标准化
%%
%初始值设计
MAR = 0.03;%0.1 % 最低可接受回报MAR需自行选择
noriskrate = 0.03; %无风险收益率
%%
%累计净值
sumReturns = Datazh(end,:);
%%
%年化收益 52周
N=52;
annuReturns = Datazh(end,:).^(N/Time)-1;
%%
%波动率
% Volatility = (annuReturns-ones(1,n)*noriskrate)./SharpeRatio;
expReturns = zeros(Time,nn);
for i=2:Time
expReturns(i,:) = Datazh(i,:)./Datazh(i-1,:)-1;
end
Volatility = sqrt(N)*std(expReturns);
%%
%最大回撤 maxdrawdown
maxReturns = zeros(Time,nn);
for i=1:Time
maxReturns(i,:) = max(Datazh(1:i,:),[],1);
end
maxDrawdown = -max(1-Datazh./maxReturns);
%%
%夏普比率
% SharpeRatio = sharpe(Asset,0.03);woshuo
SharpeRatio = (annuReturns-ones(1,nn)*noriskrate)./Volatility;
%%
%卡马尔比率(年化/最大回撤)
kamaRatio = -annuReturns./maxDrawdown;
%%
%Sortino比率
MAR = MAR/N; %化为日(周,月)收益
Sortino = (mean(expReturns(2:end,:)) - MAR) ./ sqrt(lpm(expReturns(2:end,:), MAR, 2));
%%
%Stutzer指数
%对于一定范围的theta值,target单调递增或只有一个拐点
%theta预设穷举搜索范围为[-15,0];
theta = -15:0.01:0;
n_theta = length(theta);
temp_Ip = zeros(n_theta,nn);
% riskfree = (1+noriskrate)^(1/N)-1;
riskfree = noriskrate/N;
for i=1:n_theta
temp_Ip(i,:) = -log(sum(exp(theta(i)*(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)))/(Time-1));
end
Ip = max(temp_Ip);
Stutzer = sign(mean(expReturns(2:end,:)-ones(Time-1,nn)*riskfree)).*sqrt(2*Ip);
%%
%获利天(周,月)数
number_profit = sum(expReturns>0);
%获利的平均收益
mean_profit = sum((expReturns>0).*expReturns)./number_profit;
%受损天(周,月)数
number_loss = sum(expReturns<0);
%受损的平均受损
mean_loss = sum((expReturns<0).*expReturns)./number_loss;
% 最长的连续获利天(周,月)数 during_profit
% 最长的连续受损天(周,月)数 during_loss
temp_profit = zeros(1,nn);
temp_loss = zeros(1,nn);
during_profit = zeros(1,nn);
during_loss = zeros(1,nn);
for i = 1:Time
for j = 1:nn
if expReturns(i,j)>0
temp_profit(j) = temp_profit(j)+1;
temp_loss(j) = 0;
elseif expReturns(i,j)<0
temp_loss(j) = temp_loss(j)+1;
temp_profit(j) = 0;
end
if temp_loss(j)>during_loss(j)
during_loss(j)=temp_loss(j);
end
if temp_profit(j)>during_profit(j)
during_profit(j)=temp_profit(j);
end
end
end
%%
%最大单日(周,月)收益
max_profit = max(expReturns);
%最大单日(周,月)受损
max_loss = min(expReturns);
%胜率
Hit = sum(expReturns>0)/(Time-1);
%收益盈亏比
GPRe=-mean_profit./mean_loss;
%dataret = [];
iq= 2;
dataret{3,2}='组合';
dataret{3,3}='喜岳';
dataret{3,4}='长丰';
dataret{3,5}='淘利';
dataret{3,6}='盛冠达';
dataret{3,7}='因诺';
dataret{3,8}='青骓';
dataret{3,9}='雁丰';
dataret{3,10}='黑翼';
dataret{3,11}='量道';
%dataret{3,1}='累计净值';
%dataret{4,1}='年华收益';
%dataret{5,1}='年华波动';
%dataret{6,1}='最大回撤';
%dataret{7,1}='夏普比率';
%dataret{8,1}='卡玛比率';
%dataret{9,1}='获利周数';
%dataret{10,1}='获利周平均收益';
%dataret{11,1}='受损周数';
%dataret{12,1}='受损周平均收益';
%dataret{13,1}='最大连续收益';
%dataret{14,1}='最大连续受损';
%dataret{15,1}='单周最大收益';
%dataret{16,1}='单周最大受损';
%dataret{17,1}='胜率';
%dataret{18,1}='盈亏收益比';
dataret{4,iq}=sumReturns;
dataret{5,iq}=annuReturns;
dataret{6,iq}=Volatility;
dataret{7,iq}=maxDrawdown;
dataret{8,iq}=SharpeRatio;
dataret{9,iq}=kamaRatio;
dataret{10,iq}=number_profit;
dataret{11,iq}=mean_profit;
dataret{12,iq}=number_loss;
dataret{13,iq}=mean_loss;
dataret{14,iq}=during_profit;
dataret{15,iq}=during_loss;
dataret{16,iq}=max_profit;
dataret{17,iq}=max_loss;
dataret{18,iq}=Hit;
dataret{19,iq}=GPRe;
xlswrite('C:\Users\liangtianxin\Desktop\liangtianxin\finished\fund_zh.xls', dataret, 'Sheet1');
system('taskkill /F /IM EXCEL.EXE');
0 0
- 组合评测
- 人才评测
- 垂直评测
- 算法评测
- 算法评测
- 评测工具
- 职位评测
- 评测方法
- win10评测
- 评测脚本
- codis评测
- CPU评测
- Druid评测
- HEVC评测
- 浏览器性能评测:评测工具
- 组合
- 组合
- 组合
- poj2318 TOYS(计算几何+叉积+二分)
- 字符串排序/基数&Trie
- 元彬的博客
- 2helloworld记事本编程
- 利用JS进行post提交
- 组合评测
- Encoding Latin1 To UTF8
- static解析
- jvm中的新生代Eden和survivor区
- Android系统内置应用更新或升级后被还原的原因
- 开始煲汤
- mysql 主从同步原理
- 序列化与反序列化
- 静态类和单例模式区别