資源簡(jiǎn)介
日內(nèi)回轉(zhuǎn)交易是指投資者就同一個(gè)標(biāo)的(如股票)在同一個(gè)交易日內(nèi)各完成多次買進(jìn)和賣出的行為,其目的為維持股票數(shù)量不變,通過日內(nèi)K線操縱,使可用余額增多,股票成本降低的一種盈利模式。
代碼片段和文件信息
#?coding=utf-8
from?__future__?import?print_function?absolute_import?unicode_literals
try:
????import?talib
except:
????print(‘請(qǐng)安裝TA-Lib庫‘)
from?gm.api?import?*
‘‘‘
本策略基于掘金量化交易平臺(tái)?網(wǎng)址:www.myquant.cn
本策略首先買入SHSE.600000股票10000股
隨后根據(jù)60s的數(shù)據(jù)來計(jì)算MACD(12269)線并在MACD>0的時(shí)候買入100股MACD<0的時(shí)候賣出100股
但每日操作的股票數(shù)不超過原有倉(cāng)位并于收盤前把倉(cāng)位調(diào)整至開盤前的倉(cāng)位
回測(cè)數(shù)據(jù)為:SHSE.600000的60s數(shù)據(jù)
回測(cè)時(shí)間為:2017-09-01?08:00:00到2017-10-01?16:00:00
‘‘‘
def?init(context):
????#?設(shè)置標(biāo)的股票
????context.symbol?=?‘SHSE.600048‘
????#?用于判定第一個(gè)倉(cāng)位是否成功開倉(cāng)
????context.first?=?0
????#?訂閱浦發(fā)銀行?bar頻率為1min
????subscribe(symbols=context.symbol?frequency=‘300s‘?count=35)
????#?日內(nèi)回轉(zhuǎn)每次交易100股
????context.trade_n?=?1000
????#?獲取昨今天的時(shí)間
????context.day?=?[0?0]
????#?用于判斷是否觸發(fā)了回轉(zhuǎn)邏輯的計(jì)時(shí)
????context.ending?=?0
def?on_bar(context?bars):
????bar?=?bars[0]
????if?context.first?==?0:
????????#?最開始配置倉(cāng)位
????????#?需要保持的總倉(cāng)位
????????context.total?=?10000
????????#?購(gòu)買10000股浦發(fā)銀行股票
????????order_volume(symbol=context.symbol?volume=context.total?side=PositionSide_Long
?????????????????????order_type=OrderType_Market?position_effect=PositionEffect_Open)
????????print(context.symbol?‘以市價(jià)單開多倉(cāng)10000股‘)
????????context.first?=?1.
????????day?=?bar.bob.strftime(‘%Y-%m-%d‘)
????????context.day[-1]?=?day[-2:]
????????#?每天的倉(cāng)位操作
????????context.turnaround?=?[0?0]
????????return
????#?更新最新的日期
????day?=?bar.bob.strftime(‘%Y-%m-%d?%H:%M:%S‘)
????context.day[0]?=?bar.bob.day
????#?若為新的一天獲取可用于回轉(zhuǎn)的昨倉(cāng)
????if?context.day[0]?!=?context.day[-1]:
????????context.ending?=?0
????????context.turnaround?=?[0?0]
????if?context.ending?==?1:
????????return
????#?若有可用的昨倉(cāng)則操作
????if?context.total?>=?0:
????????#?獲取時(shí)間序列數(shù)據(jù)
????????symbol?=?bar[‘symbol‘]
????????recent_data?=?context.data(symbol=symbol?frequency=‘300s‘?count=35?fields=‘close‘)
????????#?計(jì)算MACD線
????????macd?signal?hist=?talib.MACD(recent_data[‘close‘].values)
????????ma_5=talib.MA(recent_data[‘close‘].values5)
????????ma_20=talib.MA(recent_data[‘close‘].values20)
????????#?根據(jù)MACD>0則開倉(cāng)小于0則平倉(cāng)
????????if?macd[-1]<0?and?signal[-1]<0?and?macd[-2]?signal[-1]?and?ma_5[-1]>ma_20[-1]:
????????#if??macd[-2]??signal[-1]:
????????#if?macd[-1]>0:
????????????#?多空單向操作都不能超過昨倉(cāng)位否則最后無法調(diào)回原倉(cāng)位
????????????if?context.turnaround[0]?+?context.trade_n?
評(píng)論
共有 條評(píng)論