Updating training October 2024

This commit is contained in:
2024-10-26 12:26:46 -04:00
parent 1c2216597d
commit 9146dca17b
4 changed files with 109 additions and 100 deletions

View File

@@ -11,7 +11,7 @@ namespace MarketData.CNNProcessing
{
public class CNNClient
{
public enum Model{resnet50,resnet50B,inception,vgg16,lenet5,ping};
public enum Model{resnet50,resnet50B,resnet50_20241024_270,inception,vgg16,lenet5,ping};
private static readonly string Alive="Alive";
private readonly HttpClient client = new HttpClient();
private string baseUrl;

View File

@@ -1,90 +1,106 @@
using System;
using System.IO;
using MarketData.DataAccess;
using MarketData.MarketDataModel;
using MarketData.Numerical;
using System.Drawing;
using System.Collections.Generic;
using MarketData.Utils;
using System.Threading.Tasks;
using System.Text;
namespace MarketData.CNNProcessing
{
public class CNNProcessor
{
private static int dayCount=270;
private static int width=128;
private static int height=128;
private CNNProcessor()
{
}
public static void GenerateTraining()
{
TestCases testCases=new TestCases();
TestCases testCases=new TestCases();
DataProcessor dataProcessor=new DataProcessor();
dataProcessor.Width=128;
dataProcessor.Height=128;
int dayCount=270;
// dataProcessor.UseGrayScale=true;
// dataProcessor.PenWidth=1;
dataProcessor.Width=width;
dataProcessor.Height=height;
dataProcessor.PenWidthArray=new float[]{.50f,.75f,1.00f,1.12f,1.25f,1.31f,1.37f,1.50f,1.56f,1.62f,1.75f,1.87f,2.00f};
dataProcessor.PenWidthArray=new float[]{.50f,.75f,1.00f,1.12f,1.25f,1.31f,1.37f,1.50f,1.56f,1.62f,1.75f,1.87f,2.00f};
// dataProcessor.PenWidthArray=new float[]{.50f,.625f,.75f,.875f,1.00f,1.06f,1.12f,1.185f,1.25f,1.28f,1.31f,1.37f,1.435f,1.50f,1.56f,1.59f,1.62f,1.685f,1.75f,1.87f,1.935f,2.00f};
// dataProcessor.PenWidthArray=new float[]{0.550000f,0.600000f,0.650000f,0.700000f,0.750000f,0.800000f,0.850000f,0.900000f,0.950000f,1.000000f,1.050000f,1.100000f,1.150000f,1.200000f,1.250000f,1.300000f,1.350000f,1.400000f,1.450000f,1.500000f,1.550000f,1.600000f,1.650000f,1.700000f,1.750000f,1.800000f,1.850000f,1.900000f,1.950000f,2.000000f}
// dataProcessor.PenWidthArray=new float[]{0.515000f,0.530000f,0.545000f,0.560000f,0.575000f,0.590000f,0.605000f,0.620000f,0.635000f,0.650000f,0.665000f,0.680000f,0.695000f,0.710000f,0.725000f,0.740000f,0.755000f,0.770000f,0.785000f,0.800000f,0.815000f,0.830000f,0.845000f,0.860000f,0.875000f,0.890000f,0.905000f,0.920000f,0.935000f,0.950000f,0.965000f,0.980000f,0.995000f,1.010000f,1.025000f,1.040000f,1.055000f,1.070000f,1.085000f,1.100000f,1.115000f,1.130000f,1.145000f,1.160000f,1.175000f,1.190000f,1.205000f,1.220000f,1.235000f,1.250000f,1.265000f,1.280000f,1.295000f,1.310000f,1.325000f,1.340000f,1.355000f,1.370000f,1.385000f,1.400000f,1.415000f,1.430000f,1.445000f,1.460000f,1.475000f,1.490000f,1.505000f,1.520000f,1.535000f,1.550000f,1.565000f,1.580000f,1.595000f,1.610000f,1.625000f,1.640000f,1.655000f,1.670000f,1.685000f,1.700000f,1.715000f,1.730000f,1.745000f,1.760000f,1.775000f,1.790000f,1.805000f,1.820000f,1.835000f,1.850000f,1.865000f,1.880000f,1.895000f,1.910000f,1.925000f,1.940000f,1.955000f,1.970000f,1.985000f,2.000000f};
// [0] Data - The avoid data
testCases.Add(new TestCase("CENX",DateTime.Parse("03/31/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ICPT",DateTime.Parse("12/31/2019"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("XMTR",DateTime.Parse("01/31/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CDXS",DateTime.Parse("11/30/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("EXTR",DateTime.Parse("08/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("DISCA",DateTime.Parse("02/26/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("DOCN",DateTime.Parse("10/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CCL",DateTime.Parse("07/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NET",DateTime.Parse("11/30/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("F",DateTime.Parse("01/31/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("RCKT",DateTime.Parse("01/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ADT",DateTime.Parse("11/29/2019"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("MOS",DateTime.Parse("03/31/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("FSM",DateTime.Parse("05/31/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ITOS",DateTime.Parse("01/31/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ENPH",DateTime.Parse("01/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("GOSS",DateTime.Parse("10/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("KURA",DateTime.Parse("11/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("WIRE",DateTime.Parse("12/31/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CUBI",DateTime.Parse("12/31/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SWAV",DateTime.Parse("05/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SPSC",DateTime.Parse("10/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("EPC",DateTime.Parse("01/31/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("FTCH",DateTime.Parse("12/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VC",DateTime.Parse("10/31/2019"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VRT",DateTime.Parse("04/30/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("LPG",DateTime.Parse("11/30/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("LI",DateTime.Parse("08/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("INBX",DateTime.Parse("01/31/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("WYNN",DateTime.Parse("02/28/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
// [0] Data
testCases.Add(new TestCase("ICPT",DateTime.Parse("12/31/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("AMD",DateTime.Parse("09/28/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("AVAV",DateTime.Parse("09/28/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ULH",DateTime.Parse("08/31/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ADT",DateTime.Parse("11/29/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VC",DateTime.Parse("11/29/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VIVO",DateTime.Parse("07/31/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("AKS",DateTime.Parse("12/30/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PRO",DateTime.Parse("07/31/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("RCKT",DateTime.Parse("01/31/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ENPH",DateTime.Parse("01/29/2021"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ACLS",DateTime.Parse("11/30/2017"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("KURA",DateTime.Parse("11/30/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PTLA",DateTime.Parse("03/29/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SSRI",DateTime.Parse("07/29/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CORE",DateTime.Parse("09/28/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("OKTA",DateTime.Parse("06/28/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CTMX",DateTime.Parse("03/29/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("TDOC",DateTime.Parse("08/31/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("WRD",DateTime.Parse("05/31/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("FTCH",DateTime.Parse("12/31/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("COKE",DateTime.Parse("10/30/2015"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
dataProcessor.SetOutputFolderPath(@"C:\boneyard\DeepLearning\ModelInputData\0");
dataProcessor.ProcessData(testCases);
testCases.Clear();
// [1] Data
testCases.Add(new TestCase("AG",DateTime.Parse("03/31/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NKTR",DateTime.Parse("11/30/2017"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ABX",DateTime.Parse("03/31/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PTON",DateTime.Parse("09/30/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CLVS",DateTime.Parse("03/31/2017"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("TREE",DateTime.Parse("06/30/2017"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("BTG",DateTime.Parse("04/29/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SIG",DateTime.Parse("03/31/2021"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("COOP",DateTime.Parse("09/30/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("THC",DateTime.Parse("03/29/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ARWR",DateTime.Parse("07/31/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("BAND",DateTime.Parse("06/30/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("TSLA",DateTime.Parse("07/31/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VEDL",DateTime.Parse("08/31/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("GTHX",DateTime.Parse("04/30/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PDD",DateTime.Parse("05/29/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("KRO",DateTime.Parse("01/31/2017"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CPRI",DateTime.Parse("01/29/2021"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SQ",DateTime.Parse("08/31/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("EHTH",DateTime.Parse("02/28/2019"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NVCR",DateTime.Parse("10/30/2020"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("FRPT",DateTime.Parse("07/31/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("TLRD",DateTime.Parse("01/31/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("BVN",DateTime.Parse("05/31/2016"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("DNR",DateTime.Parse("06/29/2018"),dayCount,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
// [1] Data - The good data
testCases.Add(new TestCase("CPG",DateTime.Parse("03/31/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VCEL",DateTime.Parse("02/26/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CLF",DateTime.Parse("01/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("XPO",DateTime.Parse("08/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("RH",DateTime.Parse("10/31/2019"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NEM",DateTime.Parse("05/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("EXPI",DateTime.Parse("08/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("INTR",DateTime.Parse("07/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("TSLA",DateTime.Parse("08/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("WOW",DateTime.Parse("02/26/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CLDR",DateTime.Parse("10/31/2019"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SPOT",DateTime.Parse("03/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ACLS",DateTime.Parse("02/28/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("COCO",DateTime.Parse("04/28/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("DAC",DateTime.Parse("04/30/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CDE",DateTime.Parse("06/28/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("UEC",DateTime.Parse("09/29/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("ERJ",DateTime.Parse("05/28/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SITM",DateTime.Parse("08/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CAVA",DateTime.Parse("06/28/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("APGE",DateTime.Parse("02/29/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("CPRI",DateTime.Parse("01/29/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VST",DateTime.Parse("06/28/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PDD",DateTime.Parse("05/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NVCR",DateTime.Parse("10/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VITL",DateTime.Parse("04/30/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SIG",DateTime.Parse("03/31/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("YPF",DateTime.Parse("11/30/2022"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("BLBD",DateTime.Parse("03/28/2024"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("BAND",DateTime.Parse("06/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("COOP",DateTime.Parse("09/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SPT",DateTime.Parse("07/30/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NTLA",DateTime.Parse("12/31/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("PTON",DateTime.Parse("09/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("VRT",DateTime.Parse("07/31/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NET",DateTime.Parse("08/31/2021"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("NVDA",DateTime.Parse("04/28/2023"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("DOCU",DateTime.Parse("05/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
testCases.Add(new TestCase("SIG",DateTime.Parse("10/30/2020"),270,TestCase.CaseType.Training,TestCase.GenerateType.BollingerBand));
dataProcessor.SetOutputFolderPath(@"C:\boneyard\DeepLearning\ModelInputData\1");
dataProcessor.ProcessData(testCases);
@@ -94,12 +110,11 @@ namespace MarketData.CNNProcessing
{
TestCases testCases=new TestCases();
DataProcessor dataProcessor=new DataProcessor();
dataProcessor.Width=128;
dataProcessor.Height=128;
dataProcessor.Width=width;
dataProcessor.Height=height;
dataProcessor.PenWidth=1;
int dayCount=270;
string[,] s=new string[,]{{"CWH","01/31/2020"},{"DISCA","02/26/2021"},{"ANAB","02/28/2018"},{"SPWR","07/31/2017"},{"DNLI","12/31/2020"},{"IDTI","11/30/2015"},{"PRO","07/31/2019"},{"ACLS","11/30/2017"},{"TDOC","08/31/2018"},{"ATHM","08/31/2017"},{"SIG","10/30/2020"},{"DOCU","05/29/2020"},{"MTDR","03/31/2021"},{"NTLA","12/31/2020"},{"SE","06/30/2020"},{"BAND","06/30/2020"},{"PDD","05/29/2020"},{"CRSP","03/29/2018"},{"DAC","04/30/2021"}};
string[,] s=new string[,]{{"CRTX","07/30/2021"},{"SBSW","12/31/2019"},{"CWH","01/31/2020"},{"DISCA","02/26/2021"},{"DNLI","12/31/2020"},{"SNAP","12/29/2023"},{"FSM","05/31/2024"},{"TSLA","11/30/2021"},{"SWAV","05/31/2023"},{"PCTY","09/30/2021"},{"DCBO","08/31/2021"},{"LPG","11/30/2023"},{"KOD","11/30/2020"},{"NUE","05/28/2021"},{"XPO","08/31/2023"},{"EDU","11/30/2023"},{"BAK","04/30/2021"},{"INSW","11/30/2022"},{"ACLS","02/28/2023"},{"VST","03/28/2024"},{"TRMD","11/30/2022"},{"APGE","02/29/2024"},{"ANF","02/29/2024"},{"BAND","06/30/2020"},{"COIN","12/29/2023"},{"MTDR","03/31/2021"}};
for(int index=0;index<s.Length/2;index++)
{
String symbol=s[index,0];
@@ -120,19 +135,15 @@ namespace MarketData.CNNProcessing
String strPathOutputFile = @"C:\boneyard\DeepLearning\TestPredictAPIOutput\outputcases_europa.csv";
CNNClient cnnClient = new CNNClient("http://10.0.0.73:5000");
// String strPathOutputFile=@"C:\boneyard\DeepLearning\TestPredictAPIOutput\outputcases_ganymede.csv";
//CNNClient cnnClient=new CNNClient("http://192.168.0.151:5000");
if (!cnnClient.Ping())
{
Console.WriteLine("Model server is not reachable.");
return;
}
DataProcessor dataProcessor=new DataProcessor();
dataProcessor.Width=128;
dataProcessor.Height=128;
dataProcessor.Width=width;
dataProcessor.Height=height;
dataProcessor.PenWidth=1;
int dayCount=270;
if(File.Exists(strPathOutputFile))
{
@@ -144,7 +155,7 @@ namespace MarketData.CNNProcessing
}
}
StreamWriter streamWriter=new StreamWriter(new FileStream(strPathOutputFile,FileMode.CreateNew));
string[,] s=new string[,]{{"CWH","01/31/2020"},{"DISCA","02/26/2021"},{"ANAB","02/28/2018"},{"SPWR","07/31/2017"},{"DNLI","12/31/2020"},{"IDTI","11/30/2015"},{"PRO","07/31/2019"},{"ACLS","11/30/2017"},{"TDOC","08/31/2018"},{"ATHM","08/31/2017"},{"SIG","10/30/2020"},{"DOCU","05/29/2020"},{"MTDR","03/31/2021"},{"NTLA","12/31/2020"},{"SE","06/30/2020"},{"BAND","06/30/2020"},{"PDD","05/29/2020"},{"CRSP","03/29/2018"},{"DAC","04/30/2021"}};
string[,] s=new string[,]{{"CRTX","07/30/2021"},{"SBSW","12/31/2019"},{"CWH","01/31/2020"},{"DISCA","02/26/2021"},{"DNLI","12/31/2020"},{"SNAP","12/29/2023"},{"FSM","05/31/2024"},{"TSLA","11/30/2021"},{"SWAV","05/31/2023"},{"PCTY","09/30/2021"},{"DCBO","08/31/2021"},{"LPG","11/30/2023"},{"KOD","11/30/2020"},{"NUE","05/28/2021"},{"XPO","08/31/2023"},{"EDU","11/30/2023"},{"BAK","04/30/2021"},{"INSW","11/30/2022"},{"ACLS","02/28/2023"},{"VST","03/28/2024"},{"TRMD","11/30/2022"},{"APGE","02/29/2024"},{"ANF","02/29/2024"},{"BAND","06/30/2020"},{"COIN","12/29/2023"},{"MTDR","03/31/2021"}};
streamWriter.WriteLine("Symbol,Date,Response,Response,Raw Response");
MDTrace.WriteLine(LogLevel.DEBUG,"Symbol,Date,Response,Response,Raw Response");
for(int index=0;index<s.Length/2;index++)
@@ -154,10 +165,9 @@ namespace MarketData.CNNProcessing
DateTime purchaseDate=DateTime.Parse(s[index,1]);
TestCase testCase=new TestCase(symbol,purchaseDate,dayCount,TestCase.CaseType.Test,TestCase.GenerateType.BollingerBand,TestCase.OutputType.OutputStream);
dataProcessor.ProcessData(testCase);
// testCase.Responses.Add(cnnClient.Predict(CNNClient.Model.lenet5,testCase.LastStream));
testCase.Responses.Add(cnnClient.Predict(CNNClient.Model.resnet50,testCase.LastStream));
// testCase.Responses.Add(cnnClient.Predict(CNNClient.Model.resnet50,testCase.LastStream));
testCase.Responses.Add(cnnClient.Predict(CNNClient.Model.resnet50_20241024_270,testCase.LastStream));
String strPredictionResponse=testCase.LastResponse;
String strPredictionResult=strPredictionResponse.Substring(strPredictionResponse.IndexOf("-->")+3);
int result=int.Parse(Utility.BetweenString(strPredictionResult,"[[","]"));
@@ -194,11 +204,4 @@ namespace MarketData.CNNProcessing
Console.WriteLine("");
}
}
//TestCases minerviniCases=new TestCases();
//minerviniCases.Add(new TestCase("SNAP",DateTime.Parse("07-08-2020"),DateTime.Parse("09-13-2020")));
//minerviniCases.Add(new TestCase("TAL",DateTime.Parse("03-05-2020"),DateTime.Parse("06-01-2020")));
//minerviniCases.Add(new TestCase("TSM",DateTime.Parse("02-25-2020"),DateTime.Parse("07-01-2020")));
//minerviniCases.Add(new TestCase("TGT",DateTime.Parse("05-15-2020"),DateTime.Parse("08-03-2020")));
//dataProcessor.ProcessData(minerviniCases);
}

View File

@@ -166,7 +166,8 @@ namespace MarketData.CNNProcessing
for(int noiseIndex=0;noiseIndex<NoiseArray.Length;noiseIndex++)
{
double noise=NoiseArray[noiseIndex];
String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
// String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
String strPathFileName=CreateFileName(strFolderPath,testCase.Symbol,testCase.DayCount,index,penIndex,noiseIndex,testCase.TypeCase,testCase.TypeGenerate,testCase.PurchaseDate);
testCase.PathFileNames.Add(strPathFileName);
ProcessPriceData(testCase,penWidth,noise);
}
@@ -182,7 +183,8 @@ namespace MarketData.CNNProcessing
for(int noiseIndex=0;noiseIndex<NoiseArray.Length;noiseIndex++)
{
double noise=NoiseArray[noiseIndex];
String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
// String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
String strPathFileName=CreateFileName(strFolderPath,testCase.Symbol,testCase.DayCount,index,penIndex,noiseIndex,testCase.TypeCase,testCase.TypeGenerate,testCase.PurchaseDate);
testCase.PathFileNames.Add(strPathFileName);
ProcessBollingerBandData(testCase,penWidth,noise);
}
@@ -200,7 +202,8 @@ namespace MarketData.CNNProcessing
for(int noiseIndex=0;noiseIndex<NoiseArray.Length;noiseIndex++)
{
double noise=NoiseArray[noiseIndex];
String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
// String strPathFileName=String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}.jpg",strFolderPath,testCase.Symbol,index,penIndex,noiseIndex,testCase.TypeCase.ToString(),testCase.TypeGenerate.ToString(),Utility.DateToLong(testCase.PurchaseDate));
String strPathFileName=CreateFileName(strFolderPath,testCase.Symbol,testCase.DayCount,index,penIndex,noiseIndex,testCase.TypeCase,testCase.TypeGenerate,testCase.PurchaseDate);
testCase.PathFileNames.Add(strPathFileName);
ProcessBollingerBandData(testCase,movingAverage,penWidth,noise);
}
@@ -210,6 +213,11 @@ namespace MarketData.CNNProcessing
}
}
private String CreateFileName(String strFolderPath,String symbol,int dayCount,int index,int penIndex,int noiseIndex,TestCase.CaseType caseType,TestCase.GenerateType generateType,DateTime purchaseDate)
{
return String.Format("{0}{1}_{2}_{3}_{4}_{5}_{6}_{7}_{8}d.jpg",strFolderPath,symbol,index,penIndex,noiseIndex,caseType.ToString(),generateType.ToString(),Utility.DateToLong(purchaseDate),dayCount);
}
private void ProcessBollingerBandData(TestCase testCase,int movingAverageDays,float penWidth,double noise)
{
int bufferDays=60;
@@ -238,9 +246,9 @@ namespace MarketData.CNNProcessing
double movingAverageClose=dmaPricesByDate[bollingerBandElement.Date].AVGPrice;
close[bollingerBands.Count-index-1]=(float)Math.Log(movingAverageClose)*1000.00f;
}
Numerics.ZeroForNaN(ref k);
Numerics.ZeroForNaN(ref l);
Numerics.ZeroForNaN(ref close);
Numerics.ZeroForNaNOrInfinity(ref k);
Numerics.ZeroForNaNOrInfinity(ref l);
Numerics.ZeroForNaNOrInfinity(ref close);
float maxY=Math.Max(Numerics.Max(ref l),Math.Max(Numerics.Max(ref close),Numerics.Max(ref k)));
float minY=Math.Min(Numerics.Min(ref l),Math.Min(Numerics.Min(ref close),Numerics.Min(ref k)))-5f;
float maxX=close.Length;
@@ -324,9 +332,9 @@ namespace MarketData.CNNProcessing
l[bollingerBands.Count-index-1]=(float)Math.Log(bollingerBandElement.L)*1000.00f;
close[bollingerBands.Count-index-1]=(float)Math.Log(bollingerBandElement.Close)*1000.00f;
}
Numerics.ZeroForNaN(ref k);
Numerics.ZeroForNaN(ref l);
Numerics.ZeroForNaN(ref close);
Numerics.ZeroForNaNOrInfinity(ref k);
Numerics.ZeroForNaNOrInfinity(ref l);
Numerics.ZeroForNaNOrInfinity(ref close);
float maxY=Math.Max(Numerics.Max(ref l),Math.Max(Numerics.Max(ref close),Numerics.Max(ref k)));
float minY=Math.Min(Numerics.Min(ref l),Math.Min(Numerics.Min(ref close),Numerics.Min(ref k)))-5f;
float maxX=close.Length;
@@ -373,14 +381,12 @@ namespace MarketData.CNNProcessing
if(testCase.TypeOutput.Equals(TestCase.OutputType.OutputFile))
{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Writing {0}",testCase.ToString()));
if(File.Exists(testCase.LastPathFileName))File.Delete(testCase.LastPathFileName);
if(UseGrayScale)imageHelper.SaveGrayScaleJPG(testCase.LastPathFileName);
else imageHelper.SaveBlackAndWhiteJPG(testCase.LastPathFileName);
}
else
{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Streaming {0}",testCase.ToString()));
testCase.Streams.Add(imageHelper.SaveBlackAndWhiteJPG());
}
}
@@ -397,7 +403,7 @@ namespace MarketData.CNNProcessing
{
priceArray[index]=(float)Math.Log((double)priceArray[index])*1000.00f;
}
Numerics.ZeroForNaN(ref priceArray);
Numerics.ZeroForNaNOrInfinity(ref priceArray);
float maxY=Numerics.Max(ref priceArray);
float minY=Numerics.Min(ref priceArray)-5f;
@@ -424,14 +430,12 @@ namespace MarketData.CNNProcessing
if(testCase.TypeOutput.Equals(TestCase.OutputType.OutputFile))
{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Writing {0}",testCase.ToString()));
if(File.Exists(testCase.LastPathFileName))File.Delete(testCase.LastPathFileName);
if(UseGrayScale)imageHelper.SaveGrayScaleJPG(testCase.LastPathFileName);
else imageHelper.SaveBlackAndWhiteJPG(testCase.LastPathFileName);
}
else
{
// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Streaming {0}",testCase.ToString()));
testCase.Streams.Add(imageHelper.SaveBlackAndWhiteJPG());
}
}

View File

@@ -34,12 +34,14 @@ namespace MarketData.CNNProcessing
this.TypeCase=caseType;
TypeGenerate=generateType;
TypeOutput=outputType;
DayCount=dayCount;
}
public String Symbol{get;set;}
public DateTime PurchaseDate{get;set;}
public DateTime HistDate{get;set;}
public CaseType TypeCase{get;set;}
public int DayCount{get;private set;}
public GenerateType TypeGenerate{get;set;}
public OutputType TypeOutput{get;set;}
public List<Stream> Streams{get{return streams;}} // This will get set automatically depending on OutputType