# matlab - 在MATLAB中重新引入AR和GARCH过程

``````for i=1:nIndices
for j=1:nTrials
for t=1:horizon
R_t       = AA_alpha(i,:)   AA_beta(i,:) * R_{t-1}   sqrt(h_{t-1}) * Z(t,j,i);
h_t       = AA_alpha1(i,:) AA_GARCH(i,:)*variances(j,i) AA_ARCH(i,:)*Z({t-1},j,i)   AA_LEVERAGE*ZCopy{t-1}
TR_t      = TR_{t-1} * exp(R_t);
end
end
end
``````

#### 1 个答案:

``````TR_t      = TR_{t-1} * exp(R_t);
``````

``````Set scalar 'TR_t' as follows:
> Take cell matrix 'TR_' and take cell t-1
> Then multiply with exp(R_t)
``````

``````// Variables that should already contain values before the loop starts
//**************************************************************************************
// >NAME<        >INITIALISATION EXAMPLE<              >DIMENSION<
//**************************************************************************************
AA_LEVERAGE = ?  //zeros(1,1);                         // Should be a scalar
ZCopy       = ?  //zeros(1, horizon);                  // (1 x horizon)
variances   = ?  //zeros(nTrials, nIndices);           // (nTrials x nIndices)
AA_alpha    = ?  //zeros(nIndices, horizon);           // (nIndices x horizon)
AA_alpha1   = ?  //zeros(nIndices, horizon);           // (nIndices x horizon)
AA_beta     = ?  //zeros(nIndices, horizon);           // (nIndices x horizon)
AA_GARCH    = ?  //zeros(nIndices, horizon);           // (nIndices x horizon)
AA_ARCH     = ?  //zeros(nIndices, horizon);           // (nIndices x horizon)
Z           = ?  //zeros(nIndices, nTrials, horizon);  // (nIndices x nTrials x horizon)
SAVE_R      = zeros(nIndices, nTrials, horizon);       // (nIndices x nTrials x horizon)
SAVE_h      = zeros(nIndices, nTrials, horizon);       // (nIndices x nTrials x horizon)
SAVE_TR     = zeros(nIndices, nTrials, horizon);       // (nIndices x nTrials x horizon)

//**************************************************************************************
// START OF PROGRAM
//**************************************************************************************

for i=1:1:nIndices               // For i number of indices  (increment 1)
for j=1:1:nTrials              // For j number of trials   (increment 1)

R  = zeros(1,horizon);   // Re-initialise empty matrix (1 x horizon)
h  = zeros(1,horizon);   // Re-initialise empty matrix (1 x horizon)
TR = zeros(1,horizon);   // Re-initialise empty matrix (1 x horizon)

for t=2:1:horizon        // For t number of horizons (increment 1) (start at 2)

// Assumes R(1,1) is known
R(1,t)  = AA_alpha(i,:) AA_beta(i,:)*R(1,t-1) sqrt(h(1,t-1))*Z(i,j,t);

// Assumes ZCopy(1,1) is known
h(1,t)  = AA_alpha1(i,:) AA_GARCH(i,:)*variances(j,i) AA_ARCH(i,:)*...
Z(i,j,t-1) AA_LEVERAGE*ZCopy(1,t-1);

// Assumes TR(1,1) is known
TR(1,t) = TR(1,t-1)*exp(R(1,t));
end

// Save matrices R, h and TR before end of inner loop otherwise ..
//  .. their information will be lost

// For example, you can store their values as follows:
SAVE_R(i,j,:)  = R(1,:);
SAVE_h(i,j,:)  = h(1,:);
SAVE_TR(i,j,:) = TR(1,:);

end
end

// If all variables initialised correctly, should produce output
// Written for StackOverflow question: http://stackoverflow.com/questions/30789390/
``````

DABAN RP主题是一个优秀的主题，极致后台体验，无插件，集成会员系统
U19学习网站 » matlab - 在MATLAB中重新引入AR和GARCH过程