#初始化函數 import jqdata from jqlib.technical_analysis import * def initialize(context): # 定義一個全局變量, 保存要操作的股票 # 000001(股票:平安銀行) g.security = '000001.XSHE' # 設定滬深300作為基准 set_benchmark('000300.XSHG') # 開啟動態復權模式(真實價格) set_option('use_real_price', True) #單位時間調用的函數 def handle_data(context, data): #獲取初始化中要操作的股票 security = g.security #調用MACD函數,並獲取股票的MACD指標的DIF,DEA和MACD的值 macd_diff, macd_dea, macd_macd = MACD(security,check_date=context.current_dt, SHORT = 12, LONG = 26, MID = 9) macd_diff = macd_diff[security] macd_dea = macd_dea[security] macd_macd = macd_macd[security] cash = context.portfolio.cash # 如果當前有余額,並且DIFF、DEA均為正,DIFF向上突破DEA if macd_diff > 0 and macd_dea >0 and macd_diff > macd_dea : # 用所有 cash 買入股票 order_value(security, cash) # 記錄這次買入 log.info("買入股票 %s" % (security)) # 如果DIFF、DEA均為負,DIFF向下跌破DEA,並且目前有頭寸 elif macd_diff < 0 and macd_dea < 0 and macd_diff < macd_dea and context.portfolio.positions[security].closeable_amount> 0: # 全部賣出 order_target(security, 0) # 記錄這次賣出 log.info("賣出股票 %s" % (security))