% function [Ahat2, shat, n_iteration Test] = nc_fastica_svd(xold,typeStr,N,A)
function [shat Ahat2] = nc_fastica_svd(xold,typeStr,N)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% non-circular complex FastICA算法,基于Newton迭代法,类似与fastICA
% input
% xold: 混合信号,mn,m为阵元数,n为快拍数
% typeStr: 非线性函数,'log', 'kurt', or 'sqrt'
% output
% Ahat: 解混矩阵
% shat: 估计的源信号
%
% Reference
% Mike Novey and T Adali, "On Extending the complex FastICA algorithm
% to noncircular sources" in
% (To appear 2007/2008) IEEE Journel on Signal Processing,
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
type = 0;
if strcmp(typeStr,'log') == 1
type = 1;
elseif strcmp(typeStr,'kurt') == 1
type = 2;
elseif strcmp(typeStr,'sqrt') == 1
type = 3;
end
tol = 1e-5;
a2 = 01;
defl = 1; % components are estimated one by one in a deflationary manner; set this to 0 if you want them all estimated simultaneously
maxcounter = 50;
[n,m] = size(xold);
% Whitening of s:
yyy = zeros(1,m);
[Ex, Dx] = svd(cov(xold'));
E = Ex(:,1:N);
D = Dx(1:N,1:N);
Q = mtimes(sqrt(inv(D)),E');
x = Q xold;
%Pseudo-covariance
pC = (xtranspose(x))/m;
% FIXED POINT ALGORITHM
W = eye(N);
Wold = zeros(N);
k = 0;
while (norm(abs(Wold'W)-eye(N),'fro')>(N1e-12) && k < 15N)
k = k+1;
Wold = W;
for kk=1:N %Loop thru sources
yy = W(:,kk)'x;
absy =abs(yy)^2;
%%Fixed point
if type == 1 %%log
g = 1/(a2 + absy);
gp = -1/(a2 + absy)^2;
elseif type == 2 %Kurt
g = absy;
gp = ones(size(absy));
elseif type == 3 %sqrt
g = 1/(2sqrt(a2 + absy));
gp = -1/(4(a2 + absy)^(3/2));
end
gRad = mean(ones(N,1)(gconj(yy))x,2);
ggg = mean(gpabsy + g);
B = mean(gp conj(yy)^2)pC;
W(:,kk) = Wold(:,kk)(ggg) -(gRad) + (Bconj(Wold(:,kk)));
end
%Orthonormalization
[E,D] = eig(W'W);
W = W E inv(sqrt(D)) E';
end; %Loop thru sources
n_iteration = k;
shat = W'x; %Estimated sources
% Ahat1 = inv(Q)W;
Ahat2 = W'Q;
这个是NC-fastica,可以用。稍微注释了些
原始程序,不知道是谁写的了
遗传基因程序(Genetic Programming, GP)是演化算法(Evolution Algorithm)的其中一种。
研究者们,例如瑞典科学家彼特·诺丁(Peter Nordin)博士和美国科学家约翰·R·科赞(John R Koza)博士等人工智能学者,在90年代初便开始积极地开发这种算法的理论和应用。在短短几年之间,多达数百篇计算机学术论文应运而生(1992-98年,200多位学者发表超过800篇相关GP的论文),都是围绕着遗传基因程序这个题目来做的研究,可见科学家们对它寄予厚望。沃尔夫冈·班茨哈夫(Wolfgang Banzhaf)博士在2013年发表的论文《遗传基因程序与自然发生现象》(Genetic Programming and Emergence)中更指出,天地万物之中的的自然发生现象
(Emergence)在遗传基因程序这种算法本质中客观存在。对很多略懂老子或达尔文的读者来说,这个论证可能使人振奋,因为计算机不再是一般人心目中生硬的软件指令和冷冰冰的硬件在运行一些索然无味的重复性 *** 作!中华文化遗产中老子的道法自然可谓自然发生论(Emergentism)的鼻祖。遗传基因程序更是引用了达尔文理论中的归纳法,通过一群电脑程序不断的进化演变做机器学习(Machine Learning, ML),帮助预定义的问题寻优解。
更浅白地说,遗传基因程序有能力好像天地万物一样,自然地(自动化地)生成懂得解决问题的计算机程序。 极大地增进了运算速度。
事实上,在过去的几十年里,尽管科技日新月异,计算机硬件速度提升迅猛,但是人们要利用计算机来挖掘数据,寻觅稳健交易策略,仍依然需要耗费几月,有时甚至是几年才有机会修成正果。
自定义输入:用户可以选择以自定义的指标、价格形态、等数据,作为 StrategyQuant 策略生成器的输入信号。 定义样本内(In-Sample)和样本外(Out of Sample, OOS)数据比例。
人工智能训练开始:StrategyQuant每分钟生成几十个甚至几百个的新的交易策略。视乎电脑硬件配置和数据量,不消片刻(几天)就能生成数十万个策略。 实时检测策略表现:每次进化过程中存活下来的优解策略,都会在样本外(Out of Sample, OOS)数据做模拟交易,得出样本外OoS盈利 (OoS Profit)和回撤(OoS Draw Down)的成绩。
挑选其他不同框架重新训练。 转化策略成第三方交易平台代码:用户在当中找到了合意的交易策略, 则可利用 TSL,将策略自动转换为基于如MT4,Ninjatrader 等等为基础的平台原始代码,在用户习惯使用的平台上进行回测、模拟交易或实盘交易。
如何防止过度曲线拟合? 通过以下特征防止过度拟合(OverFitting),进而提升交易策略的鲁棒性(稳健、健壮性)
Robustness: 大道至简,简化模型参数:一个交易系统的策略越简单,持久生存能力就越强;
换言之,它在未来有越高几率维持其过往表现。(经典电脑程序语言简化优选方法 Parsimony Pressure,可以理解为奥卡姆剃刀 Occam's Razor,即占据空间越短的交易逻辑程序,其权重越高,也就是 Minimum description length (MDL) principle) 进化过程中随机化:在进化过程中引入随机性,避免陷入局部最优的尴尬局面。在这个过程中随机加入的,不仅仅是遗传算法染色体配对,还有更高阶的遗传进化程序。 进化目标随机化:在遗传基因程序的进化中产生新的策略, 并不完全以目标函数的指引方向作为进化目标。进而,在算法理论上避免陷入局部最优的尴尬局面。 初始策略随机化:TSL 开始进化之前,以随机策略作为初始策略。防止了 n-D 空间中局部的最大化,从而提升寻找到全局最优值的几率。 策略检验多元化:
交易次数越多且交易策略越简单,那么其权重越高(自由度具体化)。例如,一个通道突破系统,可以在一篮子的金融产品中产生超过一万次可观的交易。
策略回测最简化:用户在交易品种中生成的交易策略, 可以方便地调用其在其市场或品种上进行回测, 并以此验证该策略的鲁棒性。该过程中,无需先转化为第三方平台 的代码,可直接在StrategyQuant中调用进行测试。
高级日交易系统计策:StrategyQuant如何对付辣手的区制转移(Regime Switching)问题? 遗传基因程序(Genetic Programming, GP)能够多端输出,允许多个子交易系统共存在一个更大的交易系统中。每个子系统都会对大系统的资本回报曲线作用。这种自动化策略生成系统威力很大,因为众所周知,综合多个稳健策略的系统比单个有更优秀的表现。例如,一个形态交易策略可能对建立看涨仓位有良好表现,一个指标型策略产生的信号对建立看空仓位有良好表现。这种情况,在未来有可能随时交替变化。区制转移(Regime Switching)机制一直都是系统交易者需要长期面对的极其棘手的问题。
然而,因为日交易培训数据精度高,数据量相对大,区制转移(Regime Switching)参考样本比较丰富,StrategyQuant的遗传基因程序能生成多个输出,围绕着历史数据中的各种情况,自动优寻和组合多个子系统来形成一个大系统。
子系统的优寻过程中,StrategyQuant循着用户定义的目标函数,例如夏普比率(Sharpe Ratio),自动化地将回报率相关度(Correlation)低的子系统组合起来目标函数值。以此,最终得出交易策略的回报和交易稳健度都能因而得到提高。一站式地解决了辣手的区制转移问题。用户开发策略的速度和策略回报效益都因而得以提升。
想详细了解请加入QQ群:StrategyQuant交易策略 244183865
安装的软件和硬件与系统不兼容。gpexe应用程序错误的原因是安装的软件和硬件与系统不兼容,可以重新安装gpexe应用程序的软件和硬件。GP一般指类属编程,是构成库的另一种方式,这类程序库一般由类属组件和类属算法组成,组件和算法通过迭代器组装起来,组件则对迭代器提供一定的封装。
以上就是关于急求FastICA 的源程序 matlab,包括数据的预处理(中心化和白化),注释详细点,谢谢!全部的内容,包括:急求FastICA 的源程序 matlab,包括数据的预处理(中心化和白化),注释详细点,谢谢!、StrategyQuant 是个什么软件、gp.exe应用程序错误等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)