From e87b7bafb2ddcd3a5aba027ce8afe528bc9f9805 Mon Sep 17 00:00:00 2001 From: SeanChenTaipei Date: Thu, 9 Mar 2023 13:36:12 +0800 Subject: [PATCH] cool --- cool.json | 1 + main.py | 35 +++++++++++++++++++---------------- static/js/addStock.js | 19 +++++++++++-------- templates/strategy_tw.html | 34 +++++++++++++++++++++++++--------- 4 files changed, 56 insertions(+), 33 deletions(-) create mode 100644 cool.json diff --git a/cool.json b/cool.json new file mode 100644 index 0000000..0051421 --- /dev/null +++ b/cool.json @@ -0,0 +1 @@ +"{\"AAPL\":{\"1591142400000\":0.03,\"1593648000000\":0.21,\"1596412800000\":0.4,\"1598918400000\":0.4,\"1601510400000\":0.27,\"1604016000000\":0.13,\"1606780800000\":0.0,\"1609372800000\":0.03,\"1612224000000\":0.0,\"1614816000000\":0.0,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.0,\"1625184000000\":0.18,\"1627948800000\":0.2,\"1630454400000\":0.21,\"1633046400000\":0.0,\"1635724800000\":0.0,\"1638316800000\":0.4,\"1640908800000\":0.25,\"1643673600000\":0.3,\"1646265600000\":0.0,\"1648771200000\":0.0,\"1651536000000\":0.02,\"1654128000000\":0.0,\"1656979200000\":0.0,\"1659484800000\":0.0,\"1661990400000\":0.21,\"1664755200000\":0.02,\"1667260800000\":0.0,\"1669852800000\":0.0,\"1672704000000\":0.0,\"1675296000000\":0.0},\"A\":{\"1591142400000\":0.13,\"1593648000000\":0.0,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.13,\"1604016000000\":0.12,\"1606780800000\":0.31,\"1609372800000\":0.05,\"1612224000000\":0.0,\"1614816000000\":0.0,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.22,\"1625184000000\":0.45,\"1627948800000\":0.41,\"1630454400000\":0.34,\"1633046400000\":0.19,\"1635724800000\":0.0,\"1638316800000\":0.0,\"1640908800000\":0.0,\"1643673600000\":0.0,\"1646265600000\":0.0,\"1648771200000\":0.0,\"1651536000000\":0.0,\"1654128000000\":0.0,\"1656979200000\":0.25,\"1659484800000\":0.49,\"1661990400000\":0.2,\"1664755200000\":0.13,\"1667260800000\":0.27,\"1669852800000\":0.31,\"1672704000000\":0.29,\"1675296000000\":0.43},\"ABBV\":{\"1591142400000\":0.0,\"1593648000000\":0.0,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.0,\"1604016000000\":0.0,\"1606780800000\":0.0,\"1609372800000\":0.13,\"1612224000000\":0.16,\"1614816000000\":0.0,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.0,\"1625184000000\":0.0,\"1627948800000\":0.0,\"1630454400000\":0.0,\"1633046400000\":0.0,\"1635724800000\":0.0,\"1638316800000\":0.0,\"1640908800000\":0.3,\"1643673600000\":0.38,\"1646265600000\":0.6,\"1648771200000\":0.6,\"1651536000000\":0.6,\"1654128000000\":0.47,\"1656979200000\":0.6,\"1659484800000\":0.0,\"1661990400000\":0.0,\"1664755200000\":0.0,\"1667260800000\":0.3,\"1669852800000\":0.35,\"1672704000000\":0.3,\"1675296000000\":0.0},\"AFL\":{\"1591142400000\":0.0,\"1593648000000\":0.0,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.0,\"1604016000000\":0.0,\"1606780800000\":0.55,\"1609372800000\":0.13,\"1612224000000\":0.24,\"1614816000000\":0.3,\"1617580800000\":0.43,\"1620086400000\":0.43,\"1622678400000\":0.4,\"1625184000000\":0.0,\"1627948800000\":0.0,\"1630454400000\":0.0,\"1633046400000\":0.0,\"1635724800000\":0.0,\"1638316800000\":0.0,\"1640908800000\":0.0,\"1643673600000\":0.33,\"1646265600000\":0.4,\"1648771200000\":0.34,\"1651536000000\":0.1,\"1654128000000\":0.53,\"1656979200000\":0.15,\"1659484800000\":0.23,\"1661990400000\":0.11,\"1664755200000\":0.13,\"1667260800000\":0.44,\"1669852800000\":0.34,\"1672704000000\":0.41,\"1675296000000\":0.57},\"TSLA\":{\"1591142400000\":0.23,\"1593648000000\":0.6,\"1596412800000\":0.6,\"1598918400000\":0.6,\"1601510400000\":0.6,\"1604016000000\":0.6,\"1606780800000\":0.15,\"1609372800000\":0.6,\"1612224000000\":0.6,\"1614816000000\":0.34,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.0,\"1625184000000\":0.0,\"1627948800000\":0.0,\"1630454400000\":0.23,\"1633046400000\":0.53,\"1635724800000\":0.6,\"1638316800000\":0.6,\"1640908800000\":0.45,\"1643673600000\":0.0,\"1646265600000\":0.0,\"1648771200000\":0.06,\"1651536000000\":0.2,\"1654128000000\":0.0,\"1656979200000\":0.0,\"1659484800000\":0.0,\"1661990400000\":0.33,\"1664755200000\":0.6,\"1667260800000\":0.0,\"1669852800000\":0.0,\"1672704000000\":0.0,\"1675296000000\":0.0},\"AMZN\":{\"1591142400000\":0.6,\"1593648000000\":0.19,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.0,\"1604016000000\":0.02,\"1606780800000\":0.0,\"1609372800000\":0.0,\"1612224000000\":0.0,\"1614816000000\":0.0,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.0,\"1625184000000\":0.0,\"1627948800000\":0.0,\"1630454400000\":0.0,\"1633046400000\":0.0,\"1635724800000\":0.0,\"1638316800000\":0.0,\"1640908800000\":0.0,\"1643673600000\":0.0,\"1646265600000\":0.0,\"1648771200000\":0.0,\"1651536000000\":0.0,\"1654128000000\":0.0,\"1656979200000\":0.0,\"1659484800000\":0.28,\"1661990400000\":0.15,\"1664755200000\":0.12,\"1667260800000\":0.0,\"1669852800000\":0.0,\"1672704000000\":0.0,\"1675296000000\":0.0},\"GOOGL\":{\"1591142400000\":0.0,\"1593648000000\":0.0,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.0,\"1604016000000\":0.08,\"1606780800000\":0.0,\"1609372800000\":0.07,\"1612224000000\":0.0,\"1614816000000\":0.35,\"1617580800000\":0.57,\"1620086400000\":0.57,\"1622678400000\":0.38,\"1625184000000\":0.37,\"1627948800000\":0.39,\"1630454400000\":0.22,\"1633046400000\":0.28,\"1635724800000\":0.4,\"1638316800000\":0.0,\"1640908800000\":0.0,\"1643673600000\":0.0,\"1646265600000\":0.0,\"1648771200000\":0.0,\"1651536000000\":0.0,\"1654128000000\":0.0,\"1656979200000\":0.0,\"1659484800000\":0.0,\"1661990400000\":0.0,\"1664755200000\":0.0,\"1667260800000\":0.0,\"1669852800000\":0.0,\"1672704000000\":0.0,\"1675296000000\":0.0},\"SPY\":{\"1591142400000\":0.0,\"1593648000000\":0.0,\"1596412800000\":0.0,\"1598918400000\":0.0,\"1601510400000\":0.0,\"1604016000000\":0.04,\"1606780800000\":0.0,\"1609372800000\":0.0,\"1612224000000\":0.0,\"1614816000000\":0.0,\"1617580800000\":0.0,\"1620086400000\":0.0,\"1622678400000\":0.0,\"1625184000000\":0.0,\"1627948800000\":0.0,\"1630454400000\":0.0,\"1633046400000\":0.0,\"1635724800000\":0.0,\"1638316800000\":0.0,\"1640908800000\":0.0,\"1643673600000\":0.0,\"1646265600000\":0.0,\"1648771200000\":0.0,\"1651536000000\":0.08,\"1654128000000\":0.0,\"1656979200000\":0.0,\"1659484800000\":0.0,\"1661990400000\":0.0,\"1664755200000\":0.0,\"1667260800000\":0.0,\"1669852800000\":0.0,\"1672704000000\":0.0,\"1675296000000\":0.0}}" \ No newline at end of file diff --git a/main.py b/main.py index 0d59bbb..df29234 100644 --- a/main.py +++ b/main.py @@ -20,26 +20,26 @@ pd.options.plotting.backend = "plotly" # PARAMETERS CONFIGS = { - # "ENV": "development", - # "DEBUG": True, + "ENV": "development", + "DEBUG": True, "SECRET_KEY": os.urandom(30), # Set the secret key for session authentication "PERMANENT_SESSION_LIFETIME": timedelta(minutes=60) } -SQL_CONFIG = dict( - database= os.getenv("PGDATABASE"), - user=os.getenv("PGUSER"), - host=os.getenv("PGHOST"), - port=os.getenv("PGPORT"), - password=os.getenv("PGPASSWORD") -) # SQL_CONFIG = dict( -# database="railway", -# user="postgres", -# host="containers-us-west-103.railway.app", -# port="5913", -# password="gv5Mh7cPjCm9YTjAmsYD" +# database= os.getenv("PGDATABASE"), +# user=os.getenv("PGUSER"), +# host=os.getenv("PGHOST"), +# port=os.getenv("PGPORT"), +# password=os.getenv("PGPASSWORD") # ) -# SQL_CONFIG = { +SQL_CONFIG = dict( + database="railway", + user="postgres", + host="containers-us-west-103.railway.app", + port="5913", + password="gv5Mh7cPjCm9YTjAmsYD" +) +# SQL_CONFIG = {@ # 'database': "tpm", # 'user': "hsienchen", # 'host': "127.0.0.1", @@ -280,9 +280,12 @@ def buildPort(): ts = int(request.form.get('ts')) ts = datetime.fromtimestamp(ts/1000) role = request.form.get('role') - ratio = float(request.form.get('ratio')) + lookback = int(request.form.get('lookback')) + backtest = int(request.form.get('frequency')) + gamma = float(request.form.get('gamma'))/100 comment = request.form.get('comment') stock_list = json.loads(request.form.get('stockList')) + ratio=0.7 # Algorithm MVO print("-"*10) diff --git a/static/js/addStock.js b/static/js/addStock.js index d9dbdf8..74246b7 100644 --- a/static/js/addStock.js +++ b/static/js/addStock.js @@ -54,14 +54,15 @@ $stockList.on('click', '.delete-btn', function(){ deleteStockItem(itemIndex); // console.log(stockList); }); -// $stockList.on('click', '.delete-btn', function(event) { -// // Get index of item to delete -// const $deleteBtn = $(event.target); -// const itemIndex = $deleteBtn.parent().index(); -// // Delete item from list -// deleteStockItem(itemIndex); -// }); +function changeFunc(value) { + console.log(value); + if (value === 'quadratic_utility') { + $('#gamma').css("display", "flex"); + } else { + $('#gamma').css("display", "none"); + } +} // Event listener for submit button click @@ -107,8 +108,10 @@ $sendPort.click(function(event) { name: $('input[name=portName]').val(), ts: Date.now(), comp: $('#competition').val(), - ratio: $('#ratio-select').val(), + lookback: $('#lookback').val(), + frequency: $('#opt-frequency').val(), role: $('#role-select').val(), + gamma: $('#util-gamma').val(), comment: $commentPort.val(), stockList: JSON.stringify(stockList) }, diff --git a/templates/strategy_tw.html b/templates/strategy_tw.html index 494fd4b..9c1c8a1 100644 --- a/templates/strategy_tw.html +++ b/templates/strategy_tw.html @@ -136,7 +136,7 @@ div.card{
- 策略參數選擇 + 投組最佳化配置
- 訓練 / 回測數據比 - + + + + + +
+
+ 再平衡頻率 +
最佳化目標函數 - +
+