diff --git a/1 Month Test Result.png b/1 Month Test Result.png index be88b96a..5b29a739 100644 Binary files a/1 Month Test Result.png and b/1 Month Test Result.png differ diff --git a/README.MD b/README.MD index 54e8ffec..3043e6fc 100644 --- a/README.MD +++ b/README.MD @@ -41,4 +41,12 @@ docker compose up -d ## Usage -Navigate to [localhost:5000](http://127.0.0.1:5000). \ No newline at end of file +Navigate to [localhost:5000](http://127.0.0.1:5000). + +Register an account with a username and password +Add as many stock symbols as you would like to the watched stocks +Sit back and let the AI day trade for you +This will auto trade once per day based on the AI predicted stock movement 5 days in advance +------------------- +If you would like to simulate your watched stocks on the last 30 days of stock history you can run the 'Run 1Mo Evaluation' +This will simulate, such as the real algorithm, the stock trade's per day on your watched stocks so you can get a feel for your watched stocks \ No newline at end of file diff --git a/WebServer/Components/Pages/Home.razor b/WebServer/Components/Pages/Home.razor index 330d0e54..6121ab48 100644 --- a/WebServer/Components/Pages/Home.razor +++ b/WebServer/Components/Pages/Home.razor @@ -40,19 +40,37 @@ +

Actions

-
- - +
+ + +
+
+
+ +
+ @TestResults +
+ @resultError
-
+
+ +
- - @TestResults +

Watched Stocks

+
+
+ @foreach (Stock cur in Session.TrackedStocks){ +
+

@cur.Symbol

+

AI Predicted Score: @cur.Score

+ +
+ }
- @resultError
} @@ -60,23 +78,10 @@ @if (Session != null){
- -
-
-

Current Signal

-
- @foreach (Stock cur in Session.TrackedStocks){ -
-

@cur.Symbol

-

AI Predicted Score: @cur.Score

- -
- } -
-

Trade History

+

Auto Trade History

@foreach (PurchasedStock cur in Session.TradeHistory){
@@ -205,8 +210,15 @@ string TestResults = ""; async Task RunTest(){ + + // Make sure a session exists + if (Session == null){ + return; + } + + // Simulate 1 month D683_Project_Test tests = new D683_Project_Test(aiModule); - float score = await tests.Simulate(); + float score = await tests.Simulate(Session.TrackedStocks); TestResults = $"The amount of money the AI did better than the SPY: ${score} or { score / 10 }% better"; } diff --git a/WebServer/Components/Pages/Home.razor.css b/WebServer/Components/Pages/Home.razor.css index 98d6028a..823eb7e3 100644 --- a/WebServer/Components/Pages/Home.razor.css +++ b/WebServer/Components/Pages/Home.razor.css @@ -62,25 +62,36 @@ .signalBlock { display: flex; + width: min-content; + margin-top: 5px;; } .signalBlock > :nth-child(1) { border: solid #040 1px; border-radius: 15px; - padding: 0px 20px; + padding: 5px 20px; background-color: greenyellow; + align-self: center; + margin: 0; + width: 100px; } .signalBlock > :nth-child(2) { padding: 0 30px; font-size: 30px; align-content: center; + margin: 0; + text-wrap: nowrap; } .signalBlock > :nth-child(3) { - color: white; - padding: 0 30px; - width: 40px; + padding: 10px 30px; border: solid #000 1px; border-radius: 15px; -} \ No newline at end of file + background-color: #F44; + text-align: center; +} + + .signalBlock > :nth-child(3):hover { + background-color: #f00; + } \ No newline at end of file diff --git a/WebServer/Controllers/ProjectTest.cs b/WebServer/Controllers/ProjectTest.cs index 8764a5d6..07a4543a 100644 --- a/WebServer/Controllers/ProjectTest.cs +++ b/WebServer/Controllers/ProjectTest.cs @@ -1,7 +1,5 @@ using Controllers.PythonInterop; using Entities; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Razor.TagHelpers; namespace Controllers.ProjectTest { @@ -10,20 +8,6 @@ namespace Controllers.ProjectTest { // TESTING Starting Money float Money = 1000; - // TESTING WATCH STOCK LIST - List TrackedStocks = new List() { - new Stock(){ Symbol="NVDA" }, - new Stock(){ Symbol="INTL" }, - new Stock(){ Symbol="AAPL" }, - new Stock(){ Symbol="SHOP" }, - new Stock(){ Symbol="PANW" }, - new Stock(){ Symbol="BBBY" }, - new Stock(){ Symbol="REAL" }, - new Stock(){ Symbol="W" }, - new Stock(){ Symbol="ROKU" }, - new Stock(){ Symbol="FUN" } - }; - // TESTING STOCK HISTORY List StockHistory = new List(); @@ -32,7 +16,7 @@ namespace Controllers.ProjectTest { _aiModule = aiModule; } - public async Task Simulate() { + public async Task Simulate(List TrackedStocks) { float StartingMoney = Money; // Run once for each day 30 days straight for (int i=30; i>=0; i--) { diff --git a/WebServer/Entities/LoginSession.cs b/WebServer/Entities/LoginSession.cs index a384c1f0..bff517a2 100644 --- a/WebServer/Entities/LoginSession.cs +++ b/WebServer/Entities/LoginSession.cs @@ -1,6 +1,6 @@ namespace Entities { - class loginSession { + public class loginSession { public string UserName { get; set; } = ""; public float Money { get; set; } = 0; public List TrackedStocks { get; set; } = new List(); diff --git a/WebServer/Entities/PurchasedStock.cs b/WebServer/Entities/PurchasedStock.cs index bf1f6f3e..7332acfe 100644 --- a/WebServer/Entities/PurchasedStock.cs +++ b/WebServer/Entities/PurchasedStock.cs @@ -1,6 +1,6 @@ namespace Entities { - class PurchasedStock { + public class PurchasedStock { public string Symbol { get; set; } = ""; public float Quantity { get; set; } = 0; public float PurchasePrice { get; set; } = 0; diff --git a/WebServer/Entities/Stock.cs b/WebServer/Entities/Stock.cs index 077ef013..9be8c522 100644 --- a/WebServer/Entities/Stock.cs +++ b/WebServer/Entities/Stock.cs @@ -1,6 +1,6 @@ namespace Entities { - class Stock { + public class Stock { public string Symbol { get; set; } = ""; public float Score { get; set; } = 0; }