繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168財經網>人物頻道>帖子

請教如何在回測時快速每分鍾獲取當前所有股票的價格

作者/adadsfd 2019-10-03 22:00 0 來源: FX168財經網人物頻道

嘗試每分鍾用get_bars函數獲取所有股票的當前價格,但是回測執行若幹次之後就沒反應了。

close_data = get_bars(g.stocks, fields=['date','open','high','low','close','volume'], unit='1m',  count=3,include_now=False)   print(close_data['000001.XSHE']['close'][-1]) 
就是上面這行代碼。數據獲取沒幾次就沒反應了。
有什麼方法能優化一下嗎? 其實我的需求很簡單,每分鍾看一次所有股票的價格,然後再做進一步的決策。 



下面是我的代碼:


# 導入函數庫 
from jqdata import * 

# 初始化函數,設定基準等等 
def initialize(context): 
   # 設定滬深300作為基準 
   set_benchmark('000300.XSHG') 
   # 開啟動態複權模式(真實價格) 
   set_option('use_real_price', True) 
   # 輸出內容到日誌 log.info() 
   log.info('初始函數開始運行且全局只運行一次') 
   # 過濾掉order系列API產生的比error級別低的log 
   # log.set_level('order', 'error') 

   ### 股票相關設定 ### 
   # 股票類每筆交易時的手續費是:買入時傭金萬分之三,賣出時傭金萬分之三加千分之一印花稅, 每筆交易傭金最低扣5塊錢 
   set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock') 

   ## 運行函數(reference_security為運行時間的參考標的;傳入的標的只做種類區分,因此傳入'000300.XSHG'或'510300.XSHG'是一樣的) 
     # 開盤前運行 
   run_daily(before_market_open, time='before_open', reference_security='000300.XSHG') 
     # 開盤時運行 
   run_daily(market_open, time='every_bar') 
     # 收盤後運行 
   #run_daily(after_market_close, time='after_close', reference_security='000300.XSHG') 

## 開盤前運行函數 
def before_market_open(context): 
   # 輸出運行時間 
   log.info('函數運行時間(before_market_open):' str(context.current_dt.time())) 
   g.stocks = list(get_all_securities(types=['stock'], date=str(context.current_dt.date())).index) 
   g.last_close = [] 
   #print(g.stocks) 
   for stock in g.stocks: 
       close_data =  attribute_history(stock, 1, '1d', ['close']) 
       g.last_close.append( float(close_data['close'][0])) 


## 開盤時運行函數 
def market_open(context): 
   log.info('函數運行時間(market_open):' str(context.current_dt.time())) 
    
   security = g.stocks; 
     
   close_data = get_bars(g.stocks, fields=['date','open','high','low','close','volume'], unit='1m',  count=3,include_now=F
   print(close_data['000001.XSHE']['close'][-1])  #即使把這行注釋掉,也只是多執行幾次,並沒有明顯改善。


## 收盤後運行函數 

def after_market_close(context): 
   log.info(str('函數運行時間(after_market_close):' str(context.current_dt.time()))) 
   #得到當天所有成交記錄 
   trades = get_trades() 
   for _trade in trades.values(): 
       log.info('成交記錄:' str(_trade)) 
   log.info('一天結束') 
   log.info('##############################################################') 
 

分享到:
舉報財經168客戶端下載

全部回複

0/140

投稿 您想發表你的觀點和看法?

更多人氣分析師

  • 張亦巧

    人氣2208文章4145粉絲45

    暫無個人簡介信息

  • 張迎妤

    人氣1904文章3305粉絲34

    個人專注於行情技術分析,消息面解讀剖析,給予您第一時間方向...

  • 指導老師

    人氣1864文章4423粉絲52

    暫無個人簡介信息

  • 李冉晴

    人氣2320文章3821粉絲34

    李冉晴,專業現貸實盤分析師。

  • 梁孟梵

    人氣2184文章3177粉絲39

    qq:2294906466 了解群指導添加微信mfmacd

  • 王啟蒙現貨黃金

    人氣312文章3408粉絲8

    本人做分析師以來,並專注於貴金屬投資市場,尤其是在現貨黃金...

  • 金泰鉻J

    人氣2328文章3925粉絲51

    投資問答解咨詢金泰鉻V/信tgtg67即可獲取每日的實時資訊、行情...

  • 金算盤

    人氣2696文章7761粉絲125

    高級分析師,混過名校,廝殺於股市和期貨、證券市場多年,專注...

  • 金帝財神

    人氣4760文章8329粉絲119

    本文由資深分析師金帝財神微信:934295330,指導黃金,白銀,...

FX168財經

FX168財經學院

FX168財經

FX168北美