matlab--上帝视角交易法

前言

我们都知道,股票行情会呈现某种趋势上下波动,那如何计算过去某个时段固定本金情况下的最高收益值呢,下面的代码就是实现这一功能。

一、代码

origindata=table2array(data);
day=length(origindata);
origin_money=origindata(1);
all_peaks=findpeaks(origindata);
all_trough=findpeaks(-1*origindata);
all_trough=-1*all_trough;
times=origin_money/(origindata(1));

% target_peak= all_peaks(1);
% all_peaks(1)=[];  
% target_trough= all_trough(1);
% all_trough(1)=[];
if(origindata(2)>origindata(1))  %判断初始状态
     find_trough=1;
     find_peak=0;
     target_peak=0;
     target_trough=0;
end
if(origindata(2)<origindata(1))
     find_peak=1;
     find_trough=0;
     target_peak=0;
     target_trough=0;
end

for t=1:day-1

  if(find_peak==1&&length(all_trough)>0)
   
    find_peak=0;
    target_trough= all_trough(1);
    all_trough(1)=[];

  end

  if(find_trough==1&&length(all_peaks)>0)
      
      find_trough=0;


      target_peak= all_peaks(1);
      all_peaks(1)=[];  

      if(target_peak>0&&target_trough>0)
      times=times*(target_peak/target_trough);
      end
  end

   if(origindata(t)==target_peak)
       find_peak=1;
        mode=1;
   end

   if(origindata(t)==target_trough)
       find_trough=1;     
       mode=2;
   end





  if(mode==1)   %找到峰值状态  钱不变
     origin_money(t+1)=origin_money(t);
  end   

  if(mode==2)
    origin_money(t+1)= origin_money(t)+(origindata(t+1)-origindata(t))*times;
  end
  modere(t)=mode;
end

该处使用的url网络请求的数据。


总结

在这里插入图片描述

代码的核心思路在于
(1)找到曲线的相临近极值点,在极小值点处梭哈买入,然后让手中股票随着行情升值。
(2)到达最高点处梭哈卖出,等待下一个最低点买入。
这样就完成了全部的流程,具体代码已经贴出来了,如有不懂请留言哦。

猜你喜欢

转载自blog.csdn.net/taiyuezyh/article/details/123533303