简单的均线突破交易系统

一个非常简单的均线突破交易系统,用的是中金所IF股指期货当月连续合约的3分钟数据


如果要实现代码的话需要连接wind的iwind。


思路和代码均借鉴与faruto,在此表示感谢。



% 股指期货均线突破策略MA5MA20
% Written by Phillip Wan @2013/9/2
% Email:hackerwanhappy@foxmail.com

%% 准备工作
tic;
clear;
clc;
close all;
format compact;
w=windmatlab;

%% 导入数据
codes='IF00.CFE';
fields='open';
begintime=now-200;
endtime=now-100;
wdata=w.wsi(codes,fields,begintime,endtime,'BarSize','3');

%% 作图
plot(wdata);
title('股指期货3分钟数据');
grid on;

%% 给若干变量赋予初值
t=length(wdata);  %设定t为时长
ma5=zeros(t,1);   %初始化ma5
ma20=zeros(t,1);  %初始化ma20
s=0;               %初始化股指期货持仓
equityday=zeros(t,1); %初始化每日盈亏
s0=500000;      %初始化账目资金
equity=s0;     %初始化资金余额
equityday(1:21)=s0; %给前21天资产余额赋值

[short5,long20]=movavg(wdata,5,20);
ma5=short5;
ma20=long20;


%% 第21天开始的每日策略    
for i=22:t

    if ma5(i)>ma20(i)&&ma5(i-1)>ma20(i-1)&&ma5(i-2)<=ma20(i-2)
        %出现上穿,进行买入操作
        equity=equity-300*wdata(i);
        s=s+1;
    else if ma5(i)<ma20(i)&&ma5(i-1)<ma20(i-1)&&ma5(i-2)>=ma20(i-2)
            %出现下穿,进行卖空操作
            equity=equity+300*wdata(i);
            s=s-1;
        end
    end
    %计算每日盈亏
    equityday(i)=equity+300*wdata(i)*s;
    
end

%% 计算最大回撤
backratio=zeros(t,1);
for p=22:t
    c=max(equityday(22:p));
    backratio(p)=(equityday(p,1)-c)/c;
end

%% 作图
figure;
subplot(2,1,1);
plot((equityday-s0)/s0);
grid on;
title('资金权益');
subplot(2,1,2);
plot(backratio);
title('最大回撤比例');
grid on;
axis([0 5500 -0.3 0.1]);
toc
            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值