【GA-GRNN】基于GA-GRNN的金融序列组合投资策略matlab仿真与分析

目录

1.算法仿真效果

2.MATLAB源码

3.算法概述

3.1 广义回归神经网络(GRNN)

3.2 遗传算法(GA)

3.3 GA-GRNN在金融序列预测中的应用

4.部分参考文献

5.程序内容,运行方法和源码获取

5.1 程序包括

         5.2 运行方法

5.3 源码获取


1.算法仿真效果

matlab2022a仿真结果如下:

2.MATLAB源码

0005..................................................................
MAXGEN = 50;
NIND   = 60;
Nums   = 35; %35个资产的权值比例
Chrom  = crtbp(NIND,Nums*10);

%sh
Areas = [];
for i = 1:Nums
    Areas = [Areas,[0;100]]; 
end

FieldD = [rep([10],[1,Nums]);Areas;rep([0;0;0;0],[1,Nums])];

gen   = 0;
for a=1:1:NIND 
    %计算对应的目标值
    X            = rand(1,Nums);
    X1           = X/sum(X);
    [epls,Rt,Rk] = func_obj(X1,dataw39);
    E            = epls;
    Js(a,1)      = E;
end

Objv  = (Js+eps);
gen   = 0; 

 
%%
while gen < MAXGEN;   
      gen
      Pe0 = 0.98;
      pe1 = 0.02; 

      FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,Pe0);   
      Selch=mut( Selch,pe1);   
      phen1=bs2rv(Selch,FieldD);   
 
      for a=1:1:NIND  
          X           = round(phen1(a,:));
          %计算对应的目标值
          [epls,Rt,Rk,X2]= func_obj(X/sum(X),dataw39);
          E           = epls;
          JX2(a,:)     = X2;
          JJ(a,1)     = E;
          JJ1(a,1)     = Rt;
          JJ2(a,1)     = Rk;
      end 
      
      Objvsel=(JJ);    
      [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen=gen+1; 

      index1     = isnan(JJ);
      index2     = find(index1 == 1);
      Error(gen) = mean(JJ); 
      Error1(gen) = mean(JJ1); 
      Error2(gen) = mean(JJ2); 
end 

 
[V,I] = min(JJ);
X     = JX2(I,:);
X

[fitness,Rt,Rk,P2] = func_obj(X,dataw39);
100*Rk

3.算法概述

       基于GA-GRNN的金融序列组合投资策略结合了遗传算法(GA)和广义回归神经网络(GRNN),以优化金融序列的预测和组合投资决策。金融序列预测是金融工程中的一个重要课题,其目标是对未来的市场趋势做出准确的预测。由于金融市场的复杂性和不确定性,传统的统计模型往往难以达到理想的预测效果。

        GA-GRNN方法通过遗传算法优化GRNN的平滑因子(smoothing factor),从而提高预测准确性。遗传算法是一种全局优化算法,能够有效地搜索最优解空间。GRNN是一种特殊的径向基函数神经网络(RBFNN),特别适合回归任务,具有快速训练和易于调整的优点。

3.1 广义回归神经网络(GRNN)

       GRNN由Specht在1991年提出,其网络结构相对简单,通常包含四个层:输入层、隐藏层、模式层和输出层。

  • 输入层:包含m个节点,对应于输入向量的维度。
  • 隐藏层:包含n个节点,每个节点代表一个高斯函数。
  • 模式层:用于计算隐藏层节点的加权和。
  • 输出层:计算最终的输出值。

GRNN的核心在于隐藏层的高斯函数,它定义为:

其中,x是输入向量,c是中心向量,σ是平滑因子。

GRNN的输出由以下公式给出:

这里,yi​是与隐藏层节点对应的训练数据的目标值。

3.2 遗传算法(GA)

      遗传算法是一种基于自然选择和遗传机制的优化算法,它通过一系列操作(选择、交叉、变异)来逐步改进种群中的个体。

  • 选择:根据适应度函数选择表现较好的个体作为父代。
  • 交叉:通过交换两个父代的部分基因产生新的后代。
  • 变异:随机改变后代的某些基因以引入新的遗传信息。

       适应度函数是衡量个体好坏的标准。在GA-GRNN中,适应度函数通常是基于GRNN预测结果的评价指标,例如均方误差(MSE)或均方根误差(RMSE):

3.3 GA-GRNN在金融序列预测中的应用

GA-GRNN在金融序列预测中的应用主要包括以下几个步骤:

3.1 数据预处理

  • 归一化:将数据缩放到某个区间(如[0,1])内。
  • 特征选择:选择最相关的特征用于建模。

3.2 模型训练

  • 初始化种群:随机生成初始平滑因子的集合。
  • 评估适应度:使用GRNN预测序列,并计算预测误差。
  • 选择、交叉和变异:基于适应度值改进种群。
  • 终止条件:当满足某个停止准则(如最大迭代次数或最小适应度变化)时停止。

3.3 预测

使用最优的GRNN模型进行预测,并根据预测结果制定投资策略。

整体算法流程图如下图所示:

4.部分参考文献

[1]张德天.基于GA-WNN和GRNN组合算法的光伏功率预测系统设计[D].沈阳工程学院,2020.

[2]蔡德成,王岭,柏晓路,等.基于WOA-GA-GRNN神经网络的输电导线脱冰跳跃高度预测[J].电力勘测设计, 2023(12):37-43.

5.程序内容,运行方法和源码获取

5.1 程序包括

matlab程序,测试样本,参考文献,report

5.2 运行方法

1.在matlab的左侧的当前文件夹窗口;

2.按main1~8次序逐个点击运行即可;

3.每个程序仿真图在附带的report中有介绍和说明

5.3 源码获取

step1.打开博客主页的左侧推广栏查看,或扫博客文章底部信息

step2.然后用电脑打开网页链接,输入文章标题搜索

V

  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simuworld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值