第 三 篇
一、策略模块创建步骤
(一)、引入调用自定义模块代码
代码如下:
import sys,os
from time import time
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
import Data.Stock as DS
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
(二)、创建策略模块名,并导入调用获得单个股票行情数据模块
代码如下:
# 创建交易策略,生成交易信号
def week_period_strategy(stock_code,timefrequency,start_date,end_date):
# 调用获得单个股票行情数据模块
data = DS.get_single_price(stock_code,timefrequency,start_date,end_date)
(三)、创建买卖信号
代码如下:
# 创建周期字段
data['weekday'] = data.index.weekday
# 周四交易:买入
"""
1: 买入操作
0: 不操作
"""
data['buy_signal'] = np.where((data['weekday'] == 3),1,0)
# 周一交易:卖出
"""
1: 买入操作
0: 不操作
"""
data['sell_signal'] = np.where((data['weekday'] == 0),-1,0)
(四)、创建特殊情况处理方法
代码如下:
# 考虑买入特殊情况:重复买入
data['buy_signal'] = np.where((data['buy_signal'] == 1) & (data['buy_signal'].shift(1) == 1),0,data['buy_signal'])
# 考虑卖出特殊情况:重复卖出
data['sell_signal'] = np.where((data['sell_signal'] == -1) & (data['sell_signal'].shift(1) == -1),0,data['sell_signal'])
# 合并买卖情况列
data['signal'] = data['buy_signal'] + data['sell_signal']
(五)、计算收益率
代码如下:
# 筛选出买卖数据
data