量化交易入門筆記-MACD指標策略
阿新 • • 發佈:2018-10-31
'''
實現DIFF、DEA均為正,DIFF向上突破DEA,買入股票;
DIFF、DEA均為負,DIFF向下突破DEA,賣出股票
'''
import jqdata
from jqlib.technical_analysis import *
def initialize(context):
# 要操作的股票
g.security = '000001.XSHE'
# 設定基準
set_benchmark('000300.XSHG')
# 開啟動態復權
set_option('use_real_price', True)
def handle_data (context, data):
# 獲得要操作的股票
security = g.security
# 呼叫MACD函式,並獲取股票的MACD指標的DIF/DEA和MACK的值
macd_diff, macd_dea, macd_macd = MACD(security, check_date=context.current_dt, SHORT=12, LONG=16, MID=9)
print(macd_diff, macd_dea, macd_macd)
# 取得當前現金
cash = context.portfolio.cash
# 如果當前有餘額,並且DIFF/DEA均為正,DEFF向上突破DEA
if macd_diff > 0 and macd_dea > 0 and macd_diff > 0:
# 用所有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))
回測詳情:
注:本文章為個人學習筆記,參考了一些書籍與官方教程,不作任何商業用途!