交作业

来源:3-8 【作业】:比较3只股票的累计收益率,并进行可视化

慕娘2479997

2021-05-21

from XmartTrading.data import stock
from XmartTrading.QuantCore import Stratagy
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 交易策略函数 周四买入 周一卖出def StgFunc(price: pd.DataFrame) -> pd.DataFrame:
    df = Stratagy.CreateStratagyFuncReturnType(price.index)
    df['weekdays'] = df.index.weekday
    df.loc[df['weekdays'] == 3, 'buySignal'] = 1
    df.loc[df['weekdays'] == 0, 'buySignal'] = -1
    return df
start_date = '2019-1-1'end_date = '2019-12-31'prams= {
    'price': '@~'}stgs = {
    '600519.XSHG': Stratagy(stock('600519.XSHG', start_date = start_date, end_date = end_date)), 
    '601021.XSHG': Stratagy(stock('601021.XSHG', start_date = start_date, end_date = end_date)), 
    '600327.XSHG': Stratagy(stock('600327.XSHG', start_date = start_date, end_date = end_date))}df_cums : pd.DataFrame = pd.DataFrame()for code, s in stgs.items():
    s.set_stgFuncParams(prams)
    s.SetStratagyFunc(StgFunc)
    s.execStg()
    df_cums[code] = s.get_data()[~np.isnan(s.get_data().position_profit)].cummulative_profit

df_cums.plot()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('2019全年 周四买入周一卖')
plt.xlabel('Date')
plt.ylabel('累计收益率(%)')
plt.show()

自己写的这个库主要是OOP实现的,用法看起来和函数式的有些不同。
图片描述

写回答

1回答

DeltaF

2021-06-08

基本一致的,棒棒哒~ 祝学习愉快!

0
0

程序员理财课 Python量化交易系统实战

打造一个自动交易平台,新手也能提升理财收益

2059 学习 · 416 问题

查看课程

相似问题

交作业

回答 2

交作业

回答 1

交作业

回答 2

交作业

回答 1