|
|
@@ -0,0 +1,71 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en">
|
|
|
+ <head>
|
|
|
+ <title>Machine Learning Session</title>
|
|
|
+ <meta charset="utf-8">
|
|
|
+ <meta name="viewport" content="width=device-width initial-scale=1 shrink-to-fit=no">
|
|
|
+
|
|
|
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/spectre.css/0.5.9/spectre.min.css" integrity="sha512-9RIcp1f4CE6dEuYX9085tXaEbYd1ap04d2Av1ub/dwuT33WbfbHStDdQ+shKrp5wzZzleh5DOg+7ABSnaQP/nQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/spectre.css/0.5.9/spectre-exp.min.css" integrity="sha512-tY+RWVuYs5HznuXWqssp/bTNsuc+bNEQ6wDew2s0u8cgPcyE0LNLHP+Hqh0sBlLJL7JiYz9vsXfEC2HLKQ6l2w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/spectre.css/0.5.9/spectre-icons.min.css" integrity="sha512-p/19UB+ls7zsYqyFt0S+qh0P05ThDxzQSwtY4Jo01M4OG1ZkiEMHE942OZ4wh86sT5BIrFNhY3aLsQ5pTqVIzg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
|
+
|
|
|
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.6/vue.cjs.js" integrity="sha512-2e2aXOh4/FgkCAUyurkjk0Uw4m1gPcExFwb1Ai4Ajjg97se/FEWfrLG1na4mq8cgOzouc8qLIqsh0EGksPGdqQ==" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
|
|
|
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.0.1/d3.min.js" integrity="sha512-1e0JvdNhUkvFbAURPPlFKcX0mWu/b6GT9e0uve7BW4MFxJ15q4ZCd/Llz+B7/oh+qhw7/l6Q1ObPt6aAuR01+Q==" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
|
|
|
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/simple-statistics/7.7.0/simple-statistics.min.js" referrerpolicy="no-referrer" defer></script>
|
|
|
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/brain.js/2.0.0-beta.2/brain-browser.min.js" integrity="sha512-vErg5ngGA5RHlUwgwCnGIQJ1kQVEljXX2Qv3ytlTCBAZPD9OpiOUGClcFmiBBEnqB+EpLw1V+ek8uIc7iGcr2A==" crossorigin="anonymous" referrerpolicy="no-referrer" defer></script>
|
|
|
+
|
|
|
+ <script src="app.js" defer></script>
|
|
|
+
|
|
|
+ <style>
|
|
|
+ svg {
|
|
|
+ height: 500px;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+ </head>
|
|
|
+ <body>
|
|
|
+ <div class="container">
|
|
|
+ <div class="columns">
|
|
|
+ <div class="column col-3 col-sm-12">
|
|
|
+
|
|
|
+ <div id="websocket">
|
|
|
+ <div class="toast">Connected: {{connected}}</div>
|
|
|
+ <div class="toast toast-success" v-if="info">{{info}}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <hr />
|
|
|
+
|
|
|
+ <div id="ai">
|
|
|
+ <div class="toast" v-if="!training && !trained">Waiting for training</div>
|
|
|
+ <div class="toast toast-warning" v-if="training">Training in progress</div>
|
|
|
+ <div class="toast toast-success" v-if="!training && trained">Training succeeded</div>
|
|
|
+ <div class="toast toast-error" v-if="error">{{error}}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <svg id="network" />
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="column col-9 col-sm-12">
|
|
|
+
|
|
|
+ <div id="graph">
|
|
|
+ <h3>Data</h3>
|
|
|
+ <div id="chart-space">
|
|
|
+ <div class="empty" v-if="candles.length == 0">
|
|
|
+ <div class="empty-icon">
|
|
|
+ <div class="icon icon-message"></div>
|
|
|
+ </div>
|
|
|
+ <p class="empty-title">Waiting for data</p>
|
|
|
+ </div>
|
|
|
+ <svg id="data" />
|
|
|
+ <small v-if="latest">
|
|
|
+ <p class="text-right">Latest: {{latest}}</p>
|
|
|
+ </small>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </body>
|
|
|
+</html>
|
|
|
+
|