本文整理汇总了Python中pyswing.utils.Logger.Logger类的典型用法代码示例。如果您正苦于以下问题:Python Logger类的具体用法?Python Logger怎么用?Python Logger使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Logger类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: analyseRule
def analyseRule(self):
"""
?
"""
Logger.log(logging.INFO, "Analysing Rule", {"scope":__name__, "Rule":self._ruleTableName})
equityCount = self._getEquityCount()
potentialRuleMatches = self._getPotentialRuleMatches()
connection = sqlite3.connect(pyswing.database.pySwingDatabase)
cursor = connection.cursor()
try:
query = "select count(1) from '%s' where Match = 1;" % self._ruleTableName
cursor.execute(query)
actualRuleMatches = int(cursor.fetchone()[0])
query = "delete from Rules where Rule = '%s'" % self._ruleTableName
cursor.execute(query)
# Unit Testing is easier if the value is stored...
self._matchesPerDay = actualRuleMatches / potentialRuleMatches * equityCount
query = "insert into Rules values('%s',%s)" % (self._ruleTableName, self._matchesPerDay)
cursor.execute(query)
except sqlite3.OperationalError:
Logger.log(logging.INFO, "Error Analysing Rule", {"scope":__name__, "Rule":self._ruleTableName})
connection.commit()
connection.close()
示例2: getActiveStrategies
def getActiveStrategies():
connection = sqlite3.connect(pyswing.database.pySwingDatabase)
query = "select rule1, rule2, exit, type, rule3, meanResultPerTrade, medianResultPerTrade, totalProfit, numberOfTrades, sharpeRatio, maximumDrawdown from ActiveStrategy where active = 1"
strategies = None
cursor = connection.cursor()
try:
cursor.execute(query)
strategies = cursor.fetchall()
except sqlite3.OperationalError:
Logger.log(logging.INFO, "Error Getting Strategies", {"scope":__name__})
connection.close()
strategiesList = []
for strategyRow in strategies:
strategy = Strategy(strategyRow[0], strategyRow[1], strategyRow[2], strategyRow[3], strategyRow[4])
strategiesList.append(strategy)
strategy.meanResultPerTrade = strategyRow[5]
strategy.medianResultPerTrade = strategyRow[6]
strategy.totalProfit = strategyRow[7]
strategy.numberOfTrades = strategyRow[8]
strategy.sharpeRatio = strategyRow[9]
strategy.maximumDrawdown = strategyRow[10]
return strategiesList
示例3: askHorse
def askHorse(self, latestDate):
self.tradeDetails = []
connection = sqlite3.connect(pyswing.database.pySwingDatabase)
query = ("select r1.Code, r1.Date "
"from '%s' r1 "
" inner join '%s' r2 on r2.Match = 1 and r1.Date = r2.Date and r1.Code = r2.Code "
" inner join '%s' r3 on r3.Match = 1 and r1.Date = r3.Date and r1.Code = r3.Code "
"where r1.Match = 1 and r1.Date = '%s'") % (self._rule1, self._rule2, self._rule3, latestDate)
trades = None
cursor = connection.cursor()
try:
cursor.execute(query)
# print(query)
trades = cursor.fetchall()
except sqlite3.OperationalError:
Logger.log(logging.INFO, "Error Getting Trades", {"scope":__name__})
connection.close()
for trade in trades:
tradeSummary = ("%s %s using %s") % (self._type, trade[0], self._exit)
strategyDetail = ("Strategy: Mean: %s, Median: %s, Total: %s, Trades: %s, Sharpe Ratio: %s, Drawdown: %s") % (str(self.meanResultPerTrade), str(self.medianResultPerTrade), str(self.totalProfit), str(self.numberOfTrades), str(self.sharpeRatio), str(self.maximumDrawdown))
rulesDetail = ("Rules: '%s', '%s' and '%s'") % (self._rule1, self._rule2, self._rule3)
tradeDetail = "%s (%s)\n%s" % (tradeSummary, strategyDetail, rulesDetail)
self.tradeDetails.append(tradeDetail)
Logger.log(logging.INFO, "Suggested Trade", {"scope":__name__, "tradeDetail":tradeDetail})
return len(self.tradeDetails) > 0
示例4: sendEmail
def sendEmail(tradeDetails):
message = "Hello!\n\n"
for trade in tradeDetails:
message += trade
message += "\n\n"
message += "x"
subject = None
if len(tradeDetails) > 0:
subject = "Horse Says Trade!"
else:
subject = "Horse Says Go Back To Bed!"
header = 'From: %s\n' % "[email protected]"
header += 'To: %s\n' % ','.join(["[email protected]"])
header += 'Subject: %s\n\n' % subject
message = header + message
server = smtplib.SMTP("smtp.gmail.com:587")
server.starttls()
server.login("[email protected]", "abcABC1234567890")
problems = server.sendmail("[email protected]", ["[email protected]"], message)
server.quit()
if problems:
Logger.log(logging.ERROR, "Error Sending E-mail", {"scope": __name__, "problems": str(problems)})
示例5: setUpClass
def setUpClass(self):
Logger.pushLogData("unitTesting", __name__)
forceWorkingDirectory()
pyswing.globals.potentialRuleMatches = None
pyswing.globals.equityCount = None
pyswing.database.overrideDatabase("output/TestMarketRule.db")
pyswing.constants.pySwingStartDate = datetime.datetime(2014, 1, 1)
deleteFile(pyswing.database.pySwingDatabase)
args = "-n %s" % ("unitTesting")
createDatabase(args.split())
pretendDate = datetime.datetime(2015, 9, 1)
with patch.object(Equity, '_getTodaysDate', return_value=pretendDate) as mock_method:
self._equity = Equity("WOR.AX")
self._equity.importData()
indicatorADI = IndicatorADI()
indicatorADI.updateIndicator()
self.rule = MarketRule("Indicator_ADI", "ADI > 0")
self.rule.evaluateRule()
示例6: setUpClass
def setUpClass(self):
Logger.pushLogData("unitTesting", __name__)
forceWorkingDirectory()
pyswing.globals.potentialRuleMatches = None
pyswing.globals.equityCount = None
pyswing.database.overrideDatabase("output/TestDatabase.db")
pyswing.constants.pySwingStartDate = datetime.datetime(2015, 1, 1)
deleteFile(pyswing.database.pySwingDatabase)
deleteFile(pyswing.database.pySwingTestDatabase)
args = "-n %s" % ("unitTesting")
createDatabase(args.split())
pretendDate = datetime.datetime(2015, 7, 1)
with patch.object(Equity, '_getTodaysDate', return_value=pretendDate) as mock_method:
args = "-n unitTest".split()
importData(args)
args = "-n unitTest".split()
updateIndicators(args)
args = "-n unitTest".split()
evaluateRules(args)
args = "-n unitTest".split()
analyseRules(args)
args = "-n unitTest".split()
calculateExitValues(args)
示例7: importData
def importData(self):
"""
Import (New) Data from Yahoo.
"""
start = self._getLatestDate()
end = self._getTodaysDate()
Logger.log(logging.INFO, "Loading Data", {"scope":__name__, "tickerCode":self._tickerCode, "start":str(start), "end":str(end)})
self._data = DataReader(self._tickerCode, "yahoo", start, end)
self._data['Code'] = self._tickerCode
for item in ['Open', 'High', 'Low']:
self._data[item] = self._data[item] * self._data['Adj Close'] / self._data['Close']
self._data.drop('Close', axis=1, inplace=True)
self._data.rename(columns={'Adj Close':'Close'}, inplace=True)
self._data['Volume'] = self._data['Volume'].astype(float)
connection = sqlite3.connect(pyswing.database.pySwingDatabase)
query = "insert or replace into Equities (Date, Open, High, Low, Volume, Close, Code) values (?,?,?,?,?,?,?)"
connection.executemany(query, self._data.to_records(index=True))
connection.commit()
connection.close()
示例8: __init__
def __init__(self):
"""
?
"""
Logger.log(logging.DEBUG, "Log Object Creation", {"scope": __name__})
self._rules = self._getRules()
示例9: test_lotsOfLoggers
def test_lotsOfLoggers(self):
aLogger = Logger._getLogger()
anotherLogger = Logger._getLogger()
self.assertIsNotNone(aLogger, "Check A Logger")
self.assertIsNotNone(anotherLogger, "Check Another Logger")
self.assertEqual(len(anotherLogger.handlers), 1, "Check Handlers")
示例10: createDatabase
def createDatabase(argv):
"""
Create Database.
:param argv: Command Line Parameters.
-n = Name
Example:
python -m pyswing.CreateDatabase -n asx
"""
Logger.log(logging.INFO, "Log Script Call", {"scope":__name__, "arguments":" ".join(argv)})
Logger.pushLogData("script", __name__)
marketName = ""
try:
shortOptions = "n:dh"
longOptions = ["marketName=", "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
if marketName != "":
pyswing.database.initialiseDatabase(marketName)
databaseFilePath = pyswing.database.pySwingDatabase
scriptFilePath = pyswing.constants.pySwingDatabaseScript
Logger.log(logging.INFO, "Creating Database", {"scope":__name__, "databaseFilePath":databaseFilePath, "scriptFilePath":scriptFilePath})
query = open(pyswing.constants.pySwingDatabaseScript, 'r').read()
connection = sqlite3.connect(databaseFilePath)
c = connection.cursor()
c.executescript(query)
connection.commit()
c.close()
connection.close()
TeamCity.setBuildResultText("Created Database")
else:
Logger.log(logging.ERROR, "Missing Options", {"scope": __name__, "options": str(argv)})
usage()
sys.exit(2)
示例11: importData
def importData(argv):
"""
Import Share Data.
:param argv: Command Line Parameters.
-n = Name
Example:
python -m pyswing.ImportData -n asx
"""
Logger.log(logging.INFO, "Log Script Call", {"scope":__name__, "arguments":" ".join(argv)})
Logger.pushLogData("script", __name__)
marketName = ""
try:
shortOptions = "n:dh"
longOptions = ["marketName=", "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
if marketName != "":
pyswing.database.initialiseDatabase(marketName)
Logger.log(logging.INFO, "Import Market Data", {"scope":__name__, "market":marketName})
tickerCodesRelativeFilePath = "resources/%s.txt" % (marketName)
market = Market(tickerCodesRelativeFilePath)
for index, row in market.tickers.iterrows():
equity = Equity(row[0])
equity.importData()
TeamCity.setBuildResultText("Imported Data from Yahoo")
else:
Logger.log(logging.ERROR, "Missing Options", {"scope": __name__, "options": str(argv)})
usage()
sys.exit(2)
示例12: setUpClass
def setUpClass(self):
Logger.pushLogData("unitTesting", __name__)
forceWorkingDirectory()
pyswing.database.pySwingDatabase = None
pyswing.database.pySwingDatabaseInitialised = False
pyswing.database.pySwingDatabaseOverridden = False
示例13: generateHistoricTradesForActiveStrategies
def generateHistoricTradesForActiveStrategies(argv):
"""
Generate (in the HistoricTrades database table) Historic Trades for the Active Strategies.
Empty the database table and then fill it with the historic trades for all the active strategies.
:param argv: Command Line Parameters.
-n = Name
Example:
python -m pyswing.GenerateHistoricTradesForActiveStrategies -n asx
"""
Logger.log(logging.INFO, "Log Script Call", {"scope":__name__, "arguments":" ".join(argv)})
Logger.pushLogData("script", __name__)
marketName = ""
try:
shortOptions = "n:dh"
longOptions = ["marketName=", "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
if marketName != "":
pyswing.database.initialiseDatabase(marketName)
Logger.log(logging.INFO, "Generate Historic Trades for Active Strategies", {"scope":__name__, "market":marketName})
emptyHistoricTradesTable()
strategies = getActiveStrategies()
for strategy in strategies:
strategy.generateHistoricTrades()
else:
Logger.log(logging.ERROR, "Missing Options", {"scope": __name__, "options": str(argv)})
usage()
sys.exit(2)
示例14: analyseRules
def analyseRules(argv):
"""
Analyse Rules.
:param argv: Command Line Parameters.
-n = Name
Example:
python -m pyswing.AnalyseRules -n asx
"""
Logger.log(logging.INFO, "Log Script Call", {"scope":__name__, "arguments":" ".join(argv)})
Logger.pushLogData("script", __name__)
marketName = ""
try:
shortOptions = "n:dh"
longOptions = ["marketName=", "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
if marketName != "":
pyswing.database.initialiseDatabase(marketName)
Logger.log(logging.INFO, "Analyse Rules", {"scope":__name__, "market":marketName})
rules = getRules()
for ruleString in rules:
rule = Rule(ruleString)
rule.analyseRule()
TeamCity.setBuildResultText("Analysed Rules")
else:
Logger.log(logging.ERROR, "Missing Options", {"scope": __name__, "options": str(argv)})
usage()
sys.exit(2)
示例15: setUpClass
def setUpClass(self):
Logger.pushLogData("unitTesting", __name__)
forceWorkingDirectory()
pyswing.database.overrideDatabase("output/TestCalculateExitValues.db")
pyswing.constants.pySwingStartDate = datetime.datetime(2015, 1, 1)
deleteFile(pyswing.database.pySwingDatabase)
args = "-n %s" % ("unitTesting")
createDatabase(args.split())