海龟交易法则与matlab程序代码(3)

2018-11-29 16:27

HoldingPosition(1,i*5-3)=(VN); HoldingPosition(1,i*5-2)=(1);

HoldingPosition(1,i*5-1)=(EnterH-2*N); %% 注:预设2倍止损! HoldingPosition(1,i*5)=(j);

HoldingPosition(2:4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_B; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_B;

BQ=BQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end %{

为了保证全部头寸的风险最小,如果另外增加单位,前面单位的止损就提高1/2N。 这一般意味着全部头寸的止损将被设置在踞最近增加的单位的2N处。

然而,在后面单位因市场波动太快造成“打滑(skid)”或者因开盘跳空而以较大的间隔设置的情况下,止损就有所不同。 %} elseif HoldingPosition(1,i*5-3)~=0 && HoldingPosition(2,i*5-3)==0 && H>=HoldingPosition(1,i*5-4)+0.5*N if Balance(j-1,1)>PriceVN_B

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(2,i*5-4)=(HoldingPosition(1,i*5-4)+0.5*N); HoldingPosition(2,i*5-3)=(VN); HoldingPosition(2,i*5-2)=(1);

HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)-2*N); %% 注:预设2倍止损! HoldingPosition(2,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)-2*N+0.5*N); %% 止损水平提高 HoldingPosition(3:4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_B; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_B;

BQ=BQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end

elseif HoldingPosition(2,i*5-3)~=0 && HoldingPosition(3,i*5-3)==0 && H>=HoldingPosition(2,i*5-4)+0.5*N if Balance(j-1,1)>PriceVN_B

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(3,i*5-4)=(HoldingPosition(2,i*5-4)+0.5*N); HoldingPosition(3,i*5-3)=(VN); HoldingPosition(3,i*5-2)=(1);

HoldingPosition(3,i*5-1)=(HoldingPosition(3,i*5-4)-2*N); %% 注:预设2倍止损! HoldingPosition(3,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)-2*N+N); %% 止损水平提高 HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)-2*N+0.5*N); %% 止损水平提高 HoldingPosition(4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_B; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_B;

BQ=BQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end elseif HoldingPosition(3,i*5-3)~=0 && HoldingPosition(4,i*5-3)==0 && H>=HoldingPosition(3,i*5-4)+0.5*N if Balance(j-1,1)>PriceVN_B

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(4,i*5-4)=(HoldingPosition(3,i*5-4)+0.5*N); HoldingPosition(4,i*5-3)=(VN); HoldingPosition(4,i*5-2)=(1);

HoldingPosition(4,i*5-1)=(HoldingPosition(4,i*5-4)-2*N); %% 注:预设2倍止损! HoldingPosition(4,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)-2*N+1.5*N); %% 止损水平提高 HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)-2*N+1*N); %% 止损水平提高 HoldingPosition(3,i*5-1)=(HoldingPosition(3,i*5-4)-2*N+0.5*N); %% 止损水平提高

Balance(j,1)=Balance(j-1,1)-PriceVN_B; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_B;

BQ=BQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ;

PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end else end end else end end

if PS>0

i=sr2(ll); % 首先从RSV最小的开始

O=data(j,i*5-4);H=data(j,i*5-3);L=data(j,i*5-2);C=data(j,i*5-1); EnterL=min(DailyData(Today-Str1_in:Today-1,i*5-2)); EnterH=max(DailyData(Today-Str1_in:Today-1,i*5-3)); N= NMatrix(Today-1,i);

ValuePerPoint=N*Size(i)/Margin(i); % 一手波动全部损失所值价值 VN= fix(0.01*sum(Balance(j-1,:))/ValuePerPoint); % 每个标准风险单位 PriceVN_S=VN*L*Margin(i)*Size(i); % 做多每组所需资金 if L<=EnterL

if PLI(2,i)==1 || PLI(3,i)==-1 || PLI(2,i)==-1 && EnterH -PLI(1,i)>=2*N || L<=min(DailyData(Today-Str2_in:Today-1,i*5-2));

% 上次交易为做多 或上次交易亏损 或 上次交易也是做空,不过开仓位置与这一次最高点没有超过2N

if HoldingPosition(1,i*5-3)==0 % 虚位以待!

