def setUp(self): home_currency = "GBP" position_type = "short" currency_pair = "GBPUSD" units = Decimal("2000") ticker = TickerMock() self.position = Position(home_currency, position_type, currency_pair, units, ticker)
def add_new_position( self, position_type, currency_pair, units, ticker ): ps = Position( self.home_currency, position_type, currency_pair, units, ticker ) self.positions[currency_pair] = ps
class TestLongEURUSDPosition(unittest.TestCase): """ Unit tests that cover going short EUR/USD with an account denominated currency of GBP, using 2,000 units of EUR/USD. """ def setUp(self): home_currency = "GBP" position_type = "short" currency_pair = "EURUSD" units = Decimal("2000") ticker = TickerMock() self.position = Position(home_currency, position_type, currency_pair, units, ticker) def test_calculate_init_pips(self): pos_pips = self.position.calculate_pips() self.assertEqual(pos_pips, Decimal("-0.00015")) def test_calculate_init_profit_base(self): profit_base = self.position.calculate_profit_base() self.assertEqual(profit_base, Decimal("-0.19954")) def test_calculate_init_profit_perc(self): profit_perc = self.position.calculate_profit_perc() self.assertEqual(profit_perc, Decimal("-0.00998")) def test_calculate_updated_values(self): """ Check that after the bid/ask prices move, that the updated pips, profit and percentage profit calculations are correct. """ prices = self.position.ticker.prices prices["GBPUSD"] = { "bid": Decimal("1.50486"), "ask": Decimal("1.50586") } prices["USDGBP"] = { "bid": Decimal("0.66451"), "ask": Decimal("0.66407") } prices["EURUSD"] = { "bid": Decimal("1.07811"), "ask": Decimal("1.07827") } self.position.update_position_price() # Check pips pos_pips = self.position.calculate_pips() self.assertEqual(pos_pips, Decimal("0.00005")) # Check profit base profit_base = self.position.calculate_profit_base() self.assertEqual(profit_base, Decimal("0.06641")) # Check profit percentage profit_perc = self.position.calculate_profit_perc() self.assertEqual(profit_perc, Decimal("0.00332"))
def setUp(self): home_currency = "GBP" position_type = "short" currency_pair = "GBPUSD" units = Decimal("2000") ticker = TickerMock() self.position = Position( home_currency, position_type, currency_pair, units, ticker )
class TestLongEURUSDPosition(unittest.TestCase): """ Unit tests that cover going short EUR/USD with an account denominated currency of GBP, using 2,000 units of EUR/USD. """ def setUp(self): home_currency = "GBP" position_type = "short" currency_pair = "EURUSD" units = Decimal("2000") ticker = TickerMock() self.position = Position( home_currency, position_type, currency_pair, units, ticker ) def test_calculate_init_pips(self): pos_pips = self.position.calculate_pips() self.assertEqual(pos_pips, Decimal("-0.00015")) def test_calculate_init_profit_base(self): profit_base = self.position.calculate_profit_base() self.assertEqual(profit_base, Decimal("-0.19954")) def test_calculate_init_profit_perc(self): profit_perc = self.position.calculate_profit_perc() self.assertEqual(profit_perc, Decimal("-0.00998")) def test_calculate_updated_values(self): """ Check that after the bid/ask prices move, that the updated pips, profit and percentage profit calculations are correct. """ prices = self.position.ticker.prices prices["GBPUSD"] = {"bid": Decimal( "1.50486"), "ask": Decimal("1.50586")} prices["USDGBP"] = {"bid": Decimal( "0.66451"), "ask": Decimal("0.66407")} prices["EURUSD"] = {"bid": Decimal( "1.07811"), "ask": Decimal("1.07827")} self.position.update_position_price() # Check pips pos_pips = self.position.calculate_pips() self.assertEqual(pos_pips, Decimal("0.00005")) # Check profit base profit_base = self.position.calculate_profit_base() self.assertEqual(profit_base, Decimal("0.06641")) # Check profit percentage profit_perc = self.position.calculate_profit_perc() self.assertEqual(profit_perc, Decimal("0.00332"))
def add_new_position(self, side, market, units, exposure, add_price, remove_price): ps = Position(side, market, units, exposure, add_price, remove_price) self.positions[market] = ps
def add_new_position(self, position_type, market, units, exposure, bid, ask): ps = Position(position_type, market, units, exposure, bid, ask) self.positions[market] = ps