• 大小: 5KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: Matlab
  • 标签: 海龟策略  

资源简介

海龟策略的matlab代码,根据日线的突破建仓以及平仓,多品种期货交易

资源截图

代码片段和文件信息

%数据格式 时间,开盘,最高,最低,收盘,总成交股,总交易价格,除权数
%数据存储模式为矩阵式存储
%目的:海龟模型回测
%注意,涨停板无法买入,跌停板无法卖出。
%第一步,载入数据源并且建立回测区间
r=0;k=0;m=0;X=20;
mon=100000;
tic
load StockList.mat; 
Scode=StockList(:2);
Fstr=‘E:/Database/Stock/Day_ExDividend_mat‘;
Instr=‘请输入股票代码:‘;
Estr=‘代码不存在,请检查!‘;
while r==0;
    if exist(‘Stock_Code‘‘var‘)==1
        StCode=Stock_Code;
    else
    StCode=input(Instr‘s‘);
    end
    if isempty(strfind(Scode‘StCode‘))
        disp(Estr);r=0;
    else r=1;
    end
    FileString = [Fstr‘/‘StCode‘_D_ExDiv.mat‘];
    load(FileString);
end
Datestart_info=‘请输入回测时间开始点:‘;
Dateerr_info=‘错误时间格式,默认为yyyymmdd!‘;
Dateend_info=‘请输入回测时间结束点:‘;
StartDate=Convert_date(StockData(11));
EndDate=Convert_date(StockData(end1));
while k==0
    if exist(‘Start_Date‘‘var‘)==1
        Sdate=Start_Date;
    else
    Sdate=input(Datestart_info);
    end
    Sd=Convert_date(Sdate);
    if length(num2str(Sdate))<8
        disp(‘错误!时间格式应为yyyymmdd!‘);
        Sdate=input(Datestart_info);
    else k=1;continue
    end
    if datenum(Sd)datenum(EndDate)
        disp(‘时间溢出!请重新输入!‘);k=0;
    else k=1; continue
    end
end
while m==0
    if exist(‘End_Date‘‘var‘)==1
        Edate=End_Date;
    else
    Edate=input(Dateend_info);
    end
   Ed=Convert_date(Edate);
    if length(num2str(Edate))<8
        disp(‘错误!时间格式应为yyyymmdd!‘);
        Sdate=input(Dateend_info);
    else m=1;continue
    end
    if (datenum(Ed)datenum(EndDate))...
            ||datenum(Ed)        disp(‘时间溢出!请重新输入!‘);
    else m=1; continue
    end
end
SSd=datenum(Convert_date(Sd));EEd=datenum(Convert_date(Ed));
%用指针确定循环序列,注意时间序列是跳跃的,必须考虑停牌,复牌,节假日的因素
Len=length(StockData(:1));
 SData=zeros(Len1);
for k=1:Len
    SData(k)=datenum(Convert_date(StockData(k1)));
end
for i=1:Len 
    if SData(i)        break;
    end
    kappa=i;%起始位置
end
for i=1:Len 
    if SData(i)        break;
    end
    lambda=i;%终止位置
end
%分配内存
TestDate=zeros(lambda-kappa+11);
Oprice=zeros(lambda-kappa+11);
Cprice=zeros(lambda-kappa+11);
Highprice=zeros(lambda-kappa+X1);
Hprice=zeros(lambda-kappa+11);
Lowprice=zeros(lambda-kappa+11);
Lprice=zeros(lambda-kappa+11);
price_max20=zeros(lambda-kappa+11);
Hb20=zeros(lambda-kappa+1X);
Lb20=zeros(lambda-kappa+1X);
price_min20=zeros(lambda-kappa+11);
%赋值
for i=1:lambda-kappa+1
     TestDate(i)=StockData(kappa+i-11);
    if kappa        disp(‘不合适的回测开始时间!请返回!‘);
        break;
    else
    Oprice(i)=StockData(kappa+i-12);
    Lprice(i)=StockData(kappa+i-14);
    Hprice(i)=StockData(kappa+i-13);
    Cprice(i)=StockData(kappa+i-15);
    end
end
for i=1:lambda-kappa+X
    Highprice(i)=StockData(kappa+i-X-13);
    Lowprice(i)=StockData(kappa+i-X-14);
end
for i=1:lambda-kappa+1        
    for j=1:X
       Hb20(ij)= Highprice(i+j-1);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3973  2016-04-04 08:56  turtle_original\BTest_database.m

     文件        153  2016-04-02 05:26  turtle_original\toolkits\Convert_date.m

     文件        241  2016-04-04 01:22  turtle_original\toolkits\CPcalc.m

     文件        320  2016-04-04 16:34  turtle_original\toolkits\OperBuy.m

     文件        315  2016-04-04 16:33  turtle_original\toolkits\OperEmpty.m

     文件        316  2016-04-04 16:31  turtle_original\toolkits\OperHold.m

     文件        330  2016-04-04 16:32  turtle_original\toolkits\OperSell.m

     文件        913  2016-04-04 17:30  turtle_original\toolkits\Turtle_Conds.m

     文件       3459  2016-04-04 18:25  turtle_original\Turtle_strategy.m

     目录          0  2018-01-12 00:10  turtle_original\toolkits

     目录          0  2018-01-12 00:10  turtle_original

----------- ---------  ---------- -----  ----

                10020                    11


评论

共有 条评论

相关资源