if Balance(j-1,1)>PriceVN_S

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(1,i*5-4)=(EnterL); HoldingPosition(1,i*5-3)=(VN); HoldingPosition(1,i*5-2)=(-1);

HoldingPosition(1,i*5-1)=(EnterL+2*N); %% 注:预设2倍止损! HoldingPosition(1,i*5)=(j);

HoldingPosition(2:4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_S; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_S;

SQ=SQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end

%{

为了保证全部头寸的风险最小,如果另外增加单位,前面单位的止损就提高1/2N。 这一般意味着全部头寸的止损将被设置在踞最近增加的单位的2N处。 然而,在后面单位因市场波动太快造成“打滑(skid)”或者因开盘跳空而以较大的间隔设置的情况下,止损就有所不同。 %} elseif HoldingPosition(1,i*5-3)~=0 && HoldingPosition(2,i*5-3)==0 && L<=HoldingPosition(1,i*5-4)-0.5*N if Balance(j-1,1)>PriceVN_S

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(2,i*5-4)=(HoldingPosition(1,i*5-4)-0.5*N); HoldingPosition(2,i*5-3)=(VN); HoldingPosition(2,i*5-2)=(-1);

HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)+2*N); %% 注:预设2倍止损! HoldingPosition(2,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)+2*N-0.5*N); %% 止损水平提高 HoldingPosition(3:4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_S; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_S;

SQ=SQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end elseif HoldingPosition(2,i*5-3)~=0 && HoldingPosition(3,i*5-3)==0 && L<=HoldingPosition(2,i*5-4)-0.5*N if Balance(j-1,1)>PriceVN_S

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(3,i*5-4)=(HoldingPosition(2,i*5-4)-0.5*N); HoldingPosition(3,i*5-3)=(VN); HoldingPosition(3,i*5-2)=(-1);

HoldingPosition(3,i*5-1)=(HoldingPosition(3,i*5-4)+2*N); %% 注:预设2倍止损! HoldingPosition(3,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)+2*N-N); %% 止损水平提高 HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)+2*N-0.5*N); %% 止损水平提高 HoldingPosition(4,i*5-4:i*5)=zeros;

Balance(j,1)=Balance(j-1,1)-PriceVN_S; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_S;

SQ=SQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end elseif HoldingPosition(3,i*5-3)~=0 && HoldingPosition(4,i*5-3)==0 && L<=HoldingPosition(3,i*5-4)-0.5*N if Balance(j-1,1)>PriceVN_S

% % 持仓,针对每一个品种,描述出其(开仓价格,持仓量,开仓方向,预设止损值,,开仓时间)

% 4×(5×i)

HoldingPosition(4,i*5-4)=(HoldingPosition(3,i*5-4)-0.5*N); HoldingPosition(4,i*5-3)=(VN); HoldingPosition(4,i*5-2)=(-1);

HoldingPosition(4,i*5-1)=(HoldingPosition(4,i*5-4)-2*N); %% 注:预设2倍止损! HoldingPosition(4,i*5)=(j);

HoldingPosition(1,i*5-1)=(HoldingPosition(1,i*5-4)+2*N-1.5*N); %% 止损水平提高 HoldingPosition(2,i*5-1)=(HoldingPosition(2,i*5-4)+2*N-1*N); %% 止损水平提高 HoldingPosition(3,i*5-1)=(HoldingPosition(3,i*5-4)+2*N-0.5*N); %% 止损水平提高

Balance(j,1)=Balance(j-1,1)-PriceVN_S; % 资金账户划转 Balance(j,2)=Balance(j-1,2)+PriceVN_S;

SQ=SQ+1; % 可买卖单位调整

PB=min([CB+SQ-BQ PosLim(1,5)-BQ]) ; PS=min([CS+BQ-SQ PosLim(1,5)-SQ]) ; end else end end else end end end end %%

elseif STRATEGY==2

for j=max([Str1_in,Str2_in,P_RSV/Freq])*Freq+1:Days*Freq Today=fix(j/Freq)+1; % 现在所处的交易日


海龟交易法则与matlab程序代码(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018-2023年中国幼儿护理行业市场深度调研分析与投资机会研究报

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: