リターンPythonコードの量を導出する市場戦略と式

モデルや仮定のまず、前提

ポリシー設定日数の合計\(\ N-) 最初の\(T \)の日の市場終値\(P_T \) 最初の\(のt \)一日のリターンの日のレート\(R_Tを\)、\ ( N- \)累積利益日レート\(R_ {兼} \)

仮定するポリシー販売のみ市場指数、\(T \)セクションの下に位置日\((T-1)\ ) 終値アウト\(S_ {T-1} \)の、第1日収量\(R_ {1} = 0 \)

重要な注意:将来の機能を回避するために、使用することはできません\を(S_ {T} \)の計算\(T \)は、一日を配置します。

リターンの第二に、単一日の市場レート

1.離散

【R_T = \ FRAC {P_T} {P_ {T-1}} - 1 \] \

に対応するPythonのコード:

df['market_dis'] = df['close']/df['close'].shift()-1
或
df['market_dis'] = df['close'].pct_change()

連続2。

\ [R_T = LN FRAC \ {P_T} {P_ {T-1}} \]

に対応するPythonのコード:

df['market_con'] = np.log(df['close'] / df['close'].shift())

第三に、リターンの累積市場レート

1.離散

\ [\ {整列}開始1 + R_ {兼}&=(1 + R_ {1})(1 + R_ {2})\ cdots(1 + R_ {N})\\ [1.5ex] - = \ FRAC {P_ {1}} {P_ {0}} \ CDOT \ FRAC {P_ {2}} {P_ {1}} \ cdots \ FRAC {P_ {N}} {P_ {N-1}} \\ [ 1.5ex] - = \ FRAC {P_ {N}} {P_ {0}} \端{整列} \]

に対応するPythonのコード:

# 注意:这里的累积收益率是以净值形式体现的,在实际应用中可能需要在此结果基础上-1
df['market_dis_cum'] = (1+df['market_dis']).cumprod()

連続2。

\ [\ \ {整列}開始テキスト{EXP}(R_ {兼})&= \テキスト{EXP}(R_ {1} + R_ {2} + \ cdots + R_ {N})\\ [1.5ex] &= \テキスト{EXP} \左({LNの\のFRAC {P_ {1}} {P_ {0}} + LN \ FRAC {P_ {2}} {P_ {1}} + \ cdots + LN \ FRAC { P_ {N}} {P_ {N-1}}} \右)\\ [1.5ex] - = \ FRAC {P_ {1}} {P_ {0}} \ CDOT \ FRAC {P_ {2}} { P_ {1}} \ cdots \ FRAC {P_ {N}} {P_ {N-1}} \\ [1.5ex] - = \ FRAC {P_ {N}} {P_ {0}} \\ [2EX] \端{ALIGN} \]

に対応するPythonのコード:

# 注意:这里的累积收益率是以净值形式体现的,在实际应用中可能需要在此结果基础上取np.log()
df['market_con_cum'] = df['market_con'].cumsum().apply(np.exp)

四、1日の返品ポリシー

1.離散

\ [R_T = \&0 {ケースを}開始、T = 1 \\ [2EX] S_ {T-1} \左(\ cfrac {P_T} {P_ {T-1}} - 1 \右)と、T = 2,3、\ cdots、N \\ [2EX] \端{ケース} \]

に対応するPythonのコード:

df['strategy_dis'] = df['position'].shift()*df['market_dis']

連続2。

\ [R_T = \始める&、tは1 \\ [2EX] S_ {T-1}のLNの\ cfrac {P_T} {P_ {T-1}}&T = 2,3、\ cdotsを0 {ケース} N \\ [2EX] \端{ケース} \]

に対応するPythonのコード:

df['strategy_con'] = df['position'].shift()*df['market_con']

第五に、返品ポリシーの累積率

1.離散

\ [\ {整列}開始1 + R_ {兼}&=(1 + R_ {2})(1 + R_ {3})\ cdots(1 + R_ {N})\\ [1.5ex] - = \ [1 + S_ {2} \左左\(\ FRAC {P_ { - [\右1 + S_ {1} \左(1 \右\ FRAC {P_ {2}} {P_ {1}})]左3}} {P_ {2}} - 1 \右)\右] \ cdots \左[1 + S_ {N-1} \左(\ FRAC {P_ {N}} {P_ {N-1}} - 1 \右)\右] \\ [1.5ex] \端{ALIGN} \\ \]

に対応するPythonのコード:

# 注意:这里的累积收益率是以净值形式体现的,在实际应用中可能需要在此结果基础上-1
df['strategy_dis_cum'] = (1+df['strategy_dis']).cumprod()

連続2。

\ [\ \ {整列}開始テキスト{EXP}(R_ {兼})&= \テキスト{EXP}(R_ {2} + R_ {3} \ cdots + R_ {N})\\ [1.5ex]& = \テキスト{EXP} \左({s_1lnの\のFRAC {P_ {2}} {P_ {1}} + s_2ln \ FRAC {P_ {3} {P_ {2}} + \ cdots + S_ {N-1 } LNの\ FRAC {P_ {N}} {P_ {N-1}}} \右)\\ [1.5ex] - = \右\ P_ {1} {\ FRAC {P_ {2}}(左) ^ {S_1} \左(\ FRAC {P_ {3} {P_ {2}} \右)^ {S_2} \ cdots \左(\ FRAC {P_ {N}} {P_ {N-1}} \右)^ {S_ {N-1}} \\ [1.5ex] \端{整列} \]

に対応するPythonのコード:

# 注意:这里的累积收益率是以净值形式体现的,在实际应用中可能需要在此结果基础上取np.log()
df['strategy_con_cum'] = df['strategy_con'].cumsum().apply(np.exp)

おすすめ

転載: www.cnblogs.com/oddgod/p/11516169.html