You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

210 lines
9.0 KiB

{% extends 'base.html' %}
{% if session.tw == 1 %}
{% set active_page = 'strategy_tw' %}
{% else %}
{% set active_page = 'strategy' %}
{% endif %}
{% block title %}Strategy Page{% endblock%}
{% block style %}
<!-- .input-group > input {
border: 2px solid #8E8E8E;
border-radius: 7px;
}
.input-group-lg > input {
border: 2px solid #8E8E8E;
border-radius: 7px;
}
.input-group-lg > select {
border: 2px solid #8E8E8E;
border-radius: 7px;
} -->
<!-- .input-group > span{
bg-dark;
font-bold;
} -->
div.input-group > * {
border-radius: 0px;
}
div.card{
border-radius: 2px;
}
{% endblock style %}
{% block content %}
<div class="container-md">
<div class="container-md m-1">
<div class="card mb-3 p-4">
<div class="card mb-3">
<!-- <img src="{{ url_for("static", filename="img/stock.jpeg") }}" class="card-img-top" alt="..."> -->
<div class="card-body">
<h5 class="card-title text-xl font-bold">{% if session.tw == 1 %}台股{% endif %}投資組合建立步驟 <i class="bi bi-arrow-down-right-circle-fill"></i></h5>
<ol class="list-group list-group-flush list-group-numbered">
<li class="list-group-item"><span class="ps-2">輸入投資組合名稱</span></li>
<li class="list-group-item"><span class="ps-2">選擇所參加的課程或競賽</span></li>
<li class="list-group-item"><span class="ps-2">選擇資產 (可使用搜索功能篩選)</span></li>
<li class="list-group-item"><span class="ps-2">確認資產後按下<span class="badge bg-info">確認資產</span>, 查看資產價格動態圖表</span></li>
<li class="list-group-item"><span class="ps-2">選擇訓練 / 回測數據比例與最佳化目標函數</span></li>
<li class="list-group-item"><span class="ps-2">確認後按下<span class="badge bg-danger">確認建立</span>, 查看回傳訊息</span></li>
</ol>
</div>
</div>
<div class="card">
<div class="card-header font-bold text-lg">
投資組合名稱
</div>
<div class="card-body">
<input if="imput1" name="portName" type="text" class="form-control" placeholder="EX. " required>
</div>
</div>
<div class="card">
<div class="card-header font-bold text-lg">
請選擇所參加的課程/競賽
</div>
<div class="card-body">
<select id="competition" class="form-select" size="1">
{% include 'competitions.html' %}
</select>
</div>
</div>
<hr class="my-3">
<div class="card">
<div class="card-header ">
<div class="py-2 font-bold text-lg">
價格動態圖表
</div>
</div>
<div class="card-body">
<div id="graph"></div>
</div>
</div>
<div class="card">
<div class="card-header d-flex">
<div class="py-2 font-bold text-lg-center">
已選擇的資產
</div>
<div class="btn-group ms-auto">
<button type="button" class="btn btn-outline-primary btn-sm" id="submit-btn">
確認資產
</button>
<button type="button" class="btn btn-outline-danger btn-sm" id="submit-port">
確認建立
</button>
</div>
</div>
<div class="card-body d-flex mb-0">
<input name="assetSelect" class="form-control" list="datalistOptions" id="stockAll" placeholder="輸入資產名稱...">
<datalist id="datalistOptions">
{% if session.tw==0 %}
{% for key, data in data_us.items() -%}
<option value="{{ key|e }}">{{ key|e }} | {{ data|e }}</option>
{% endfor %}
{% endif %}
{% for key, data in data_tw.items() -%}
<option value="{{ key|e }}">{{ key|e }} | {{ data|e }} </option>
{% endfor %}
</datalist>
<button class="btn btn-secondary"
type="button btn-lg"
id="addStockBtn">
加入
</button>
</div>
<hr class="mb-3">
<div>
<ol class="list-group list-group-numbered px-3 pb-3" id="stock-list" type="1">
<li class="list-group-item">
<span class="px-2">2330.TW | 台積電</span>
<a class="btn btn-sm btn-danger float-right delete-btn">
<i class="fas fa-trash-alt"></i>
</a>
</li>
</ol>
</div>
<div class="input-group mt-3">
<span class="input-group-text bg-info">訓練 / 回測數據比</span>
<select id="ratio-select" class="form-select">
<option value="0.5">5:5</option>
<option value="0.6">6:4</option>
<option selected value="0.7">7:3</option>
<option value="0.8">8:2</option>
<option value="0.9">9:1</option>
</select>
</div>
<div class="input-group">
<span class="input-group-text bg-info">最佳化目標函數</span>
<select id="role-select" class="form-select">
<option selected value="max_sharpe">最大化夏普比率</option>
<option value="max_sortino">最大化索提諾比率</option>
<option value="min_volatility">最小化波動率</option>
</select>
</div>
</div>
<div class="modal" id="portModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title font-bold text-xl">確認建立投資組合</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<span>
確認後將會暫時關閉建立按鈕,請等待完成訊息!
</span>
<div class="input-group">
<span class="input-group-text">輸入筆記</span>
<textarea id="commentPort" class="form-control" aria-label="With textarea"></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
<button id="sendPort" type="button" class="btn btn-primary" data-bs-dismiss="modal">確認</button>
</div>
</div>
</div>
</div>
<div class="modal" id="confirmModal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 id='modalTitle' class="modal-title font-bold text-xl">投資組合建立訊息</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<span id="confirmMes">
<div id="sucMes">
<span>投資組合已開始建立,請1分鐘後至結果分析查詢。</span>
</div>
</span>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">確認</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block script %}
<script src="{{ url_for('static', filename='js/addStock.js') }}"></script>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
{% endblock script %}