updated lambda to reduce traffic
This commit is contained in:
parent
4b92c0f848
commit
f733de1662
@ -46,18 +46,9 @@ def backtest(event, context):
|
|||||||
name = event['body']['name']
|
name = event['body']['name']
|
||||||
user = event['body']['user']
|
user = event['body']['user']
|
||||||
|
|
||||||
till = datetime.datetime.today()
|
days = [90]
|
||||||
fromDate = till - datetime.timedelta(days=90)
|
|
||||||
|
|
||||||
if 'days' in event['body']:
|
if 'days' in event['body']:
|
||||||
fromDate = till - datetime.timedelta(days=event['body']['days'])
|
days = event['body']['days']
|
||||||
else:
|
|
||||||
if 'from' in event['body']:
|
|
||||||
fromDate = datetime.datetime.strptime(event['body']['from'], '%Y%m%d')
|
|
||||||
if 'till' in event['body']:
|
|
||||||
till = datetime.datetime.strptime(event['body']['till'], '%Y%m%d')
|
|
||||||
|
|
||||||
timerange = (till - fromDate).days
|
|
||||||
|
|
||||||
# by default we refresh data
|
# by default we refresh data
|
||||||
refresh = True
|
refresh = True
|
||||||
@ -65,29 +56,24 @@ def backtest(event, context):
|
|||||||
if 'refresh' in event['body']:
|
if 'refresh' in event['body']:
|
||||||
refresh = event['body']['refresh']
|
refresh = event['body']['refresh']
|
||||||
|
|
||||||
print("time range between dates is: {} days".format(timerange))
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
print("schedule back testing from {} till {} for {} with {} vs {}".format(fromDate, till, name,
|
|
||||||
event['body'][
|
|
||||||
'stake_currency'],
|
|
||||||
event['body'][
|
|
||||||
'assets']))
|
|
||||||
|
|
||||||
if "ticker" in event['body']:
|
if "ticker" in event['body']:
|
||||||
ticker = event['body']['ticker']
|
ticker = event['body']['ticker']
|
||||||
else:
|
else:
|
||||||
ticker = '5m'
|
ticker = ['5m']
|
||||||
|
|
||||||
if "local" in event['body'] and event['body']['local']:
|
if "local" in event['body'] and event['body']['local']:
|
||||||
print("running in local mode")
|
print("running in local mode")
|
||||||
|
for x in days:
|
||||||
|
for y in ticker:
|
||||||
|
till = datetime.datetime.today()
|
||||||
|
fromDate = till - datetime.timedelta(days=x)
|
||||||
configuration = generate_configuration(fromDate, till, name, refresh, user, False)
|
configuration = generate_configuration(fromDate, till, name, refresh, user, False)
|
||||||
|
run_backtest(configuration, name, user, y, fromDate, till)
|
||||||
run_backtest(configuration, name, user, ticker, fromDate, till)
|
|
||||||
else:
|
else:
|
||||||
print("running in remote mode")
|
print("running in remote mode")
|
||||||
_submit_job(name, user, ticker, fromDate, till)
|
_submit_job(name, user, ticker, days)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"statusCode": 200
|
"statusCode": 200
|
||||||
@ -102,7 +88,7 @@ def backtest(event, context):
|
|||||||
raise Exception("not a valid event: {}".format(event))
|
raise Exception("not a valid event: {}".format(event))
|
||||||
|
|
||||||
|
|
||||||
def _submit_job(name, user, ticker, fromDate, till):
|
def _submit_job(name, user, ticker, days):
|
||||||
"""
|
"""
|
||||||
submits a new task to the cluster
|
submits a new task to the cluster
|
||||||
|
|
||||||
@ -143,15 +129,11 @@ def _submit_job(name, user, ticker, fromDate, till):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "FREQ_TICKER",
|
"name": "FREQ_TICKER",
|
||||||
"value": "{}".format(ticker)
|
"value": "{}".format(json.dumps(ticker))
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "FREQ_FROM",
|
"name": "FREQ_DAYS",
|
||||||
"value": "{}".format(fromDate.strftime('%Y%m%d'))
|
"value": "{}".format(json.dumps(days))
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "FREQ_TILL",
|
|
||||||
"value": "{}".format(till.strftime('%Y%m%d'))
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "FREQ_STRATEGY",
|
"name": "FREQ_STRATEGY",
|
||||||
@ -407,11 +389,6 @@ def cron(event, context):
|
|||||||
for i in response['Items']:
|
for i in response['Items']:
|
||||||
# fire a message to our queue
|
# fire a message to our queue
|
||||||
|
|
||||||
# we want to evaluate several time spans for the strategy
|
|
||||||
for day in [1, 7, 30, 90]:
|
|
||||||
|
|
||||||
# we want to evaluate several time intervals for each strategy
|
|
||||||
for interval in ['5m', '15m', '30m', '1h']:
|
|
||||||
message = {
|
message = {
|
||||||
"user": i['user'],
|
"user": i['user'],
|
||||||
"name": i['name'],
|
"name": i['name'],
|
||||||
@ -419,8 +396,8 @@ def cron(event, context):
|
|||||||
"stake_currency": i['stake_currency'],
|
"stake_currency": i['stake_currency'],
|
||||||
"local": False,
|
"local": False,
|
||||||
"refresh": True,
|
"refresh": True,
|
||||||
"ticker": interval,
|
"ticker": ['5m', '15m', '30m', '1h', '2h', '4h', '6h', '12h', '1d'],
|
||||||
"days": day
|
"days": [1, 2, 3, 4, 5, 6, 7, 14, 30, 90]
|
||||||
}
|
}
|
||||||
|
|
||||||
print("submitting: {}".format(message))
|
print("submitting: {}".format(message))
|
||||||
|
Loading…
Reference in New Issue
Block a user