import time
import os
import csv
import numpy
import talib as ta
def init(context):
context.s1 = "SH600152"
context.long_period = 20
context.short_period = 5
# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
pass
# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
close = history_bars(context.s1,context.long_period,'self','close',True)
if len(close) < context.long_period+1:
return
ma5 = ta.SMA(close,context.short_period)
ma20 = ta.SMA(close,context.long_period)
if ma5[-1]>ma20[-1] and ma5[-2]<ma20[-2]:
buy_open(context.s1, "market", volume=100)
if ma5[-1]<ma20[-1] and ma5[-2]>ma20[-2]:
portfolio = get_portfolio(context.s1,0)
sell_close(context.s1,"market", volume=portfolio.buy_quantity)
#buy_open(context.s1, "Market", volume = 100) # 市价开多
#buy_open(context.s1, "Limit", 25.45, 100) # 限价开多
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)
def after_trading(context):
pass