1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

reversal factorの算出

Posted at

reversal factorの算出

概要

前回に投稿した期間損益から
算出されたリターンを10分位に分けて
reversal factorを算出。

分析のための条件

スタート日を一か月前・エンド日を今日として一か月リターンを対象
前回投稿の期間損益をdataframeで返す関数をduration_returnとした

s_day = dt.date.today()
from dateutil.relativedelta import relativedelta
s_day = t_day - relativedelta(months=1)
rev_df = duration_return(s_day, e_day)

qcutで10分割してカラムに格納しDBに格納

そのままdataframeを分析して計算することもできたが、
今後のことを踏まえてデイリーでラベリングしたテーブルを持たせることに。
格納テーブルはreturn_reversal。

div = 10
l = [x for x in range(1, div + 1)]
rev_df['mon1'] = pd.qcut(rev_df['dur_chg'], div
                                    , labels = l)

1分位目のリターンを算出

下記の方法で、10分位目も算出して差分してリターン計算。

    rev = ts.return_reversal
    b_day = (t_day - cday).date()
    q_rev = ss.query(rev.tick).filter(rev.ddate==b_day)
    q_rev1 = q_rev.filter(rev.mon1 == 1).subquery()
    q_rev10 = q_rev.filter(rev.mon1 == 10).subquery()
    q_sprc = ss.query(prc.tick, prc.close).filter(prc.ddate==b_day).subquery()
    q_eprc = ss.query(prc.tick, prc.close).filter(prc.ddate==t_day).subquery()
    ttick = q_rev1.c.tick
    PL = (q_sprc.c.close * 100 / q_eprc.c.close) - 100
    # PL = (cast(cast((PL * 100), Integer), Float)/ 100 )

    sub_q = ss.query(
                    ttick,
                    PL.label('PL')
                    ) \
                    .join(q_sprc, ttick == q_sprc.c.tick) \
                    .join(q_eprc, ttick == q_eprc.c.tick).subquery()

    query = ss.query(func.avg(sub_q.c.PL))
    df = pd.read_sql(query.statement, engine)

管理

このあたりをタスク化して、ファクターリターンとエクスポージャーを自動計算させていく。

終わりに

雑でごめんなさい

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?