def analyseStrategies(argv): """ Analyse Strategies. :param argv: Command Line Parameters. -n = Name -s = Strategy Name -r = Minimum Return per Trade -t = Minimum Number of Trades Example: python -m pyswing.AnalyseStrategies -n asx -s v4.0 -r 1.0 -t 500 """ Logger.log(logging.INFO, "Log Script Call", { "scope": __name__, "arguments": " ".join(argv) }) Logger.pushLogData("script", __name__) marketName = "" returnPerTrade = "" numberOfTrades = "" try: shortOptions = "n:r:s:t:dh" longOptions = [ "marketName=", "return=", "strategy=", "trades=", "debug", "help" ] opts, __ = getopt.getopt(argv, shortOptions, longOptions) except getopt.GetoptError as e: Logger.log(logging.ERROR, "Error Reading Options", { "scope": __name__, "exception": str(e) }) usage() sys.exit(2) for opt, arg in opts: if opt in ("-d", "--debug"): Logger().setLevel(logging.DEBUG) elif opt in ("-h", "--help"): print("?") usage() sys.exit() elif opt in ("-n", "--marketName"): marketName = arg elif opt in ("-r", "--return"): returnPerTrade = arg elif opt in ("-s", "--strategy"): pyswing.constants.pySwingStrategy = arg elif opt in ("-t", "--trades"): numberOfTrades = arg if marketName != "" and numberOfTrades != "" and returnPerTrade != "" and pyswing.constants.pySwingStrategy: pyswing.database.initialiseDatabase(marketName) Logger.log( logging.INFO, "Analyse Strategies", { "scope": __name__, "market": marketName, "numberOfTrades": numberOfTrades, "returnPerTrade": returnPerTrade, "strategy": pyswing.constants.pySwingStrategy }) strategies = getStrategies(numberOfTrades, returnPerTrade) for strategy in strategies: strategy.analyse() TeamCity.setBuildResultText("Analysed Strategies") else: Logger.log(logging.ERROR, "Missing Options", { "scope": __name__, "options": str(argv) }) usage() sys.exit(2)
def test_analyseStrategy(self): strategies = getStrategies(34, -10) strategies[0].analyse()
def test_getStrategies(self): strategies = getStrategies(34, -10) self.assertEqual(len(strategies), 1)
def analyseStrategies(argv): """ Analyse Strategies. :param argv: Command Line Parameters. -n = Name -s = Strategy Name -r = Minimum Return per Trade -t = Minimum Number of Trades Example: python -m pyswing.AnalyseStrategies -n asx -s v4.0 -r 1.0 -t 500 """ Logger.log(logging.INFO, "Log Script Call", {"scope": __name__, "arguments": " ".join(argv)}) Logger.pushLogData("script", __name__) marketName = "" returnPerTrade = "" numberOfTrades = "" try: shortOptions = "n:r:s:t:dh" longOptions = ["marketName=", "return=", "strategy=", "trades=", "debug", "help"] opts, __ = getopt.getopt(argv, shortOptions, longOptions) except getopt.GetoptError as e: Logger.log(logging.ERROR, "Error Reading Options", {"scope": __name__, "exception": str(e)}) usage() sys.exit(2) for opt, arg in opts: if opt in ("-d", "--debug"): Logger().setLevel(logging.DEBUG) elif opt in ("-h", "--help"): print("?") usage() sys.exit() elif opt in ("-n", "--marketName"): marketName = arg elif opt in ("-r", "--return"): returnPerTrade = arg elif opt in ("-s", "--strategy"): pyswing.constants.pySwingStrategy = arg elif opt in ("-t", "--trades"): numberOfTrades = arg if marketName != "" and numberOfTrades != "" and returnPerTrade != "" and pyswing.constants.pySwingStrategy: pyswing.database.initialiseDatabase(marketName) Logger.log( logging.INFO, "Analyse Strategies", { "scope": __name__, "market": marketName, "numberOfTrades": numberOfTrades, "returnPerTrade": returnPerTrade, "strategy": pyswing.constants.pySwingStrategy, }, ) strategies = getStrategies(numberOfTrades, returnPerTrade) for strategy in strategies: strategy.analyse() TeamCity.setBuildResultText("Analysed Strategies") else: Logger.log(logging.ERROR, "Missing Options", {"scope": __name__, "options": str(argv)}) usage() sys.exit(2)