def testCallingTradingRule(self): # config=Config(dict(trading_rules=dict(ewmac=dict(function="systems.provided.example.rules.ewmac_forecast_with_defaults")))) NOTUSEDrawdata, data, NOTUSEDconfig = get_test_object() rawdata = RawData() rules = Rules() system = System([rawdata, rules], data) # Call with default data and config rule = TradingRule(ewmac_forecast_with_defaults) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], -3.280028, 5) # Change the data source rule = TradingRule(( "systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", ["rawdata.get_daily_prices", "rawdata.daily_returns_volatility"], dict())) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], -1.24349, 5) rule = TradingRule( dict( function= "systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", data=[ "rawdata.get_daily_prices", "rawdata.daily_returns_volatility" ], other_args=dict(Lfast=50, Lslow=200))) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], -3.025001057146)
def testCallingTradingRule(self): # config=Config(dict(trading_rules=dict(ewmac=dict(function="systems.provided.example.rules.ewmac_forecast_with_defaults")))) data = csvFuturesData("sysdata.tests") rawdata = RawData() rules = Rules() system = System([rawdata, rules], data) # Call with default data and config rule = TradingRule(ewmac_forecast_with_defaults) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 2.1384223788141838, 5) # Change the data source rule = TradingRule(( "systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", ["rawdata.get_daily_prices", "rawdata.daily_returns_volatility"], dict())) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 0.029376, 5) rule = TradingRule( dict( function= "systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", data=[ "rawdata.get_daily_prices", "rawdata.daily_returns_volatility" ], other_args=dict(Lfast=50, Lslow=200))) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 3.84426755)
def testCallingTradingRule(self): # config=Config(dict(trading_rules=dict(ewmac=dict(function="systems.provided.example.rules.ewmac_forecast_with_defaults")))) data = csvFuturesData("sysdata.tests") rawdata = RawData() rules = Rules() system = System([rawdata, rules], data) # Call with default data and config rule = TradingRule(ewmac_forecast_with_defaults) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.iloc[-1][0], 2.1384223788141838, 5) # Change the data source rule = TradingRule(("systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", ["rawdata.daily_prices", "rawdata.daily_returns_volatility"], dict())) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.iloc[-1][0], 0.029376, 5) rule = TradingRule(dict(function="systems.provided.example.rules.ewmac_forecast_with_defaults_no_vol", data=["rawdata.daily_prices", "rawdata.daily_returns_volatility"], other_args=dict(Lfast=50, Lslow=200))) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.iloc[-1][0], 3.84426755)
def testCarryRule(self): data = csvFuturesData("sysdata.tests") rawdata = FuturesRawData() rules = Rules() system = System([rawdata, rules], data) rule=TradingRule(carry, ["rawdata.daily_annualised_roll", "rawdata.daily_returns_volatility"], dict(smooth_days=90)) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.iloc[-1][0], 0.411686026, 5)
def testCarryRule(self): NOTUSEDrawdata, data, NOTUSEDconfig = get_test_object() rawdata = FuturesRawData() rules = Rules() system = System([rawdata, rules], data) rule = TradingRule(carry2, [ "rawdata.daily_annualised_roll", ], dict(smooth_days=90)) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 0.138302, 5)
def testCarryRule(self): data = csvFuturesData("sysdata.tests") rawdata = FuturesRawData() rules = Rules() system = System([rawdata, rules], data) rule = TradingRule(carry, [ "rawdata.daily_annualised_roll", "rawdata.daily_returns_volatility" ], dict(smooth_days=90)) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.iloc[-1][0], 0.411686026, 5)
def testCarryRule(self): data = csvFuturesData("sysdata.tests") rawdata = FuturesRawData() rules = Rules() system = System([rawdata, rules], data) rule = TradingRule( carry2, [ "rawdata.daily_annualised_roll", ], dict(smooth_days=90)) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 0.37666175, 5)
def testCarryRule(self): NOTUSEDrawdata, data, NOTUSEDconfig = get_test_object() rawdata = FuturesRawData() rules = Rules() system = System([rawdata, rules], data) rule = TradingRule( carry2, [ "rawdata.daily_annualised_roll", ], dict(smooth_days=90)) ans = rule.call(system, "EDOLLAR") self.assertAlmostEqual(ans.tail(1).values[0], 0.138302, 5)