海龟交易法则matlab代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

今天开放我的matlab代码,我已经说明了程序进程中的每一个步骤,没有学过这个程序的也应该能看得懂。程序比较长,但还是很多地方没有做,部分发展方向我已经提出来了,但不一定对,所以,大家都来找茬吧!

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5

%% Turtle.M

% 海龟交易法则(多品种、多市场)

% 主要包括:

%? 市场----买卖什么,根据SVR强弱觉得买卖优先顺序

% ? 头寸规模----买卖多少,根据ATR以及不对称相关性风险矩阵进行寸风险管理

% ? 入市----何时买卖,根据突破信号辨别方法,辨别真假信号,并受账户资金水平限制其头寸,这里没有考虑到快速变化行情的滑点。

% ? 止损----何时退出亏损的头寸,根据ATR和固定损失水平设定。这里没有考虑到快速变化行情的滑点。

% ? 离市----何时退出赢利的头寸,根据特定参数回归。

% ? 策略----如何买卖,此处只考虑了4种策略,但如何更细致的执行改策略我们没有考虑到。如:如何利用其他指标辅助,如何优化组合资产配置等。

% 说明:

% 为了明晰化思路,一些循环被拆成若干个子循环,影响了速度,但不妨碍我们学习和分析。

% 为了更为精确的服务高频数据,这里设定所得数据为1分钟数据。所以,这里特别要注意的是,程序目前只能处理同样交易时间的市场品种。

% 那么,郑州和大连(9:00-10:15 10:30-11:30 1:30-3:00),上海(9:00-10:15 10:30-11:30 1:30-2:102:20-3:00),证券市场(9:30-11:30 1:00-3:00)就被割裂开来了。

% 因为无法控制非对称时间窗口内的风险,策略和程序暂时不向此扩展和修改。不过,如果用天数据,则不存在任何问题了。

% 讨论:

% 这里我没有写出强弱讨论程序,因为我觉得我的思路还不完全清晰。我的初步想法是,根据相关性水平,如果上涨相关性水平高情形下,

% 如果上涨击穿压力线,则买入最强的SVR,卖出最弱的;理论根据是journal of Finance 2002, Andrew , and % Journal of Finance 2005, Patton

% The copyright belongs to me. The codes exchanged only for study.

% For your own application, load your data into the matrix "data", and change the

% "controls" listed below

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%Controls %

function turtle()

clear all;

close all;

clc;

global EMA;

global Repeat

global Margin;

global Size;

global Account;

global Str1

global Str2

global CorrLev

global PosLim

global Freq

Freq= 240;% 市场交易长度(分钟):大连、郑州=225 ,上海=215,证券=240

STRATEGY=2;% 选择的交易策略,1 策略1;2 策略2;3 强弱套利;d

EMA=20;% 计算指数平均的周期数d

Repeat=1;% 多久时间重新算一次ATR D

Margin=[0.05 0.05 0.07 1];% 所交易品种的保证金率1×i , i 资产数量,股票为1

Size= [5 5 8 1];% 所交易品种的合约规模1×i, 股票为1

Account=[100000000];% 初始账户资金D

Str1_in=20;% 策略一进场周期参数d

Str2_in=55;% 策略二进场周期参数d

Str1_out=10;% 策略一出场周期参数d

Str2_out=20;% 策略二出场周期参数d

P_RSV= 30*Freq;% 相对强弱指标

CorrAdj=30*Freq;% 市场相关性调查时间窗口长度,考虑到市场相关性的不对称性,买入考察下跌相关性,卖出考虑上涨相关性

CorrLev=[0.3 0.7];% 相关性水平识别,高于它为高度相关性市场,低于它为低度相关市场。1×2 PosLim=[4 6 8 10 12];% 分别为单市场、高度相关、一般相关、低度相关、单向交易持仓限制1×5 HoldingPosition=[];% 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)4×(5×i)

LastPL=[];% 平仓记录,【盈利状况多头水平空头水平开仓时间平仓时间】K*(5×i),k交易次数

Balance=[];% 账户可用资金账户交易资产现值m*(2*i),m时间长度

% Load your own data into matrix "dat" @

%% 数据初始化及参数设计

load data;

%{

海龟们用于确定能够参与交易的期货品种的主要标准就是构成市场基础的流动性。

每一个品种,我们要求具有以下几个指标:开、高、低、收、量

%}

[m n]=size(data);

if round(n/5)~=n/5 || (m/Freq)<=max([Str1 Str2 20]) || length(Margin)~=length(Size) || length(Margin)~=n/5 error('你输入的数据格式不满足我们的要求,请重新核对数据质量')

end

Q=n/5;

Days=fix(m/Freq);

out=fopen('turtle','at');

fprintf(out,'**************************************************\n');

fprintf(out,'数据观察量:%u\n',m);

fprintf(out,'一天观察次数:%u\n',Freq);

fprintf(out,'研究的品种数量:%u\n',Q);

fprintf(out,'所交易品种的保证金率:所交易品种的合约规模: \n');

for i=1: Q

fprintf(out,'%u%u\n',Margin(i),Size(i));

end

fprintf(out,'选择的交易策略(1短线;2长线;3 强弱套利): %u\n',STRATEGY);

fprintf(out,'计算指数平均的周期数%u\n',EMA);

fprintf(out,'多久时间重新算一次:%u\n',Repeat);

fprintf(out,'初始账户资金:%u\n',Account);

fprintf(out,'策略一进场周期参数:策略一出场周期参数:\n');

fprintf(out,' %u%u\n',Str1_in ,Str1_out );

fprintf(out,'策略二进场周期参数:策略二出场周期参数:\n');

fprintf(out,' %u%u\n',Str2_in ,Str2_out );

fprintf(out,'相关性周期参数:%u\n',CorrAdj);

fprintf(out,'相对强弱周期参数:%u\n',P_RSV);

fprintf(out,'\n');

相关文档
最新文档