From 86de538d9e8ccad2ecded8601a2e9c0f19fd5ff6 Mon Sep 17 00:00:00 2001 From: Gert Wohlgemuth Date: Thu, 24 May 2018 16:58:09 -0700 Subject: [PATCH] fixed some format issues and added better logging --- freqtrade/aws/backtesting_lambda.py | 57 +++++++++++++++------------- freqtrade/tests/aws/test_backtest.py | 12 +++--- 2 files changed, 38 insertions(+), 31 deletions(-) diff --git a/freqtrade/aws/backtesting_lambda.py b/freqtrade/aws/backtesting_lambda.py index 1b6f8cd4a..0099c7143 100644 --- a/freqtrade/aws/backtesting_lambda.py +++ b/freqtrade/aws/backtesting_lambda.py @@ -69,13 +69,13 @@ def backtest(event, context): if "Items" in response and len(response['Items']) > 0: print("backtesting from {} till {} for {} with {} vs {}".format(yesterday, today, name, - response['Items'][0][ + event['body'][ 'stake_currency'], - response['Items'][0]['assets'])) + event['body']['asset'])) content = response['Items'][0]['content'] configuration = { "max_open_trades": 1, - "stake_currency": response['Items'][0]['stake_currency'], + "stake_currency": event['body']['stake_currency'].upper(), "stake_amount": 1, "fiat_display_currency": "USD", "unfilledtimeout": 600, @@ -88,9 +88,11 @@ def backtest(event, context): "enabled": True, "key": "key", "secret": "secret", - "pair_whitelist": list( - map(lambda x: "{}/{}".format(x, response['Items'][0]['stake_currency']).upper(), - response['Items'][0]['assets'])) + "pair_whitelist": [ + "{}/{}".format(event['body']['asset'].upper(), + event['body']['stake_currency']).upper(), + + ] }, "telegram": { "enabled": False, @@ -191,29 +193,32 @@ def cron(event, context): for i in response['Items']: # fire a message to our queue - print(i) - message = { - "user": i['user'], - "name": i['name'] - } + for x in i['assets']: - # triggered over html, let's provide - # a date range for the backtesting - if 'pathParameters' in event: - if 'from' in event['pathParameters']: - message['from'] = event['pathParameters']['from'] - if 'till' in event['pathParameters']: - message['till'] = event['pathParameters']['till'] + message = { + "user": i['user'], + "name": i['name'], + "asset": x, + "stake_currency": i['stake_currency'] + } - serialized = json.dumps(message, use_decimal=True) - # submit item to queue for routing to the correct persistence + # triggered over html, let's provide + # a date range for the backtesting + if 'pathParameters' in event: + if 'from' in event['pathParameters']: + message['from'] = event['pathParameters']['from'] + if 'till' in event['pathParameters']: + message['till'] = event['pathParameters']['till'] - result = client.publish( - TopicArn=topic_arn, - Message=json.dumps({'default': serialized}), - Subject="schedule backtesting", - MessageStructure='json' - ) + serialized = json.dumps(message, use_decimal=True) + # submit item to queue for routing to the correct persistence + + result = client.publish( + TopicArn=topic_arn, + Message=json.dumps({'default': serialized}), + Subject="schedule backtesting", + MessageStructure='json' + ) if 'LastEvaluatedKey' in response: return table.scan( diff --git a/freqtrade/tests/aws/test_backtest.py b/freqtrade/tests/aws/test_backtest.py index 33b5ece3f..28c050b5d 100644 --- a/freqtrade/tests/aws/test_backtest.py +++ b/freqtrade/tests/aws/test_backtest.py @@ -71,7 +71,9 @@ class MyFancyTestStrategy(IStrategy): "user": "GCU4LW2XXZW3A3FM2XZJTEJHNWHTWDKY2DIJLCZJ5ULVZ4K7LZ7D23TG", "name": "MyFancyTestStrategy", "from": "20180401", - "till": "20180501" + "till": "20180501", + "stake_currency": "usdt", + "asset": "ltc" } @@ -163,7 +165,9 @@ class MyFancyTestStrategy(IStrategy): # build sns request request = { "user": "GCU4LW2XXZW3A3FM2XZJTEJHNWHTWDKY2DIJLCZJ5ULVZ4K7LZ7D23TG", - "name": "MyFancyTestStrategy" + "name": "MyFancyTestStrategy", + "stake_currency": "usdt", + "asset": "ltc" } data = json.loads(backtest({ @@ -184,9 +188,7 @@ class MyFancyTestStrategy(IStrategy): data = get_trades({ 'pathParameters': { 'user': "GCU4LW2XXZW3A3FM2XZJTEJHNWHTWDKY2DIJLCZJ5ULVZ4K7LZ7D23TG", - "name": "MyFancyTestStrategy", - 'stake': "USDT", - 'asset': "{}".format(data[0]['pair'].split("/")[0]) + "name": "MyFancyTestStrategy" } }, {})['body'] print(data)