Пример #1
0
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)
Пример #2
0
    def test_analyseStrategy(self):

        strategies = getStrategies(34, -10)
        strategies[0].analyse()
Пример #3
0
    def test_getStrategies(self):

        strategies = getStrategies(34, -10)
        self.assertEqual(len(strategies), 1)
Пример #4
0
    def test_analyseStrategy(self):

        strategies = getStrategies(34, -10)
        strategies[0].analyse()
Пример #5
0
    def test_getStrategies(self):

        strategies = getStrategies(34, -10)
        self.assertEqual(len(strategies), 1)
Пример #6
0
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)