当前位置: 首页>>代码示例>>Python>>正文


Python DataManager.get方法代码示例

本文整理汇总了Python中DataManager.DataManager.get方法的典型用法代码示例。如果您正苦于以下问题:Python DataManager.get方法的具体用法?Python DataManager.get怎么用?Python DataManager.get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DataManager.DataManager的用法示例。


在下文中一共展示了DataManager.get方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: calc

# 需要导入模块: from DataManager import DataManager [as 别名]
# 或者: from DataManager.DataManager import get [as 别名]
 def calc(self, DataManager, ticker, date):
     quote_list = DataManager.get(ticker, date, -20)
     quote = quote_list.pop()
     hist_volume = []
     for q in quote_list[-20:]:
         hist_volume.append(q.volume)
     return quote.volume > mean(hist_volume) * 2
开发者ID:darwinbeing,项目名称:PythonBacktester,代码行数:9,代码来源:IndicatorLibrary.py

示例2: TradeManager

# 需要导入模块: from DataManager import DataManager [as 别名]
# 或者: from DataManager.DataManager import get [as 别名]
class TradeManager(object):

##
## This is the entry point for TradeManager
## TradeManager uses the IndicatorLibrary and the indicators that were passed in through the config file to 
## determine if any of the indictors return true.
## It then calls the DataManager with the start and end dates, historical data period and mark out period
## to collect price information for a given symbol.

    def __init__(self, config, logger):
        self.config = config
        self.logger = logger
        
        self.start_date = config.get_value('PORTFOLIO','startdate')
        self.end_date = config.get_value('PORTFOLIO', 'enddate')
        self.name = self.config.get_value('PORTFOLIO', 'name')
        self.prevent_overlaps = {}  ## used to disallow same ticker+markout overlapping
        
        ## Get the list of indicators from the config file, then start IndicatorLibrary
        self.list_of_user_indicators = [s.upper() for s in Util.str_to_list(config.get_value('STRATEGY', 'indicators'))]
        if not self.list_of_user_indicators:
            self.logger.critical("Unable to determine list of user indicators")
            sys.exit(1)
        self.strategy = IndicatorLibrary(self.list_of_user_indicators)
        
        self.list_of_markout_periods = []
        try:
            for x in Util.str_to_list(config.get_value('STRATEGY', 'markout_periods')):
                self.list_of_markout_periods.append(int(x))
        except:
            self.logger.critical("Non integer-type value provided in STRATEGY.markout_periods")
            sys.exit(1)
        max_markout_periods = max(self.list_of_markout_periods)
        
        max_historical_periods = self.strategy.periods_required()
        
      
        self.dm = DataManager(logger, self.start_date,self.end_date,max_historical_periods,max_markout_periods)
        self.__trade_log_fn()
        
    def __trade_log_fn(self):
        strategy_name = self.config.get_value('STRATEGY','name')
        ext = self.config.get_value('PORTFOLIO', 'trade_log_file_ext')
        self.trade_log_name = ".".join([str(self.start_date),str(self.end_date),self.name,strategy_name,ext])
        print self.trade_log_name
        self.config.put('trade_log_file_name', self.trade_log_name)
    ##
    ## This method calls DataManager to get the future date and price for each markout period for a given symbol
    ##
    def run(self):
        
        with open(self.trade_log_name, 'w') as trade_log:
            trade_log.write('date,ticker,mo_period,entry_price,exit_price,exit_date\n')
            self.logger.info("Writing to " + self.trade_log_name)
            
            list_of_user_tickers = [s.upper() for s in Util.str_to_list(self.config.get_value("PORTFOLIO", "tickers"))]
            if not list_of_user_tickers:
                self.logger.critical("Unable to determine list of user-provided tickers")
                sys.exit(1)
            
            for trade_date in self.dm.trading_dates():
                for ticker in list_of_user_tickers:
                    if (self.strategy.calc(self.dm, ticker, trade_date)):
                        today_price = self.dm.get(ticker, trade_date).close
                        for mo_period in self.list_of_markout_periods:
                            future_date = self.dm.date_by_offset(trade_date, mo_period)
                            overlap_key = ticker + str(mo_period)
                            if overlap_key in self.prevent_overlaps and trade_date <= self.prevent_overlaps[overlap_key]:
                                continue
                            self.prevent_overlaps[overlap_key] = future_date
                            future_price = self.dm.get(ticker, future_date).close
                            trade_log.write("{0},{1},{2},{3},{4},{5}\n".format(trade_date,ticker,mo_period,today_price,future_price,future_date))
        return True
开发者ID:darwinbeing,项目名称:PythonBacktester,代码行数:75,代码来源:TradeManager.py


注:本文中的DataManager.DataManager.get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。