def get_buffered_position_with_multiplier(self, instrument_code, roundpositions=True): """ Get the buffered position :param instrument_code: instrument to get :param roundpositions: Round positions to whole contracts :type roundpositions: bool :returns: Tx1 pd.DataFrame """ self.log.msg("Calculating buffered positions with multiplier") optimal_position = self.get_actual_position(instrument_code) pos_buffers = self.get_actual_buffers_for_position(instrument_code) trade_to_edge = self.parent.config.buffer_trade_to_edge buffered_position = apply_buffer( optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions) buffered_position.columns = ["position"] return buffered_position
def get_buffered_position_with_multiplier(self, instrument_code, roundpositions=True): """ Get the buffered position :param instrument_code: instrument to get :param roundpositions: Round positions to whole contracts :type roundpositions: bool :returns: Tx1 pd.DataFrame """ self.log.msg("Calculating buffered positions with multiplier") optimal_position = self.get_actual_position(instrument_code) pos_buffers = self.get_actual_buffers_for_position(instrument_code) trade_to_edge = self.parent.config.buffer_trade_to_edge buffered_position = apply_buffer( optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions, ) buffered_position.columns = ["position"] return buffered_position
def _get_buffered_position( system, instrument_code, this_stage, roundpositions): this_stage.log.msg("Calculating buffered positions") optimal_position=this_stage.get_notional_position(instrument_code) pos_buffers=this_stage.get_buffers_for_position(instrument_code) trade_to_edge=system.config.buffer_trade_to_edge buffered_position = apply_buffer(optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions) buffered_position.columns=["position"] return buffered_position
def _get_buffered_position_given_optimal_position_and_buffers(self, optimal_position: pd.Series, pos_buffers: pd.DataFrame, roundpositions: bool=True) \ -> pd.Series: self.log.msg("Calculating buffered positions") trade_to_edge = self.config.buffer_trade_to_edge buffered_position = apply_buffer( optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions, ) return buffered_position
def _get_buffered_position(system, instrument_code, this_stage, roundpositions): this_stage.log.msg("Calculating buffered positions") optimal_position = this_stage.get_notional_position( instrument_code) pos_buffers = this_stage.get_buffers_for_position(instrument_code) trade_to_edge = system.config.buffer_trade_to_edge buffered_position = apply_buffer(optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions) buffered_position.columns = ["position"] return buffered_position
def get_buffered_position(self, instrument_code, roundpositions=True): """ Get the buffered position :param instrument_code: instrument to get :param roundpositions: Round positions to whole contracts :type roundpositions: bool :returns: Tx1 pd.DataFrame >>> from systems.basesystem import System >>> from systems.tests.testdata import get_test_object_futures_with_portfolios >>> (portfolio, posobject, combobject, capobject, rules, rawdata, data, config)=get_test_object_futures_with_portfolios() >>> system=System([portfolio, posobject, combobject, capobject, rules, rawdata, Account()], data, config) >>> >>> system.accounts.get_buffered_position("EDOLLAR").tail(3) position 2015-12-09 1 2015-12-10 1 2015-12-11 1 """ self.log.msg("Calculating buffered positions") optimal_position = self.get_notional_position(instrument_code) pos_buffers = self.get_buffers_for_position(instrument_code) trade_to_edge = self.parent.config.buffer_trade_to_edge buffered_position = apply_buffer( optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions, ) buffered_position.columns = ["position"] return buffered_position
def get_buffered_position(self, instrument_code, roundpositions=True): """ Get the buffered position :param instrument_code: instrument to get :param roundpositions: Round positions to whole contracts :type roundpositions: bool :returns: Tx1 pd.DataFrame >>> from systems.basesystem import System >>> from systems.tests.testdata import get_test_object_futures_with_portfolios >>> (portfolio, posobject, combobject, capobject, rules, rawdata, data, config)=get_test_object_futures_with_portfolios() >>> system=System([portfolio, posobject, combobject, capobject, rules, rawdata, Account()], data, config) >>> >>> system.accounts.get_buffered_position("EDOLLAR").tail(3) position 2015-12-09 1 2015-12-10 1 2015-12-11 1 """ self.log.msg("Calculating buffered positions") optimal_position = self.get_notional_position(instrument_code) pos_buffers = self.get_buffers_for_position(instrument_code) trade_to_edge = self.parent.config.buffer_trade_to_edge buffered_position = apply_buffer( optimal_position, pos_buffers, trade_to_edge=trade_to_edge, roundpositions=roundpositions) buffered_position.columns = ["position"] return buffered_position