diff --git a/angular/src/app/app.component.ts b/angular/src/app/app.component.ts
index bf1ca0d..23b77f2 100644
--- a/angular/src/app/app.component.ts
+++ b/angular/src/app/app.component.ts
@@ -62,6 +62,12 @@ export class AppComponent {
]
},
+ {
+ id: '41', name: 'Chart', url: '', subItems: [
+ { id: '19', name: 'Smart Stock Forecasting', route: '/stockForecasting' },
+ ]
+ },
+
{
id: '10', name: 'Kanban', subItems: [
{ id: '/kanban/sentiment-analysis/', name: 'Smart Recommendation' },
diff --git a/angular/src/app/app.routes.ts b/angular/src/app/app.routes.ts
index ea89a2c..c0a8eb9 100644
--- a/angular/src/app/app.routes.ts
+++ b/angular/src/app/app.routes.ts
@@ -16,6 +16,7 @@ import {imageEditorRoutes} from './image-editor';
import { documentRoutes } from './document-editor';
import { SmartRichTextEditor } from './rich-text-editor/smart-rich-text-editor.component';
import { AdaptiveDataStructureComponent } from './treegrid/adaptive-data-structure/adaptive-data-structure.component';
+import { StockForecastComponent } from './chart/stockForecasting/stockForecast.component';
export const routes: Routes = [
{
path: '',component: SmartTextArea
@@ -45,6 +46,9 @@ export const routes: Routes = [
{
path: 'smart-treegrid', component: AdaptiveDataStructureComponent
},
+{
+ path: 'stockForecasting', component: StockForecastComponent
+},
...sheetRoutes,...queryRoutes,...imageEditorRoutes,...documentRoutes,
];
@NgModule({
diff --git a/angular/src/app/chart/data/amzn-data.json b/angular/src/app/chart/data/amzn-data.json
new file mode 100644
index 0000000..afdbe95
--- /dev/null
+++ b/angular/src/app/chart/data/amzn-data.json
@@ -0,0 +1,1829 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 192.19,
+ "High": 192.9,
+ "Low": 191.49,
+ "Close": 192.09
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 190.43,
+ "High": 190.85,
+ "Low": 189.69,
+ "Close": 190.34
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 192.96,
+ "High": 193.18,
+ "Low": 191.23,
+ "Close": 192.87
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 195.7,
+ "High": 198.88,
+ "Low": 195.46,
+ "Close": 198.11
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.2,
+ "High": 200.88,
+ "Low": 193.9,
+ "Close": 194.67
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 190.88,
+ "High": 192.6,
+ "Low": 190.19,
+ "Close": 191.82
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.89,
+ "High": 197.87,
+ "Low": 192.26,
+ "Close": 194.36
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 190.99,
+ "High": 192.37,
+ "Low": 189.83,
+ "Close": 191.04
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 194.27,
+ "High": 196.85,
+ "Low": 191.88,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 191.67,
+ "High": 193.12,
+ "Low": 188.07,
+ "Close": 190.86
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 192.59,
+ "High": 192.73,
+ "Low": 191.99,
+ "Close": 192.57
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 193.34,
+ "High": 195.1,
+ "Low": 192.36,
+ "Close": 193.96
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 194.46,
+ "High": 195.2,
+ "Low": 193.46,
+ "Close": 194.16
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 196.32,
+ "High": 198.22,
+ "Low": 194.28,
+ "Close": 196.39
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 199.01,
+ "High": 201.2,
+ "Low": 198.41,
+ "Close": 198.68
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 198.64,
+ "High": 199.98,
+ "Low": 197.48,
+ "Close": 197.93
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 199.45,
+ "High": 202.09,
+ "Low": 198.77,
+ "Close": 199.35
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 202.32,
+ "High": 202.98,
+ "Low": 198.69,
+ "Close": 201.41
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 204.2,
+ "High": 204.73,
+ "Low": 201.08,
+ "Close": 203.53
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 206.69,
+ "High": 207.5,
+ "Low": 203.42,
+ "Close": 204.02
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 201.51,
+ "High": 203.13,
+ "Low": 198.05,
+ "Close": 202.99
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 203.27,
+ "High": 205.79,
+ "Low": 201.22,
+ "Close": 202.57
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 214.69,
+ "High": 214.78,
+ "Low": 213.21,
+ "Close": 214.04
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 208.66,
+ "High": 210.44,
+ "Low": 208.19,
+ "Close": 209.46
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 209.26,
+ "High": 209.86,
+ "Low": 207.57,
+ "Close": 208.31
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 205.62,
+ "High": 206.82,
+ "Low": 205.5,
+ "Close": 206.54
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 206.32,
+ "High": 206.84,
+ "Low": 206.0,
+ "Close": 206.72
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 205.79,
+ "High": 206.03,
+ "Low": 205.1,
+ "Close": 205.97
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 207.89,
+ "High": 210.01,
+ "Low": 204.93,
+ "Close": 208.97
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 205.51,
+ "High": 206.31,
+ "Low": 202.09,
+ "Close": 204.19
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 203.98,
+ "High": 204.0,
+ "Low": 201.04,
+ "Close": 203.99
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 206.41,
+ "High": 207.58,
+ "Low": 204.61,
+ "Close": 207.38
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 208.28,
+ "High": 208.69,
+ "Low": 207.82,
+ "Close": 207.83
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 209.35,
+ "High": 210.26,
+ "Low": 205.57,
+ "Close": 208.55
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 208.34,
+ "High": 212.07,
+ "Low": 204.61,
+ "Close": 209.24
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 220.26,
+ "High": 220.85,
+ "Low": 219.53,
+ "Close": 220.1
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 218.45,
+ "High": 219.96,
+ "Low": 218.0,
+ "Close": 219.01
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 216.92,
+ "High": 217.62,
+ "Low": 215.93,
+ "Close": 216.22
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 216.61,
+ "High": 217.0,
+ "Low": 215.1,
+ "Close": 215.98
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 216.54,
+ "High": 217.42,
+ "Low": 215.69,
+ "Close": 216.38
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 215.55,
+ "High": 216.05,
+ "Low": 214.14,
+ "Close": 215.1
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 218.7,
+ "High": 219.12,
+ "Low": 217.8,
+ "Close": 218.41
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 220.42,
+ "High": 221.68,
+ "Low": 219.76,
+ "Close": 221.38
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 217.49,
+ "High": 218.53,
+ "Low": 217.06,
+ "Close": 217.91
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 218.01,
+ "High": 219.04,
+ "Low": 217.44,
+ "Close": 218.74
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 219.12,
+ "High": 222.26,
+ "Low": 215.9,
+ "Close": 221.34
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 220.74,
+ "High": 224.84,
+ "Low": 218.47,
+ "Close": 221.51
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 220.55,
+ "High": 223.45,
+ "Low": 219.76,
+ "Close": 222.13
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 220.15,
+ "High": 220.71,
+ "Low": 218.92,
+ "Close": 220.47
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 218.6,
+ "High": 220.56,
+ "Low": 217.74,
+ "Close": 218.16
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 214.35,
+ "High": 217.2,
+ "Low": 210.95,
+ "Close": 211.85
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 209.42,
+ "High": 210.5,
+ "Low": 209.07,
+ "Close": 209.12
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 207.41,
+ "High": 208.47,
+ "Low": 204.12,
+ "Close": 206.97
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 204.14,
+ "High": 205.98,
+ "Low": 200.22,
+ "Close": 201.97
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 201.24,
+ "High": 205.15,
+ "Low": 200.33,
+ "Close": 201.03
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 199.11,
+ "High": 199.39,
+ "Low": 195.31,
+ "Close": 198.86
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 196.76,
+ "High": 199.76,
+ "Low": 193.67,
+ "Close": 198.32
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 194.53,
+ "High": 195.14,
+ "Low": 192.88,
+ "Close": 194.31
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 192.02,
+ "High": 195.09,
+ "Low": 191.11,
+ "Close": 191.26
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 187.81,
+ "High": 189.19,
+ "Low": 186.3,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 184.36,
+ "High": 187.13,
+ "Low": 182.15,
+ "Close": 183.64
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 182.18,
+ "High": 184.64,
+ "Low": 179.59,
+ "Close": 181.42
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.19,
+ "High": 184.25,
+ "Low": 180.86,
+ "Close": 182.16
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 179.79,
+ "High": 180.58,
+ "Low": 179.64,
+ "Close": 180.06
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 183.16,
+ "High": 185.58,
+ "Low": 180.75,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 187.33,
+ "High": 187.71,
+ "Low": 183.86,
+ "Close": 187.22
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 188.65,
+ "High": 188.75,
+ "Low": 187.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 186.21,
+ "High": 186.78,
+ "Low": 183.75,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 187.18,
+ "High": 190.08,
+ "Low": 185.05,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 184.08,
+ "High": 186.25,
+ "Low": 180.59,
+ "Close": 182.53
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 179.66,
+ "High": 182.99,
+ "Low": 176.27,
+ "Close": 180.66
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 182.76,
+ "High": 186.4,
+ "Low": 179.53,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.5,
+ "High": 186.52,
+ "Low": 181.11,
+ "Close": 186.42
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 187.48,
+ "High": 189.39,
+ "Low": 186.48,
+ "Close": 187.78
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 191.06,
+ "High": 194.69,
+ "Low": 190.55,
+ "Close": 193.48
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 193.98,
+ "High": 196.02,
+ "Low": 192.42,
+ "Close": 192.83
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 189.99,
+ "High": 191.31,
+ "Low": 186.61,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 188.25,
+ "High": 188.94,
+ "Low": 187.39,
+ "Close": 187.46
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 189.99,
+ "High": 190.44,
+ "Low": 189.92,
+ "Close": 190.16
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 193.75,
+ "High": 196.45,
+ "Low": 192.38,
+ "Close": 195.2
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 196.39,
+ "High": 200.25,
+ "Low": 195.65,
+ "Close": 196.27
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 193.59,
+ "High": 195.98,
+ "Low": 193.26,
+ "Close": 194.4
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 191.6,
+ "High": 194.19,
+ "Low": 190.19,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 191.61,
+ "High": 191.68,
+ "Low": 189.06,
+ "Close": 189.12
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 188.53,
+ "High": 190.95,
+ "Low": 187.83,
+ "Close": 190.24
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 190.78,
+ "High": 190.85,
+ "Low": 190.03,
+ "Close": 190.68
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 192.5,
+ "High": 192.63,
+ "Low": 189.37,
+ "Close": 192.45
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 195.2,
+ "High": 196.64,
+ "Low": 192.47,
+ "Close": 193.05
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 195.96,
+ "High": 199.34,
+ "Low": 193.96,
+ "Close": 197.35
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 195.71,
+ "High": 197.28,
+ "Low": 192.66,
+ "Close": 195.82
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 196.1,
+ "High": 197.4,
+ "Low": 193.82,
+ "Close": 195.77
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 194.6,
+ "High": 194.79,
+ "Low": 194.02,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 191.0,
+ "High": 193.86,
+ "Low": 189.85,
+ "Close": 192.58
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 189.1,
+ "High": 190.47,
+ "Low": 188.36,
+ "Close": 189.17
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 187.13,
+ "High": 188.9,
+ "Low": 184.56,
+ "Close": 185.4
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 186.41,
+ "High": 190.01,
+ "Low": 185.6,
+ "Close": 189.86
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 191.36,
+ "High": 191.42,
+ "Low": 191.18,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 194.67,
+ "High": 198.53,
+ "Low": 191.8,
+ "Close": 193.42
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 197.25,
+ "High": 198.59,
+ "Low": 195.02,
+ "Close": 196.06
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 199.47,
+ "High": 201.98,
+ "Low": 195.49,
+ "Close": 198.1
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 198.79,
+ "High": 200.55,
+ "Low": 195.52,
+ "Close": 199.53
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 198.33,
+ "High": 199.06,
+ "Low": 197.8,
+ "Close": 198.08
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 197.7,
+ "High": 199.95,
+ "Low": 196.06,
+ "Close": 198.09
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 196.88,
+ "High": 197.63,
+ "Low": 196.7,
+ "Close": 197.27
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 194.57,
+ "High": 195.2,
+ "Low": 191.02,
+ "Close": 193.02
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 189.27,
+ "High": 190.92,
+ "Low": 188.07,
+ "Close": 189.39
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.09,
+ "High": 188.12,
+ "Low": 186.13,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.73,
+ "High": 188.27,
+ "Low": 183.88,
+ "Close": 186.22
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 186.66,
+ "High": 190.04,
+ "Low": 182.98,
+ "Close": 189.97
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 191.89,
+ "High": 194.08,
+ "Low": 191.07,
+ "Close": 193.31
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 190.06,
+ "High": 190.25,
+ "Low": 187.75,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 188.97,
+ "High": 189.8,
+ "Low": 188.38,
+ "Close": 189.78
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 192.27,
+ "High": 195.81,
+ "Low": 191.38,
+ "Close": 195.26
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 191.95,
+ "High": 193.78,
+ "Low": 188.66,
+ "Close": 191.23
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 194.02,
+ "High": 196.79,
+ "Low": 191.51,
+ "Close": 193.49
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 196.7,
+ "High": 199.49,
+ "Low": 195.09,
+ "Close": 195.64
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 194.77,
+ "High": 196.67,
+ "Low": 192.89,
+ "Close": 195.91
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 194.98,
+ "High": 198.15,
+ "Low": 192.08,
+ "Close": 192.86
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 192.9,
+ "High": 195.34,
+ "Low": 189.5,
+ "Close": 190.89
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.27,
+ "High": 193.35,
+ "Low": 190.87,
+ "Close": 191.32
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 193.34,
+ "High": 193.73,
+ "Low": 189.73,
+ "Close": 190.55
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 189.68,
+ "High": 193.18,
+ "Low": 186.14,
+ "Close": 187.61
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 184.81,
+ "High": 187.6,
+ "Low": 183.76,
+ "Close": 187.12
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.94,
+ "High": 193.17,
+ "Low": 188.73,
+ "Close": 189.54
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 191.52,
+ "High": 192.12,
+ "Low": 188.86,
+ "Close": 190.69
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 188.2,
+ "High": 190.33,
+ "Low": 185.65,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 189.97,
+ "High": 190.99,
+ "Low": 186.23,
+ "Close": 189.82
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 189.41,
+ "High": 189.62,
+ "Low": 187.56,
+ "Close": 189.47
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 192.06,
+ "High": 192.92,
+ "Low": 188.35,
+ "Close": 189.02
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 186.58,
+ "High": 188.72,
+ "Low": 184.74,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 189.41,
+ "High": 192.12,
+ "Low": 187.98,
+ "Close": 190.09
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 192.13,
+ "High": 194.13,
+ "Low": 189.28,
+ "Close": 191.55
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 191.2,
+ "High": 193.81,
+ "Low": 190.1,
+ "Close": 191.68
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.0,
+ "High": 190.58,
+ "Low": 185.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.94,
+ "High": 188.34,
+ "Low": 182.09,
+ "Close": 187.13
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.96,
+ "High": 187.37,
+ "Low": 185.26,
+ "Close": 185.76
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.81,
+ "High": 187.11,
+ "Low": 181.22,
+ "Close": 183.96
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 187.46,
+ "High": 189.82,
+ "Low": 184.69,
+ "Close": 185.39
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.28,
+ "High": 186.48,
+ "Low": 182.28,
+ "Close": 186.45
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 189.6,
+ "High": 192.09,
+ "Low": 187.7,
+ "Close": 188.59
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 190.5,
+ "High": 192.25,
+ "Low": 188.59,
+ "Close": 191.56
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 190.87,
+ "High": 192.38,
+ "Low": 189.85,
+ "Close": 190.37
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 192.4,
+ "High": 192.71,
+ "Low": 189.79,
+ "Close": 190.67
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 191.37,
+ "High": 193.49,
+ "Low": 190.47,
+ "Close": 191.98
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 195.65,
+ "High": 195.73,
+ "Low": 194.55,
+ "Close": 194.57
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 196.03,
+ "High": 197.75,
+ "Low": 193.92,
+ "Close": 196.32
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 195.26,
+ "High": 197.99,
+ "Low": 192.95,
+ "Close": 193.96
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 194.56,
+ "High": 195.19,
+ "Low": 193.74,
+ "Close": 195.09
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 194.8,
+ "High": 195.29,
+ "Low": 193.59,
+ "Close": 194.8
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 194.71,
+ "High": 196.74,
+ "Low": 194.28,
+ "Close": 196.02
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 195.27,
+ "High": 196.04,
+ "Low": 192.61,
+ "Close": 194.22
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 196.06,
+ "High": 199.1,
+ "Low": 192.26,
+ "Close": 195.15
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 193.13,
+ "High": 193.8,
+ "Low": 192.23,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 194.52,
+ "High": 197.86,
+ "Low": 193.59,
+ "Close": 194.45
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 197.99,
+ "High": 199.06,
+ "Low": 196.81,
+ "Close": 196.94
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 196.51,
+ "High": 200.41,
+ "Low": 195.5,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 200.87,
+ "High": 203.0,
+ "Low": 197.66,
+ "Close": 199.47
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 200.9,
+ "High": 203.92,
+ "Low": 200.64,
+ "Close": 201.25
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 197.93,
+ "High": 200.72,
+ "Low": 195.59,
+ "Close": 199.07
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 197.64,
+ "High": 197.92,
+ "Low": 194.88,
+ "Close": 195.31
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 193.4,
+ "High": 195.13,
+ "Low": 193.1,
+ "Close": 193.45
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 195.24,
+ "High": 195.72,
+ "Low": 194.97,
+ "Close": 195.68
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 197.99,
+ "High": 200.15,
+ "Low": 196.64,
+ "Close": 197.67
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 200.35,
+ "High": 202.8,
+ "Low": 197.77,
+ "Close": 200.36
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 202.5,
+ "High": 203.28,
+ "Low": 200.92,
+ "Close": 201.61
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 202.19,
+ "High": 203.2,
+ "Low": 198.23,
+ "Close": 203.16
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 201.78,
+ "High": 202.59,
+ "Low": 198.35,
+ "Close": 200.95
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 197.84,
+ "High": 200.44,
+ "Low": 194.78,
+ "Close": 198.81
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 197.35,
+ "High": 199.67,
+ "Low": 197.32,
+ "Close": 197.85
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 201.6,
+ "High": 202.21,
+ "Low": 197.95,
+ "Close": 198.49
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 198.12,
+ "High": 199.48,
+ "Low": 194.53,
+ "Close": 194.94
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 198.54,
+ "High": 201.16,
+ "Low": 196.12,
+ "Close": 199.04
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 199.24,
+ "High": 201.2,
+ "Low": 197.42,
+ "Close": 199.3
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 198.09,
+ "High": 200.08,
+ "Low": 197.34,
+ "Close": 199.98
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 196.19,
+ "High": 198.79,
+ "Low": 192.44,
+ "Close": 193.75
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 190.71,
+ "High": 192.19,
+ "Low": 189.7,
+ "Close": 192.02
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 188.55,
+ "High": 189.71,
+ "Low": 185.24,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 188.34,
+ "High": 191.18,
+ "Low": 185.09,
+ "Close": 186.68
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 188.94,
+ "High": 191.64,
+ "Low": 186.93,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 186.96,
+ "High": 189.67,
+ "Low": 186.35,
+ "Close": 188.76
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 188.08,
+ "High": 190.01,
+ "Low": 184.45,
+ "Close": 188.09
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 184.38,
+ "High": 187.34,
+ "Low": 181.96,
+ "Close": 186.02
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 188.31,
+ "High": 190.35,
+ "Low": 187.27,
+ "Close": 189.34
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 187.9,
+ "High": 191.49,
+ "Low": 186.94,
+ "Close": 191.21
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 194.0,
+ "High": 194.05,
+ "Low": 191.15,
+ "Close": 191.25
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 190.23,
+ "High": 192.58,
+ "Low": 187.41,
+ "Close": 189.36
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 187.86,
+ "High": 190.87,
+ "Low": 184.83,
+ "Close": 186.75
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 188.11,
+ "High": 189.74,
+ "Low": 187.99,
+ "Close": 188.33
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 189.83,
+ "High": 191.59,
+ "Low": 187.47,
+ "Close": 189.65
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 189.5,
+ "High": 191.04,
+ "Low": 188.55,
+ "Close": 190.91
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 187.76,
+ "High": 187.87,
+ "Low": 186.22,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 185.86,
+ "High": 188.35,
+ "Low": 184.76,
+ "Close": 186.33
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 188.92,
+ "High": 192.13,
+ "Low": 187.26,
+ "Close": 190.52
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 187.73,
+ "High": 190.94,
+ "Low": 184.35,
+ "Close": 188.07
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 190.09,
+ "High": 191.87,
+ "Low": 189.81,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 191.16,
+ "High": 194.32,
+ "Low": 189.5,
+ "Close": 192.15
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 191.3,
+ "High": 193.89,
+ "Low": 189.82,
+ "Close": 190.23
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 189.23,
+ "High": 191.67,
+ "Low": 185.46,
+ "Close": 188.48
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 188.84,
+ "High": 189.28,
+ "Low": 185.68,
+ "Close": 188.02
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 190.86,
+ "High": 191.66,
+ "Low": 187.81,
+ "Close": 188.6
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 192.34,
+ "High": 192.76,
+ "Low": 189.23,
+ "Close": 189.28
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 189.05,
+ "High": 189.96,
+ "Low": 185.34,
+ "Close": 185.78
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 185.49,
+ "High": 186.5,
+ "Low": 184.83,
+ "Close": 185.56
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 183.37,
+ "High": 184.43,
+ "Low": 181.95,
+ "Close": 183.73
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 185.13,
+ "High": 187.46,
+ "Low": 181.93,
+ "Close": 185.33
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 187.6,
+ "High": 190.27,
+ "Low": 185.51,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 190.88,
+ "High": 192.97,
+ "Low": 189.63,
+ "Close": 189.77
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 188.61,
+ "High": 190.9,
+ "Low": 184.9,
+ "Close": 189.62
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 186.83,
+ "High": 188.31,
+ "Low": 185.75,
+ "Close": 188.21
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 186.04,
+ "High": 187.81,
+ "Low": 184.15,
+ "Close": 186.6
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 189.18,
+ "High": 192.56,
+ "Low": 187.6,
+ "Close": 188.35
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 187.13,
+ "High": 190.76,
+ "Low": 184.98,
+ "Close": 185.83
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 186.47,
+ "High": 188.85,
+ "Low": 183.38,
+ "Close": 187.23
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 185.73,
+ "High": 187.7,
+ "Low": 183.64,
+ "Close": 187.69
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 189.65,
+ "High": 192.07,
+ "Low": 187.21,
+ "Close": 189.75
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 193.47,
+ "High": 193.87,
+ "Low": 193.21,
+ "Close": 193.78
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 193.54,
+ "High": 195.51,
+ "Low": 192.22,
+ "Close": 193.62
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 191.5,
+ "High": 192.72,
+ "Low": 190.41,
+ "Close": 190.9
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 192.24,
+ "High": 193.01,
+ "Low": 190.3,
+ "Close": 191.79
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 194.01,
+ "High": 196.64,
+ "Low": 192.33,
+ "Close": 195.35
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 197.69,
+ "High": 199.7,
+ "Low": 195.4,
+ "Close": 197.83
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 199.14,
+ "High": 202.89,
+ "Low": 198.53,
+ "Close": 201.23
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 198.75,
+ "High": 200.37,
+ "Low": 197.53,
+ "Close": 197.61
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 197.85,
+ "High": 199.24,
+ "Low": 197.76,
+ "Close": 198.39
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 201.13,
+ "High": 201.43,
+ "Low": 197.67,
+ "Close": 200.76
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 204.11,
+ "High": 205.45,
+ "Low": 201.65,
+ "Close": 203.74
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 199.88,
+ "High": 203.56,
+ "Low": 199.68,
+ "Close": 203.56
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 201.28,
+ "High": 201.93,
+ "Low": 199.91,
+ "Close": 201.15
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 202.73,
+ "High": 202.81,
+ "Low": 199.58,
+ "Close": 202.36
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 199.21,
+ "High": 200.9,
+ "Low": 198.57,
+ "Close": 198.67
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 200.23,
+ "High": 202.05,
+ "Low": 199.73,
+ "Close": 201.91
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 197.93,
+ "High": 201.53,
+ "Low": 194.8,
+ "Close": 198.84
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 202.61,
+ "High": 202.75,
+ "Low": 199.63,
+ "Close": 199.92
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 197.65,
+ "High": 199.18,
+ "Low": 195.77,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 196.25,
+ "High": 200.11,
+ "Low": 194.25,
+ "Close": 198.89
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 198.76,
+ "High": 201.5,
+ "Low": 195.7,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 203.56,
+ "High": 205.91,
+ "Low": 201.23,
+ "Close": 205.48
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 205.67,
+ "High": 206.43,
+ "Low": 201.91,
+ "Close": 204.41
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 206.86,
+ "High": 207.2,
+ "Low": 204.17,
+ "Close": 207.08
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 210.74,
+ "High": 213.69,
+ "Low": 207.95,
+ "Close": 210.41
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 206.73,
+ "High": 208.0,
+ "Low": 206.48,
+ "Close": 207.99
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 208.64,
+ "High": 209.48,
+ "Low": 207.25,
+ "Close": 208.92
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 210.59,
+ "High": 214.67,
+ "Low": 209.45,
+ "Close": 212.58
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 213.38,
+ "High": 215.6,
+ "Low": 211.92,
+ "Close": 215.17
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 219.46,
+ "High": 223.49,
+ "Low": 217.62,
+ "Close": 219.74
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 221.38,
+ "High": 224.98,
+ "Low": 219.12,
+ "Close": 221.56
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 223.59,
+ "High": 224.61,
+ "Low": 221.75,
+ "Close": 222.67
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 225.79,
+ "High": 228.61,
+ "Low": 222.57,
+ "Close": 225.86
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 225.06,
+ "High": 228.81,
+ "Low": 224.42,
+ "Close": 224.88
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 222.65,
+ "High": 223.66,
+ "Low": 221.0,
+ "Close": 221.64
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 220.44,
+ "High": 224.6,
+ "Low": 217.53,
+ "Close": 221.15
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 223.78,
+ "High": 224.78,
+ "Low": 219.9,
+ "Close": 220.36
+ },
+ {
+ "Date": "2025-06-18",
+ "Open": 220.9,
+ "High": 224.65,
+ "Low": 220.56,
+ "Close": 220.67
+ },
+ {
+ "Date": "2025-06-19",
+ "Open": 222.72,
+ "High": 226.72,
+ "Low": 222.49,
+ "Close": 224.24
+ },
+ {
+ "Date": "2025-06-20",
+ "Open": 227.64,
+ "High": 231.94,
+ "Low": 223.7,
+ "Close": 228.93
+ },
+ {
+ "Date": "2025-06-23",
+ "Open": 224.53,
+ "High": 226.19,
+ "Low": 220.62,
+ "Close": 220.96
+ },
+ {
+ "Date": "2025-06-24",
+ "Open": 223.74,
+ "High": 228.12,
+ "Low": 222.5,
+ "Close": 222.54
+ },
+ {
+ "Date": "2025-06-25",
+ "Open": 221.04,
+ "High": 221.12,
+ "Low": 219.05,
+ "Close": 219.11
+ },
+ {
+ "Date": "2025-06-26",
+ "Open": 219.3,
+ "High": 223.46,
+ "Low": 217.06,
+ "Close": 217.25
+ },
+ {
+ "Date": "2025-06-27",
+ "Open": 219.77,
+ "High": 221.14,
+ "Low": 216.28,
+ "Close": 218.01
+ },
+ {
+ "Date": "2025-06-30",
+ "Open": 222.01,
+ "High": 223.18,
+ "Low": 217.87,
+ "Close": 222.27
+ }
+]
\ No newline at end of file
diff --git a/angular/src/app/chart/data/goog-data.json b/angular/src/app/chart/data/goog-data.json
new file mode 100644
index 0000000..8020787
--- /dev/null
+++ b/angular/src/app/chart/data/goog-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 182.76,
+ "High": 182.93,
+ "Low": 180.89,
+ "Close": 181.03
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 181.55,
+ "High": 183.05,
+ "Low": 180.46,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 183.21,
+ "High": 184.23,
+ "Low": 182.08,
+ "Close": 182.48
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 181.46,
+ "High": 182.33,
+ "Low": 181.17,
+ "Close": 182.01
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 182.45,
+ "High": 182.62,
+ "Low": 181.51,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 182.28,
+ "High": 183.21,
+ "Low": 180.64,
+ "Close": 183.18
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 183.77,
+ "High": 185.5,
+ "Low": 183.27,
+ "Close": 184.72
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 183.81,
+ "High": 184.51,
+ "Low": 183.24,
+ "Close": 183.37
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 182.33,
+ "High": 183.18,
+ "Low": 181.1,
+ "Close": 182.08
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 182.46,
+ "High": 183.11,
+ "Low": 182.01,
+ "Close": 182.93
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 181.92,
+ "High": 182.7,
+ "Low": 181.0,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 179.87,
+ "High": 181.27,
+ "Low": 178.86,
+ "Close": 180.89
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 180.69,
+ "High": 181.92,
+ "Low": 180.57,
+ "Close": 181.31
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 180.07,
+ "High": 181.29,
+ "Low": 178.68,
+ "Close": 179.83
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 179.95,
+ "High": 181.33,
+ "Low": 179.41,
+ "Close": 181.06
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 181.66,
+ "High": 183.16,
+ "Low": 180.45,
+ "Close": 180.69
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 179.54,
+ "High": 180.07,
+ "Low": 179.19,
+ "Close": 179.94
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 180.77,
+ "High": 180.95,
+ "Low": 179.69,
+ "Close": 180.68
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 182.07,
+ "High": 182.42,
+ "Low": 180.36,
+ "Close": 181.19
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 181.49,
+ "High": 182.47,
+ "Low": 180.38,
+ "Close": 180.55
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 179.17,
+ "High": 179.44,
+ "Low": 178.41,
+ "Close": 178.48
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 178.4,
+ "High": 178.58,
+ "Low": 177.48,
+ "Close": 178.49
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 179.36,
+ "High": 181.33,
+ "Low": 179.25,
+ "Close": 180.07
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 179.38,
+ "High": 179.68,
+ "Low": 177.78,
+ "Close": 178.19
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 179.54,
+ "High": 180.55,
+ "Low": 179.24,
+ "Close": 180.54
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 179.56,
+ "High": 179.71,
+ "Low": 179.21,
+ "Close": 179.48
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 180.14,
+ "High": 181.08,
+ "Low": 178.94,
+ "Close": 180.78
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 179.8,
+ "High": 181.44,
+ "Low": 177.88,
+ "Close": 180.21
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 178.72,
+ "High": 179.69,
+ "Low": 177.55,
+ "Close": 179.18
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 179.32,
+ "High": 180.65,
+ "Low": 179.02,
+ "Close": 180.6
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 181.35,
+ "High": 182.2,
+ "Low": 180.41,
+ "Close": 180.84
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 182.31,
+ "High": 184.13,
+ "Low": 180.81,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 181.88,
+ "High": 183.16,
+ "Low": 181.46,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 180.82,
+ "High": 182.16,
+ "Low": 179.01,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 182.04,
+ "High": 182.76,
+ "Low": 180.81,
+ "Close": 182.45
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 182.32,
+ "High": 184.01,
+ "Low": 181.31,
+ "Close": 182.04
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 181.98,
+ "High": 183.81,
+ "Low": 181.47,
+ "Close": 182.61
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 182.5,
+ "High": 184.25,
+ "Low": 181.96,
+ "Close": 182.09
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 182.61,
+ "High": 184.05,
+ "Low": 181.94,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 182.66,
+ "High": 182.88,
+ "Low": 182.39,
+ "Close": 182.7
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 183.55,
+ "High": 185.32,
+ "Low": 181.74,
+ "Close": 181.86
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 183.25,
+ "High": 184.56,
+ "Low": 181.28,
+ "Close": 183.05
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 181.75,
+ "High": 183.67,
+ "Low": 181.12,
+ "Close": 182.28
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 183.4,
+ "High": 184.53,
+ "Low": 181.8,
+ "Close": 182.69
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 183.24,
+ "High": 184.61,
+ "Low": 181.85,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 183.46,
+ "High": 185.46,
+ "Low": 182.49,
+ "Close": 183.47
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 182.47,
+ "High": 183.49,
+ "Low": 181.06,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 180.39,
+ "High": 181.93,
+ "Low": 179.37,
+ "Close": 181.74
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 182.33,
+ "High": 182.55,
+ "Low": 180.7,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 181.43,
+ "High": 182.24,
+ "Low": 179.63,
+ "Close": 179.85
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 180.11,
+ "High": 181.7,
+ "Low": 179.89,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 180.89,
+ "High": 181.72,
+ "Low": 179.72,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 179.11,
+ "High": 180.67,
+ "Low": 177.61,
+ "Close": 179.79
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 180.47,
+ "High": 181.77,
+ "Low": 179.81,
+ "Close": 181.56
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 180.58,
+ "High": 181.82,
+ "Low": 179.17,
+ "Close": 180.64
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 180.39,
+ "High": 182.2,
+ "Low": 179.07,
+ "Close": 180.01
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 180.64,
+ "High": 182.37,
+ "Low": 178.85,
+ "Close": 179.66
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 178.25,
+ "High": 179.98,
+ "Low": 176.72,
+ "Close": 178.9
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 177.58,
+ "High": 178.15,
+ "Low": 176.06,
+ "Close": 177.66
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 177.31,
+ "High": 178.49,
+ "Low": 176.84,
+ "Close": 177.81
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 178.8,
+ "High": 180.77,
+ "Low": 177.04,
+ "Close": 179.58
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 180.48,
+ "High": 182.28,
+ "Low": 179.7,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 182.04,
+ "High": 183.17,
+ "Low": 181.17,
+ "Close": 182.66
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 181.66,
+ "High": 182.08,
+ "Low": 180.64,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 181.88,
+ "High": 183.8,
+ "Low": 179.93,
+ "Close": 180.1
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 179.87,
+ "High": 180.15,
+ "Low": 178.31,
+ "Close": 179.02
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 178.74,
+ "High": 179.04,
+ "Low": 177.16,
+ "Close": 178.06
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 176.6,
+ "High": 177.13,
+ "Low": 175.72,
+ "Close": 176.24
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 176.42,
+ "High": 177.53,
+ "Low": 175.13,
+ "Close": 176.82
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 176.11,
+ "High": 176.24,
+ "Low": 174.34,
+ "Close": 175.98
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 176.93,
+ "High": 177.52,
+ "Low": 176.24,
+ "Close": 176.6
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 177.06,
+ "High": 178.91,
+ "Low": 176.88,
+ "Close": 178.1
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 177.53,
+ "High": 177.69,
+ "Low": 177.23,
+ "Close": 177.47
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 178.81,
+ "High": 179.42,
+ "Low": 177.33,
+ "Close": 178.27
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 178.7,
+ "High": 180.63,
+ "Low": 177.07,
+ "Close": 180.04
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 181.24,
+ "High": 182.38,
+ "Low": 179.84,
+ "Close": 180.09
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 181.43,
+ "High": 181.95,
+ "Low": 180.64,
+ "Close": 181.36
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 182.64,
+ "High": 183.53,
+ "Low": 181.74,
+ "Close": 183.03
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 183.87,
+ "High": 184.1,
+ "Low": 183.64,
+ "Close": 183.67
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 184.55,
+ "High": 185.66,
+ "Low": 183.57,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 184.97,
+ "High": 186.91,
+ "Low": 184.38,
+ "Close": 184.87
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 185.59,
+ "High": 187.25,
+ "Low": 185.11,
+ "Close": 187.13
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 188.39,
+ "High": 189.05,
+ "Low": 187.91,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.99,
+ "High": 188.52,
+ "Low": 185.59,
+ "Close": 186.56
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 185.86,
+ "High": 186.6,
+ "Low": 184.37,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 184.55,
+ "High": 185.28,
+ "Low": 184.36,
+ "Close": 185.15
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.11,
+ "High": 186.6,
+ "Low": 185.37,
+ "Close": 186.26
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 187.5,
+ "High": 188.25,
+ "Low": 186.65,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 186.58,
+ "High": 187.79,
+ "Low": 185.11,
+ "Close": 186.28
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 187.29,
+ "High": 188.14,
+ "Low": 185.36,
+ "Close": 186.37
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 185.49,
+ "High": 186.18,
+ "Low": 183.88,
+ "Close": 185.86
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 186.0,
+ "High": 187.18,
+ "Low": 185.75,
+ "Close": 186.18
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 186.47,
+ "High": 188.35,
+ "Low": 185.97,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 185.9,
+ "High": 187.46,
+ "Low": 184.28,
+ "Close": 186.14
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 185.14,
+ "High": 185.58,
+ "Low": 184.41,
+ "Close": 185.02
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 183.57,
+ "High": 184.98,
+ "Low": 183.22,
+ "Close": 184.67
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 185.93,
+ "High": 186.79,
+ "Low": 184.41,
+ "Close": 185.88
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 187.22,
+ "High": 187.72,
+ "Low": 187.02,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 187.66,
+ "High": 189.41,
+ "Low": 185.97,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 185.0,
+ "High": 186.21,
+ "Low": 184.75,
+ "Close": 185.03
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 184.09,
+ "High": 184.97,
+ "Low": 182.75,
+ "Close": 183.55
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 182.84,
+ "High": 183.95,
+ "Low": 181.32,
+ "Close": 183.38
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 182.19,
+ "High": 183.31,
+ "Low": 182.06,
+ "Close": 183.16
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 183.52,
+ "High": 184.02,
+ "Low": 181.93,
+ "Close": 183.31
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 184.65,
+ "High": 186.2,
+ "Low": 183.88,
+ "Close": 184.26
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 184.54,
+ "High": 184.94,
+ "Low": 184.42,
+ "Close": 184.86
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 185.82,
+ "High": 187.13,
+ "Low": 184.93,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.59,
+ "High": 188.51,
+ "Low": 184.65,
+ "Close": 187.8
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 187.69,
+ "High": 189.66,
+ "Low": 186.96,
+ "Close": 188.79
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 190.0,
+ "High": 190.96,
+ "Low": 188.47,
+ "Close": 189.71
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 188.23,
+ "High": 189.55,
+ "Low": 187.21,
+ "Close": 187.87
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 187.11,
+ "High": 188.3,
+ "Low": 185.48,
+ "Close": 188.18
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 188.78,
+ "High": 189.88,
+ "Low": 187.21,
+ "Close": 189.69
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 190.77,
+ "High": 192.17,
+ "Low": 189.11,
+ "Close": 191.24
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 190.11,
+ "High": 190.81,
+ "Low": 188.68,
+ "Close": 189.15
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.16,
+ "High": 189.48,
+ "Low": 188.61,
+ "Close": 189.31
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 189.42,
+ "High": 190.84,
+ "Low": 187.53,
+ "Close": 188.73
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 188.93,
+ "High": 190.37,
+ "Low": 187.84,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 187.05,
+ "High": 188.09,
+ "Low": 185.88,
+ "Close": 186.9
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 185.67,
+ "High": 186.75,
+ "Low": 184.62,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 186.76,
+ "High": 187.47,
+ "Low": 185.74,
+ "Close": 187.11
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 186.07,
+ "High": 187.55,
+ "Low": 184.12,
+ "Close": 187.52
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 187.59,
+ "High": 188.3,
+ "Low": 186.18,
+ "Close": 188.09
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.25,
+ "High": 190.13,
+ "Low": 188.69,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 187.91,
+ "High": 188.24,
+ "Low": 186.3,
+ "Close": 186.5
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 185.52,
+ "High": 187.42,
+ "Low": 184.88,
+ "Close": 186.85
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 185.49,
+ "High": 186.04,
+ "Low": 184.3,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 184.98,
+ "High": 186.0,
+ "Low": 183.72,
+ "Close": 184.27
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 185.23,
+ "High": 185.76,
+ "Low": 184.48,
+ "Close": 185.58
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 184.76,
+ "High": 185.69,
+ "Low": 183.19,
+ "Close": 183.96
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 183.31,
+ "High": 184.85,
+ "Low": 182.97,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 185.14,
+ "High": 186.61,
+ "Low": 184.77,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 184.42,
+ "High": 185.4,
+ "Low": 182.54,
+ "Close": 183.3
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 182.67,
+ "High": 184.46,
+ "Low": 181.97,
+ "Close": 183.53
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.96,
+ "High": 185.16,
+ "Low": 184.64,
+ "Close": 185.14
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 184.6,
+ "High": 185.47,
+ "Low": 183.36,
+ "Close": 185.45
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.05,
+ "High": 184.63,
+ "Low": 182.7,
+ "Close": 184.07
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 184.48,
+ "High": 184.68,
+ "Low": 183.96,
+ "Close": 184.03
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.22,
+ "High": 185.44,
+ "Low": 183.62,
+ "Close": 184.39
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 183.46,
+ "High": 183.62,
+ "Low": 182.59,
+ "Close": 182.87
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 183.98,
+ "High": 184.83,
+ "Low": 183.06,
+ "Close": 184.5
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 183.93,
+ "High": 184.31,
+ "Low": 183.74,
+ "Close": 184.14
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 182.97,
+ "High": 184.23,
+ "Low": 182.03,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 183.7,
+ "High": 184.46,
+ "Low": 183.5,
+ "Close": 183.57
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 182.76,
+ "High": 184.69,
+ "Low": 182.0,
+ "Close": 184.4
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 184.63,
+ "High": 186.41,
+ "Low": 183.01,
+ "Close": 183.91
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 184.32,
+ "High": 185.36,
+ "Low": 182.86,
+ "Close": 183.6
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 182.94,
+ "High": 184.4,
+ "Low": 182.79,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 184.13,
+ "High": 186.0,
+ "Low": 182.77,
+ "Close": 183.77
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 182.45,
+ "High": 183.33,
+ "Low": 181.75,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 182.14,
+ "High": 183.1,
+ "Low": 181.75,
+ "Close": 182.49
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 181.43,
+ "High": 182.17,
+ "Low": 181.1,
+ "Close": 181.17
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 180.34,
+ "High": 181.02,
+ "Low": 179.78,
+ "Close": 180.87
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 180.27,
+ "High": 181.21,
+ "Low": 178.44,
+ "Close": 180.24
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 180.62,
+ "High": 182.53,
+ "Low": 179.72,
+ "Close": 181.02
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 180.48,
+ "High": 182.1,
+ "Low": 178.82,
+ "Close": 179.33
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 180.41,
+ "High": 180.6,
+ "Low": 179.28,
+ "Close": 179.8
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 180.85,
+ "High": 182.13,
+ "Low": 179.1,
+ "Close": 181.27
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 180.22,
+ "High": 181.29,
+ "Low": 178.28,
+ "Close": 178.73
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 178.17,
+ "High": 178.62,
+ "Low": 176.75,
+ "Close": 177.76
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 178.0,
+ "High": 178.79,
+ "Low": 176.36,
+ "Close": 178.58
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 177.4,
+ "High": 177.75,
+ "Low": 175.89,
+ "Close": 177.55
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 176.08,
+ "High": 176.38,
+ "Low": 174.73,
+ "Close": 174.94
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 176.36,
+ "High": 176.88,
+ "Low": 174.88,
+ "Close": 175.86
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 175.05,
+ "High": 176.79,
+ "Low": 174.39,
+ "Close": 175.81
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 174.91,
+ "High": 176.7,
+ "Low": 174.28,
+ "Close": 175.54
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 175.38,
+ "High": 176.73,
+ "Low": 174.44,
+ "Close": 174.73
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 174.36,
+ "High": 175.48,
+ "Low": 172.79,
+ "Close": 174.17
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 173.46,
+ "High": 173.83,
+ "Low": 172.1,
+ "Close": 172.75
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 172.46,
+ "High": 173.11,
+ "Low": 171.23,
+ "Close": 172.68
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 171.42,
+ "High": 171.87,
+ "Low": 169.51,
+ "Close": 170.55
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 169.72,
+ "High": 171.57,
+ "Low": 168.09,
+ "Close": 170.72
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 171.15,
+ "High": 172.25,
+ "Low": 169.73,
+ "Close": 172.19
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 171.46,
+ "High": 173.1,
+ "Low": 170.34,
+ "Close": 170.54
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 169.55,
+ "High": 169.82,
+ "Low": 167.91,
+ "Close": 168.12
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 167.68,
+ "High": 168.04,
+ "Low": 166.8,
+ "Close": 167.91
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 168.45,
+ "High": 168.94,
+ "Low": 168.28,
+ "Close": 168.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 169.21,
+ "High": 170.15,
+ "Low": 168.76,
+ "Close": 168.99
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 167.65,
+ "High": 167.76,
+ "Low": 166.61,
+ "Close": 167.06
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 166.73,
+ "High": 167.7,
+ "Low": 165.43,
+ "Close": 166.0
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 165.87,
+ "High": 167.24,
+ "Low": 165.39,
+ "Close": 167.12
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 168.44,
+ "High": 170.25,
+ "Low": 166.69,
+ "Close": 167.19
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 168.52,
+ "High": 169.66,
+ "Low": 167.15,
+ "Close": 168.58
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 168.74,
+ "High": 170.55,
+ "Low": 168.1,
+ "Close": 168.54
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 168.37,
+ "High": 169.58,
+ "Low": 167.88,
+ "Close": 168.97
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 170.32,
+ "High": 171.27,
+ "Low": 169.63,
+ "Close": 170.58
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 169.88,
+ "High": 170.62,
+ "Low": 169.23,
+ "Close": 169.37
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 170.32,
+ "High": 170.62,
+ "Low": 169.27,
+ "Close": 169.43
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 170.76,
+ "High": 171.12,
+ "Low": 169.08,
+ "Close": 170.27
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 171.13,
+ "High": 171.41,
+ "Low": 169.93,
+ "Close": 171.19
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 170.54,
+ "High": 171.13,
+ "Low": 169.5,
+ "Close": 170.76
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 169.98,
+ "High": 171.84,
+ "Low": 169.68,
+ "Close": 170.44
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 169.27,
+ "High": 170.28,
+ "Low": 168.47,
+ "Close": 170.02
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 170.6,
+ "High": 171.65,
+ "Low": 168.82,
+ "Close": 169.69
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 169.68,
+ "High": 171.36,
+ "Low": 167.75,
+ "Close": 169.72
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 168.65,
+ "High": 170.29,
+ "Low": 167.51,
+ "Close": 168.64
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 170.01,
+ "High": 170.38,
+ "Low": 169.9,
+ "Close": 170.29
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 171.5,
+ "High": 172.67,
+ "Low": 169.56,
+ "Close": 169.76
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 170.16,
+ "High": 170.69,
+ "Low": 168.29,
+ "Close": 170.5
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 170.25,
+ "High": 170.66,
+ "Low": 168.44,
+ "Close": 169.83
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 168.54,
+ "High": 169.76,
+ "Low": 166.66,
+ "Close": 167.64
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 167.16,
+ "High": 168.22,
+ "Low": 166.25,
+ "Close": 167.83
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 168.03,
+ "High": 168.33,
+ "Low": 167.79,
+ "Close": 167.94
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 169.09,
+ "High": 169.48,
+ "Low": 168.1,
+ "Close": 168.37
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 168.61,
+ "High": 168.97,
+ "Low": 167.83,
+ "Close": 168.61
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 169.97,
+ "High": 171.12,
+ "Low": 169.49,
+ "Close": 169.86
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 169.2,
+ "High": 170.0,
+ "Low": 167.33,
+ "Close": 168.28
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 168.12,
+ "High": 170.12,
+ "Low": 167.23,
+ "Close": 169.19
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 168.6,
+ "High": 169.43,
+ "Low": 167.44,
+ "Close": 168.29
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 168.94,
+ "High": 170.82,
+ "Low": 167.65,
+ "Close": 169.73
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 169.61,
+ "High": 170.29,
+ "Low": 168.66,
+ "Close": 169.85
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 170.37,
+ "High": 170.86,
+ "Low": 170.09,
+ "Close": 170.32
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 170.64,
+ "High": 170.96,
+ "Low": 169.44,
+ "Close": 169.65
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 168.62,
+ "High": 169.46,
+ "Low": 168.34,
+ "Close": 168.8
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 167.44,
+ "High": 167.82,
+ "Low": 165.81,
+ "Close": 166.25
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 165.72,
+ "High": 166.3,
+ "Low": 164.27,
+ "Close": 165.25
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 166.09,
+ "High": 167.47,
+ "Low": 164.77,
+ "Close": 166.96
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 166.06,
+ "High": 166.82,
+ "Low": 164.11,
+ "Close": 166.76
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 166.67,
+ "High": 168.42,
+ "Low": 164.95,
+ "Close": 165.04
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 163.83,
+ "High": 165.01,
+ "Low": 163.58,
+ "Close": 164.78
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 165.68,
+ "High": 166.42,
+ "Low": 164.25,
+ "Close": 166.03
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 164.97,
+ "High": 166.45,
+ "Low": 164.22,
+ "Close": 165.75
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 166.37,
+ "High": 167.26,
+ "Low": 165.77,
+ "Close": 166.69
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 165.5,
+ "High": 166.22,
+ "Low": 165.03,
+ "Close": 165.03
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 163.6,
+ "High": 163.74,
+ "Low": 162.1,
+ "Close": 162.41
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 161.51,
+ "High": 161.87,
+ "Low": 160.77,
+ "Close": 161.12
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 160.2,
+ "High": 160.65,
+ "Low": 159.1,
+ "Close": 160.22
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 161.25,
+ "High": 162.03,
+ "Low": 159.96,
+ "Close": 160.24
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 160.22,
+ "High": 160.62,
+ "Low": 158.41,
+ "Close": 160.23
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 159.65,
+ "High": 159.81,
+ "Low": 158.72,
+ "Close": 159.06
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 159.21,
+ "High": 159.8,
+ "Low": 159.03,
+ "Close": 159.59
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 159.37,
+ "High": 160.79,
+ "Low": 158.58,
+ "Close": 159.82
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 161.05,
+ "High": 162.95,
+ "Low": 159.44,
+ "Close": 161.81
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 162.62,
+ "High": 163.48,
+ "Low": 161.0,
+ "Close": 161.56
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 160.74,
+ "High": 161.34,
+ "Low": 160.34,
+ "Close": 160.58
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 160.4,
+ "High": 161.4,
+ "Low": 159.11,
+ "Close": 159.51
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 158.12,
+ "High": 159.57,
+ "Low": 156.54,
+ "Close": 157.8
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 158.21,
+ "High": 158.4,
+ "Low": 157.2,
+ "Close": 157.28
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 157.63,
+ "High": 158.39,
+ "Low": 157.0,
+ "Close": 158.02
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 158.64,
+ "High": 158.88,
+ "Low": 158.23,
+ "Close": 158.32
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 157.06,
+ "High": 158.06,
+ "Low": 155.14,
+ "Close": 155.46
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 154.59,
+ "High": 154.8,
+ "Low": 153.1,
+ "Close": 154.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 153.0,
+ "High": 154.63,
+ "Low": 152.45,
+ "Close": 153.32
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 153.08,
+ "High": 154.63,
+ "Low": 151.71,
+ "Close": 153.65
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 154.77,
+ "High": 155.87,
+ "Low": 152.78,
+ "Close": 155.64
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 156.92,
+ "High": 157.31,
+ "Low": 154.93,
+ "Close": 154.93
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 155.23,
+ "High": 155.88,
+ "Low": 155.11,
+ "Close": 155.14
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 155.76,
+ "High": 156.46,
+ "Low": 155.26,
+ "Close": 156.04
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 154.9,
+ "High": 156.28,
+ "Low": 154.31,
+ "Close": 154.74
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 153.53,
+ "High": 155.1,
+ "Low": 151.9,
+ "Close": 152.24
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 153.29,
+ "High": 155.19,
+ "Low": 151.43,
+ "Close": 154.65
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 154.22,
+ "High": 155.39,
+ "Low": 152.76,
+ "Close": 152.83
+ }
+]
\ No newline at end of file
diff --git a/angular/src/app/chart/data/msft-data.json b/angular/src/app/chart/data/msft-data.json
new file mode 100644
index 0000000..df9e7d5
--- /dev/null
+++ b/angular/src/app/chart/data/msft-data.json
@@ -0,0 +1,2250 @@
+[
+ {
+ "date": "2024-06-03",
+ "open": 128.65,
+ "high": 129.66,
+ "low": 128.35,
+ "close": 129.24,
+ "volume": 17862294
+ },
+ {
+ "date": "2024-06-04",
+ "open": 130.53,
+ "high": 131.76,
+ "low": 129.24,
+ "close": 129.83,
+ "volume": 24622730
+ },
+ {
+ "date": "2024-06-05",
+ "open": 130.91,
+ "high": 132.21,
+ "low": 130.08,
+ "close": 130.74,
+ "volume": 25324954
+ },
+ {
+ "date": "2024-06-06",
+ "open": 131.34,
+ "high": 132.23,
+ "low": 128.97,
+ "close": 130.0,
+ "volume": 23487603
+ },
+ {
+ "date": "2024-06-07",
+ "open": 130.56,
+ "high": 131.17,
+ "low": 128.8,
+ "close": 129.5,
+ "volume": 34692706
+ },
+ {
+ "date": "2024-06-10",
+ "open": 128.47,
+ "high": 129.87,
+ "low": 127.16,
+ "close": 127.4,
+ "volume": 32653028
+ },
+ {
+ "date": "2024-06-11",
+ "open": 128.07,
+ "high": 129.44,
+ "low": 126.32,
+ "close": 126.32,
+ "volume": 32027251
+ },
+ {
+ "date": "2024-06-12",
+ "open": 124.48,
+ "high": 124.66,
+ "low": 123.33,
+ "close": 123.67,
+ "volume": 34268108
+ },
+ {
+ "date": "2024-06-13",
+ "open": 123.91,
+ "high": 125.58,
+ "low": 123.75,
+ "close": 124.29,
+ "volume": 23048223
+ },
+ {
+ "date": "2024-06-14",
+ "open": 124.78,
+ "high": 126.13,
+ "low": 123.45,
+ "close": 125.31,
+ "volume": 23055870
+ },
+ {
+ "date": "2024-06-17",
+ "open": 124.45,
+ "high": 125.68,
+ "low": 123.59,
+ "close": 124.71,
+ "volume": 29045496
+ },
+ {
+ "date": "2024-06-18",
+ "open": 126.08,
+ "high": 127.11,
+ "low": 125.33,
+ "close": 126.28,
+ "volume": 26792047
+ },
+ {
+ "date": "2024-06-19",
+ "open": 125.73,
+ "high": 126.56,
+ "low": 124.7,
+ "close": 124.85,
+ "volume": 21305157
+ },
+ {
+ "date": "2024-06-20",
+ "open": 123.77,
+ "high": 125.62,
+ "low": 122.49,
+ "close": 124.35,
+ "volume": 19580719
+ },
+ {
+ "date": "2024-06-21",
+ "open": 125.51,
+ "high": 126.96,
+ "low": 125.01,
+ "close": 125.75,
+ "volume": 24613573
+ },
+ {
+ "date": "2024-06-24",
+ "open": 125.12,
+ "high": 127.23,
+ "low": 123.74,
+ "close": 127.04,
+ "volume": 32520284
+ },
+ {
+ "date": "2024-06-25",
+ "open": 128.39,
+ "high": 129.29,
+ "low": 127.41,
+ "close": 128.85,
+ "volume": 18300998
+ },
+ {
+ "date": "2024-06-26",
+ "open": 129.78,
+ "high": 132.32,
+ "low": 128.59,
+ "close": 131.14,
+ "volume": 26021558
+ },
+ {
+ "date": "2024-06-27",
+ "open": 132.42,
+ "high": 134.6,
+ "low": 131.22,
+ "close": 134.17,
+ "volume": 33118380
+ },
+ {
+ "date": "2024-06-28",
+ "open": 135.82,
+ "high": 135.95,
+ "low": 134.44,
+ "close": 135.04,
+ "volume": 20578150
+ },
+ {
+ "date": "2024-07-01",
+ "open": 134.78,
+ "high": 135.83,
+ "low": 134.04,
+ "close": 135.33,
+ "volume": 29493376
+ },
+ {
+ "date": "2024-07-02",
+ "open": 135.09,
+ "high": 136.51,
+ "low": 134.41,
+ "close": 136.39,
+ "volume": 33915486
+ },
+ {
+ "date": "2024-07-03",
+ "open": 136.24,
+ "high": 137.11,
+ "low": 134.64,
+ "close": 135.68,
+ "volume": 15498134
+ },
+ {
+ "date": "2024-07-04",
+ "open": 135.49,
+ "high": 137.8,
+ "low": 134.09,
+ "close": 136.7,
+ "volume": 33539877
+ },
+ {
+ "date": "2024-07-05",
+ "open": 137.13,
+ "high": 138.05,
+ "low": 135.93,
+ "close": 136.53,
+ "volume": 33779876
+ },
+ {
+ "date": "2024-07-08",
+ "open": 135.49,
+ "high": 137.61,
+ "low": 134.21,
+ "close": 136.26,
+ "volume": 23678455
+ },
+ {
+ "date": "2024-07-09",
+ "open": 135.48,
+ "high": 136.69,
+ "low": 135.35,
+ "close": 136.05,
+ "volume": 21438913
+ },
+ {
+ "date": "2024-07-10",
+ "open": 136.39,
+ "high": 137.98,
+ "low": 135.28,
+ "close": 137.87,
+ "volume": 31211658
+ },
+ {
+ "date": "2024-07-11",
+ "open": 137.74,
+ "high": 140.42,
+ "low": 137.3,
+ "close": 139.13,
+ "volume": 24963524
+ },
+ {
+ "date": "2024-07-12",
+ "open": 139.14,
+ "high": 140.05,
+ "low": 136.58,
+ "close": 137.73,
+ "volume": 25765620
+ },
+ {
+ "date": "2024-07-15",
+ "open": 137.12,
+ "high": 137.81,
+ "low": 135.58,
+ "close": 135.96,
+ "volume": 15243350
+ },
+ {
+ "date": "2024-07-16",
+ "open": 137.53,
+ "high": 137.96,
+ "low": 134.8,
+ "close": 135.81,
+ "volume": 25110655
+ },
+ {
+ "date": "2024-07-17",
+ "open": 135.83,
+ "high": 138.44,
+ "low": 134.58,
+ "close": 137.81,
+ "volume": 15002463
+ },
+ {
+ "date": "2024-07-18",
+ "open": 139.28,
+ "high": 140.36,
+ "low": 137.94,
+ "close": 139.22,
+ "volume": 30749505
+ },
+ {
+ "date": "2024-07-19",
+ "open": 139.27,
+ "high": 140.22,
+ "low": 137.99,
+ "close": 139.55,
+ "volume": 34672175
+ },
+ {
+ "date": "2024-07-22",
+ "open": 138.07,
+ "high": 138.74,
+ "low": 135.44,
+ "close": 136.94,
+ "volume": 17070231
+ },
+ {
+ "date": "2024-07-23",
+ "open": 137.43,
+ "high": 138.4,
+ "low": 136.15,
+ "close": 138.22,
+ "volume": 21556726
+ },
+ {
+ "date": "2024-07-24",
+ "open": 138.36,
+ "high": 139.84,
+ "low": 136.77,
+ "close": 137.04,
+ "volume": 30374245
+ },
+ {
+ "date": "2024-07-25",
+ "open": 138.54,
+ "high": 141.77,
+ "low": 137.14,
+ "close": 140.43,
+ "volume": 27146889
+ },
+ {
+ "date": "2024-07-26",
+ "open": 141.2,
+ "high": 143.4,
+ "low": 140.96,
+ "close": 142.61,
+ "volume": 29767082
+ },
+ {
+ "date": "2024-07-29",
+ "open": 140.98,
+ "high": 142.11,
+ "low": 139.93,
+ "close": 141.84,
+ "volume": 28548940
+ },
+ {
+ "date": "2024-07-30",
+ "open": 140.09,
+ "high": 141.54,
+ "low": 137.37,
+ "close": 138.83,
+ "volume": 19603793
+ },
+ {
+ "date": "2024-07-31",
+ "open": 138.79,
+ "high": 142.01,
+ "low": 137.49,
+ "close": 140.58,
+ "volume": 32595609
+ },
+ {
+ "date": "2024-08-01",
+ "open": 140.12,
+ "high": 140.35,
+ "low": 139.36,
+ "close": 139.82,
+ "volume": 30833184
+ },
+ {
+ "date": "2024-08-02",
+ "open": 138.98,
+ "high": 139.61,
+ "low": 138.14,
+ "close": 138.7,
+ "volume": 34637773
+ },
+ {
+ "date": "2024-08-05",
+ "open": 137.61,
+ "high": 138.24,
+ "low": 136.56,
+ "close": 137.84,
+ "volume": 20616414
+ },
+ {
+ "date": "2024-08-06",
+ "open": 136.82,
+ "high": 138.22,
+ "low": 135.37,
+ "close": 138.14,
+ "volume": 26759990
+ },
+ {
+ "date": "2024-08-07",
+ "open": 137.44,
+ "high": 139.99,
+ "low": 136.35,
+ "close": 139.1,
+ "volume": 31323601
+ },
+ {
+ "date": "2024-08-08",
+ "open": 139.76,
+ "high": 141.58,
+ "low": 138.38,
+ "close": 140.27,
+ "volume": 17379822
+ },
+ {
+ "date": "2024-08-09",
+ "open": 141.32,
+ "high": 144.67,
+ "low": 139.83,
+ "close": 143.2,
+ "volume": 24804819
+ },
+ {
+ "date": "2024-08-12",
+ "open": 142.24,
+ "high": 145.09,
+ "low": 141.74,
+ "close": 144.16,
+ "volume": 26169440
+ },
+ {
+ "date": "2024-08-13",
+ "open": 142.75,
+ "high": 143.45,
+ "low": 142.5,
+ "close": 142.78,
+ "volume": 21468022
+ },
+ {
+ "date": "2024-08-14",
+ "open": 142.17,
+ "high": 142.58,
+ "low": 141.09,
+ "close": 141.42,
+ "volume": 20561453
+ },
+ {
+ "date": "2024-08-15",
+ "open": 140.54,
+ "high": 140.85,
+ "low": 138.74,
+ "close": 139.35,
+ "volume": 20312759
+ },
+ {
+ "date": "2024-08-16",
+ "open": 140.28,
+ "high": 140.94,
+ "low": 139.13,
+ "close": 140.36,
+ "volume": 29188629
+ },
+ {
+ "date": "2024-08-19",
+ "open": 141.79,
+ "high": 142.96,
+ "low": 141.19,
+ "close": 142.33,
+ "volume": 17162676
+ },
+ {
+ "date": "2024-08-20",
+ "open": 141.37,
+ "high": 142.64,
+ "low": 140.15,
+ "close": 141.8,
+ "volume": 21685590
+ },
+ {
+ "date": "2024-08-21",
+ "open": 143.3,
+ "high": 143.93,
+ "low": 140.13,
+ "close": 141.51,
+ "volume": 34902453
+ },
+ {
+ "date": "2024-08-22",
+ "open": 140.72,
+ "high": 143.22,
+ "low": 139.63,
+ "close": 142.52,
+ "volume": 20215861
+ },
+ {
+ "date": "2024-08-23",
+ "open": 140.87,
+ "high": 142.2,
+ "low": 139.23,
+ "close": 140.42,
+ "volume": 16901066
+ },
+ {
+ "date": "2024-08-26",
+ "open": 142.05,
+ "high": 143.41,
+ "low": 139.14,
+ "close": 140.36,
+ "volume": 15455830
+ },
+ {
+ "date": "2024-08-27",
+ "open": 141.93,
+ "high": 143.02,
+ "low": 139.44,
+ "close": 140.82,
+ "volume": 29134729
+ },
+ {
+ "date": "2024-08-28",
+ "open": 141.0,
+ "high": 142.24,
+ "low": 139.81,
+ "close": 141.37,
+ "volume": 18931084
+ },
+ {
+ "date": "2024-08-29",
+ "open": 143.15,
+ "high": 143.97,
+ "low": 142.06,
+ "close": 143.67,
+ "volume": 26983909
+ },
+ {
+ "date": "2024-08-30",
+ "open": 143.51,
+ "high": 144.39,
+ "low": 142.17,
+ "close": 143.85,
+ "volume": 27470681
+ },
+ {
+ "date": "2024-09-02",
+ "open": 143.95,
+ "high": 145.3,
+ "low": 143.21,
+ "close": 144.99,
+ "volume": 16377021
+ },
+ {
+ "date": "2024-09-03",
+ "open": 143.48,
+ "high": 144.1,
+ "low": 143.21,
+ "close": 143.48,
+ "volume": 30114642
+ },
+ {
+ "date": "2024-09-04",
+ "open": 143.24,
+ "high": 143.89,
+ "low": 141.98,
+ "close": 143.08,
+ "volume": 15951636
+ },
+ {
+ "date": "2024-09-05",
+ "open": 143.07,
+ "high": 143.68,
+ "low": 140.68,
+ "close": 141.52,
+ "volume": 18956749
+ },
+ {
+ "date": "2024-09-06",
+ "open": 139.95,
+ "high": 141.71,
+ "low": 138.73,
+ "close": 141.05,
+ "volume": 20778573
+ },
+ {
+ "date": "2024-09-09",
+ "open": 140.99,
+ "high": 142.3,
+ "low": 139.66,
+ "close": 141.29,
+ "volume": 18880515
+ },
+ {
+ "date": "2024-09-10",
+ "open": 139.86,
+ "high": 141.22,
+ "low": 136.91,
+ "close": 138.09,
+ "volume": 33889288
+ },
+ {
+ "date": "2024-09-11",
+ "open": 137.93,
+ "high": 139.25,
+ "low": 137.0,
+ "close": 138.25,
+ "volume": 34617435
+ },
+ {
+ "date": "2024-09-12",
+ "open": 139.23,
+ "high": 140.95,
+ "low": 139.21,
+ "close": 140.26,
+ "volume": 32973215
+ },
+ {
+ "date": "2024-09-13",
+ "open": 139.43,
+ "high": 140.79,
+ "low": 136.74,
+ "close": 137.8,
+ "volume": 17343332
+ },
+ {
+ "date": "2024-09-16",
+ "open": 136.03,
+ "high": 136.07,
+ "low": 134.4,
+ "close": 134.99,
+ "volume": 26515100
+ },
+ {
+ "date": "2024-09-17",
+ "open": 136.44,
+ "high": 138.29,
+ "low": 135.44,
+ "close": 137.46,
+ "volume": 21305151
+ },
+ {
+ "date": "2024-09-18",
+ "open": 136.14,
+ "high": 137.11,
+ "low": 132.92,
+ "close": 134.17,
+ "volume": 34234417
+ },
+ {
+ "date": "2024-09-19",
+ "open": 132.33,
+ "high": 132.57,
+ "low": 130.64,
+ "close": 131.12,
+ "volume": 31105943
+ },
+ {
+ "date": "2024-09-20",
+ "open": 132.78,
+ "high": 133.87,
+ "low": 130.04,
+ "close": 131.1,
+ "volume": 30303814
+ },
+ {
+ "date": "2024-09-23",
+ "open": 132.95,
+ "high": 134.64,
+ "low": 131.76,
+ "close": 134.11,
+ "volume": 30133341
+ },
+ {
+ "date": "2024-09-24",
+ "open": 132.91,
+ "high": 133.14,
+ "low": 131.47,
+ "close": 131.57,
+ "volume": 34349363
+ },
+ {
+ "date": "2024-09-25",
+ "open": 130.61,
+ "high": 131.16,
+ "low": 130.34,
+ "close": 130.48,
+ "volume": 19155772
+ },
+ {
+ "date": "2024-09-26",
+ "open": 132.21,
+ "high": 133.65,
+ "low": 129.15,
+ "close": 130.6,
+ "volume": 30895866
+ },
+ {
+ "date": "2024-09-27",
+ "open": 128.96,
+ "high": 129.98,
+ "low": 127.64,
+ "close": 129.49,
+ "volume": 18776052
+ },
+ {
+ "date": "2024-09-30",
+ "open": 127.69,
+ "high": 128.0,
+ "low": 127.05,
+ "close": 127.19,
+ "volume": 29103808
+ },
+ {
+ "date": "2024-10-01",
+ "open": 126.57,
+ "high": 129.71,
+ "low": 126.03,
+ "close": 128.32,
+ "volume": 28980142
+ },
+ {
+ "date": "2024-10-02",
+ "open": 130.07,
+ "high": 132.02,
+ "low": 129.51,
+ "close": 131.88,
+ "volume": 27641199
+ },
+ {
+ "date": "2024-10-03",
+ "open": 131.63,
+ "high": 134.0,
+ "low": 130.48,
+ "close": 132.64,
+ "volume": 32079114
+ },
+ {
+ "date": "2024-10-04",
+ "open": 131.17,
+ "high": 131.27,
+ "low": 129.23,
+ "close": 130.66,
+ "volume": 30712620
+ },
+ {
+ "date": "2024-10-07",
+ "open": 132.49,
+ "high": 133.04,
+ "low": 132.15,
+ "close": 132.89,
+ "volume": 20238644
+ },
+ {
+ "date": "2024-10-08",
+ "open": 132.49,
+ "high": 132.95,
+ "low": 130.17,
+ "close": 130.79,
+ "volume": 32171498
+ },
+ {
+ "date": "2024-10-09",
+ "open": 129.22,
+ "high": 130.32,
+ "low": 128.28,
+ "close": 129.43,
+ "volume": 15898294
+ },
+ {
+ "date": "2024-10-10",
+ "open": 127.68,
+ "high": 129.98,
+ "low": 126.58,
+ "close": 129.56,
+ "volume": 19550544
+ },
+ {
+ "date": "2024-10-11",
+ "open": 131.29,
+ "high": 132.09,
+ "low": 130.14,
+ "close": 132.08,
+ "volume": 26428099
+ },
+ {
+ "date": "2024-10-14",
+ "open": 131.51,
+ "high": 132.85,
+ "low": 131.08,
+ "close": 131.15,
+ "volume": 34213903
+ },
+ {
+ "date": "2024-10-15",
+ "open": 132.0,
+ "high": 132.87,
+ "low": 129.91,
+ "close": 130.39,
+ "volume": 30702138
+ },
+ {
+ "date": "2024-10-16",
+ "open": 130.0,
+ "high": 130.54,
+ "low": 128.85,
+ "close": 130.16,
+ "volume": 32559064
+ },
+ {
+ "date": "2024-10-17",
+ "open": 132.0,
+ "high": 132.13,
+ "low": 129.23,
+ "close": 130.03,
+ "volume": 31203347
+ },
+ {
+ "date": "2024-10-18",
+ "open": 131.01,
+ "high": 131.41,
+ "low": 130.62,
+ "close": 131.21,
+ "volume": 22481402
+ },
+ {
+ "date": "2024-10-21",
+ "open": 129.46,
+ "high": 130.69,
+ "low": 127.1,
+ "close": 128.22,
+ "volume": 29324309
+ },
+ {
+ "date": "2024-10-22",
+ "open": 127.02,
+ "high": 127.79,
+ "low": 125.67,
+ "close": 127.53,
+ "volume": 16812712
+ },
+ {
+ "date": "2024-10-23",
+ "open": 127.28,
+ "high": 128.61,
+ "low": 124.86,
+ "close": 125.56,
+ "volume": 34819235
+ },
+ {
+ "date": "2024-10-24",
+ "open": 125.65,
+ "high": 126.87,
+ "low": 125.08,
+ "close": 125.21,
+ "volume": 19219721
+ },
+ {
+ "date": "2024-10-25",
+ "open": 124.14,
+ "high": 124.89,
+ "low": 122.51,
+ "close": 123.02,
+ "volume": 19110801
+ },
+ {
+ "date": "2024-10-28",
+ "open": 121.34,
+ "high": 124.77,
+ "low": 120.15,
+ "close": 123.31,
+ "volume": 15839672
+ },
+ {
+ "date": "2024-10-29",
+ "open": 123.22,
+ "high": 125.14,
+ "low": 122.85,
+ "close": 124.96,
+ "volume": 16661740
+ },
+ {
+ "date": "2024-10-30",
+ "open": 126.81,
+ "high": 127.53,
+ "low": 126.29,
+ "close": 127.06,
+ "volume": 25666222
+ },
+ {
+ "date": "2024-10-31",
+ "open": 125.72,
+ "high": 126.55,
+ "low": 124.46,
+ "close": 125.43,
+ "volume": 18798381
+ },
+ {
+ "date": "2024-11-01",
+ "open": 124.96,
+ "high": 126.09,
+ "low": 123.14,
+ "close": 123.22,
+ "volume": 27325862
+ },
+ {
+ "date": "2024-11-04",
+ "open": 123.09,
+ "high": 124.27,
+ "low": 121.85,
+ "close": 122.57,
+ "volume": 20260264
+ },
+ {
+ "date": "2024-11-05",
+ "open": 124.39,
+ "high": 124.87,
+ "low": 123.4,
+ "close": 124.03,
+ "volume": 22875328
+ },
+ {
+ "date": "2024-11-06",
+ "open": 122.5,
+ "high": 123.97,
+ "low": 121.78,
+ "close": 121.82,
+ "volume": 21024422
+ },
+ {
+ "date": "2024-11-07",
+ "open": 122.17,
+ "high": 123.51,
+ "low": 121.02,
+ "close": 122.76,
+ "volume": 30914942
+ },
+ {
+ "date": "2024-11-08",
+ "open": 123.24,
+ "high": 124.41,
+ "low": 121.99,
+ "close": 123.67,
+ "volume": 16433080
+ },
+ {
+ "date": "2024-11-11",
+ "open": 125.63,
+ "high": 125.96,
+ "low": 123.51,
+ "close": 124.38,
+ "volume": 24848264
+ },
+ {
+ "date": "2024-11-12",
+ "open": 125.07,
+ "high": 125.1,
+ "low": 123.33,
+ "close": 123.87,
+ "volume": 21430428
+ },
+ {
+ "date": "2024-11-13",
+ "open": 124.17,
+ "high": 126.79,
+ "low": 122.85,
+ "close": 125.93,
+ "volume": 28435747
+ },
+ {
+ "date": "2024-11-14",
+ "open": 126.25,
+ "high": 126.57,
+ "low": 125.71,
+ "close": 126.47,
+ "volume": 27477476
+ },
+ {
+ "date": "2024-11-15",
+ "open": 126.07,
+ "high": 127.46,
+ "low": 125.97,
+ "close": 127.02,
+ "volume": 27868832
+ },
+ {
+ "date": "2024-11-18",
+ "open": 128.12,
+ "high": 128.17,
+ "low": 126.71,
+ "close": 127.09,
+ "volume": 31143198
+ },
+ {
+ "date": "2024-11-19",
+ "open": 125.91,
+ "high": 126.05,
+ "low": 123.34,
+ "close": 124.28,
+ "volume": 31226660
+ },
+ {
+ "date": "2024-11-20",
+ "open": 124.96,
+ "high": 126.33,
+ "low": 123.32,
+ "close": 124.44,
+ "volume": 30722838
+ },
+ {
+ "date": "2024-11-21",
+ "open": 124.02,
+ "high": 126.31,
+ "low": 123.51,
+ "close": 125.56,
+ "volume": 33490495
+ },
+ {
+ "date": "2024-11-22",
+ "open": 125.83,
+ "high": 127.07,
+ "low": 123.64,
+ "close": 125.03,
+ "volume": 16158385
+ },
+ {
+ "date": "2024-11-25",
+ "open": 125.75,
+ "high": 126.3,
+ "low": 124.4,
+ "close": 126.02,
+ "volume": 21994792
+ },
+ {
+ "date": "2024-11-26",
+ "open": 126.31,
+ "high": 127.46,
+ "low": 125.88,
+ "close": 126.49,
+ "volume": 26482684
+ },
+ {
+ "date": "2024-11-27",
+ "open": 125.06,
+ "high": 126.42,
+ "low": 123.43,
+ "close": 124.18,
+ "volume": 24555794
+ },
+ {
+ "date": "2024-11-28",
+ "open": 125.52,
+ "high": 125.74,
+ "low": 124.3,
+ "close": 124.89,
+ "volume": 27312658
+ },
+ {
+ "date": "2024-11-29",
+ "open": 123.83,
+ "high": 125.61,
+ "low": 122.58,
+ "close": 124.67,
+ "volume": 22902138
+ },
+ {
+ "date": "2024-12-02",
+ "open": 124.72,
+ "high": 126.31,
+ "low": 124.55,
+ "close": 124.99,
+ "volume": 15373263
+ },
+ {
+ "date": "2024-12-03",
+ "open": 125.71,
+ "high": 125.98,
+ "low": 124.64,
+ "close": 125.66,
+ "volume": 23915293
+ },
+ {
+ "date": "2024-12-04",
+ "open": 125.22,
+ "high": 125.74,
+ "low": 122.63,
+ "close": 123.42,
+ "volume": 18333714
+ },
+ {
+ "date": "2024-12-05",
+ "open": 123.71,
+ "high": 124.6,
+ "low": 123.58,
+ "close": 124.27,
+ "volume": 33604827
+ },
+ {
+ "date": "2024-12-06",
+ "open": 122.57,
+ "high": 123.69,
+ "low": 120.67,
+ "close": 121.77,
+ "volume": 30695264
+ },
+ {
+ "date": "2024-12-09",
+ "open": 122.31,
+ "high": 123.6,
+ "low": 120.81,
+ "close": 122.04,
+ "volume": 31939910
+ },
+ {
+ "date": "2024-12-10",
+ "open": 122.95,
+ "high": 124.32,
+ "low": 122.7,
+ "close": 123.63,
+ "volume": 23256643
+ },
+ {
+ "date": "2024-12-11",
+ "open": 122.75,
+ "high": 124.29,
+ "low": 122.31,
+ "close": 123.48,
+ "volume": 32533280
+ },
+ {
+ "date": "2024-12-12",
+ "open": 121.98,
+ "high": 123.26,
+ "low": 121.39,
+ "close": 122.77,
+ "volume": 18394506
+ },
+ {
+ "date": "2024-12-13",
+ "open": 121.45,
+ "high": 121.89,
+ "low": 118.53,
+ "close": 119.52,
+ "volume": 33419620
+ },
+ {
+ "date": "2024-12-16",
+ "open": 117.72,
+ "high": 118.72,
+ "low": 117.5,
+ "close": 118.19,
+ "volume": 25110812
+ },
+ {
+ "date": "2024-12-17",
+ "open": 116.51,
+ "high": 117.86,
+ "low": 115.45,
+ "close": 117.25,
+ "volume": 30124815
+ },
+ {
+ "date": "2024-12-18",
+ "open": 119.0,
+ "high": 119.58,
+ "low": 118.28,
+ "close": 119.33,
+ "volume": 20620680
+ },
+ {
+ "date": "2024-12-19",
+ "open": 117.99,
+ "high": 119.01,
+ "low": 115.48,
+ "close": 116.01,
+ "volume": 16988674
+ },
+ {
+ "date": "2024-12-20",
+ "open": 117.52,
+ "high": 120.61,
+ "low": 116.97,
+ "close": 119.21,
+ "volume": 34735302
+ },
+ {
+ "date": "2024-12-23",
+ "open": 117.22,
+ "high": 119.03,
+ "low": 116.42,
+ "close": 118.29,
+ "volume": 24797175
+ },
+ {
+ "date": "2024-12-24",
+ "open": 117.32,
+ "high": 118.19,
+ "low": 116.63,
+ "close": 117.71,
+ "volume": 18514639
+ },
+ {
+ "date": "2024-12-25",
+ "open": 116.69,
+ "high": 118.35,
+ "low": 115.45,
+ "close": 117.01,
+ "volume": 33423232
+ },
+ {
+ "date": "2024-12-26",
+ "open": 117.47,
+ "high": 118.26,
+ "low": 115.86,
+ "close": 116.88,
+ "volume": 15578643
+ },
+ {
+ "date": "2024-12-27",
+ "open": 118.43,
+ "high": 119.55,
+ "low": 118.03,
+ "close": 118.6,
+ "volume": 24026144
+ },
+ {
+ "date": "2024-12-30",
+ "open": 120.56,
+ "high": 120.79,
+ "low": 119.94,
+ "close": 120.43,
+ "volume": 25248054
+ },
+ {
+ "date": "2024-12-31",
+ "open": 118.9,
+ "high": 119.77,
+ "low": 117.47,
+ "close": 119.24,
+ "volume": 21552040
+ },
+ {
+ "date": "2025-01-01",
+ "open": 117.83,
+ "high": 119.25,
+ "low": 116.28,
+ "close": 117.2,
+ "volume": 25540411
+ },
+ {
+ "date": "2025-01-02",
+ "open": 118.54,
+ "high": 119.92,
+ "low": 116.55,
+ "close": 117.85,
+ "volume": 22357156
+ },
+ {
+ "date": "2025-01-03",
+ "open": 117.05,
+ "high": 117.08,
+ "low": 115.06,
+ "close": 115.3,
+ "volume": 24344019
+ },
+ {
+ "date": "2025-01-06",
+ "open": 115.6,
+ "high": 117.13,
+ "low": 114.91,
+ "close": 115.81,
+ "volume": 27198651
+ },
+ {
+ "date": "2025-01-07",
+ "open": 117.38,
+ "high": 118.66,
+ "low": 116.31,
+ "close": 118.47,
+ "volume": 29987976
+ },
+ {
+ "date": "2025-01-08",
+ "open": 117.57,
+ "high": 119.77,
+ "low": 117.4,
+ "close": 118.79,
+ "volume": 16296644
+ },
+ {
+ "date": "2025-01-09",
+ "open": 117.79,
+ "high": 120.05,
+ "low": 117.47,
+ "close": 119.48,
+ "volume": 26732931
+ },
+ {
+ "date": "2025-01-10",
+ "open": 119.9,
+ "high": 121.38,
+ "low": 118.2,
+ "close": 118.4,
+ "volume": 17515705
+ },
+ {
+ "date": "2025-01-13",
+ "open": 118.78,
+ "high": 119.28,
+ "low": 116.24,
+ "close": 117.17,
+ "volume": 32705979
+ },
+ {
+ "date": "2025-01-14",
+ "open": 118.99,
+ "high": 119.92,
+ "low": 117.79,
+ "close": 117.84,
+ "volume": 31338194
+ },
+ {
+ "date": "2025-01-15",
+ "open": 119.28,
+ "high": 120.83,
+ "low": 118.16,
+ "close": 120.19,
+ "volume": 18295452
+ },
+ {
+ "date": "2025-01-16",
+ "open": 121.19,
+ "high": 122.69,
+ "low": 120.15,
+ "close": 120.31,
+ "volume": 27969858
+ },
+ {
+ "date": "2025-01-17",
+ "open": 118.65,
+ "high": 121.0,
+ "low": 117.61,
+ "close": 120.53,
+ "volume": 24063647
+ },
+ {
+ "date": "2025-01-20",
+ "open": 119.83,
+ "high": 121.39,
+ "low": 118.88,
+ "close": 121.1,
+ "volume": 16540061
+ },
+ {
+ "date": "2025-01-21",
+ "open": 121.25,
+ "high": 122.18,
+ "low": 120.6,
+ "close": 120.91,
+ "volume": 32147496
+ },
+ {
+ "date": "2025-01-22",
+ "open": 119.58,
+ "high": 120.32,
+ "low": 118.95,
+ "close": 119.21,
+ "volume": 28053255
+ },
+ {
+ "date": "2025-01-23",
+ "open": 118.71,
+ "high": 119.74,
+ "low": 118.63,
+ "close": 119.56,
+ "volume": 21001764
+ },
+ {
+ "date": "2025-01-24",
+ "open": 118.3,
+ "high": 119.27,
+ "low": 116.35,
+ "close": 117.23,
+ "volume": 15914851
+ },
+ {
+ "date": "2025-01-27",
+ "open": 118.49,
+ "high": 120.21,
+ "low": 117.15,
+ "close": 119.07,
+ "volume": 21419389
+ },
+ {
+ "date": "2025-01-28",
+ "open": 120.55,
+ "high": 122.16,
+ "low": 119.25,
+ "close": 121.31,
+ "volume": 25124665
+ },
+ {
+ "date": "2025-01-29",
+ "open": 120.51,
+ "high": 120.99,
+ "low": 119.19,
+ "close": 119.23,
+ "volume": 17414723
+ },
+ {
+ "date": "2025-01-30",
+ "open": 118.6,
+ "high": 120.26,
+ "low": 118.17,
+ "close": 120.06,
+ "volume": 19711866
+ },
+ {
+ "date": "2025-01-31",
+ "open": 121.97,
+ "high": 123.33,
+ "low": 119.79,
+ "close": 120.64,
+ "volume": 18757027
+ },
+ {
+ "date": "2025-02-03",
+ "open": 122.27,
+ "high": 125.04,
+ "low": 121.53,
+ "close": 124.0,
+ "volume": 31642702
+ },
+ {
+ "date": "2025-02-04",
+ "open": 122.5,
+ "high": 123.89,
+ "low": 121.72,
+ "close": 123.85,
+ "volume": 33864097
+ },
+ {
+ "date": "2025-02-05",
+ "open": 124.34,
+ "high": 125.77,
+ "low": 123.52,
+ "close": 124.79,
+ "volume": 25819707
+ },
+ {
+ "date": "2025-02-06",
+ "open": 123.37,
+ "high": 125.77,
+ "low": 122.65,
+ "close": 124.75,
+ "volume": 28098738
+ },
+ {
+ "date": "2025-02-07",
+ "open": 123.02,
+ "high": 123.97,
+ "low": 121.35,
+ "close": 122.45,
+ "volume": 29040373
+ },
+ {
+ "date": "2025-02-10",
+ "open": 123.19,
+ "high": 124.29,
+ "low": 121.74,
+ "close": 123.75,
+ "volume": 34942081
+ },
+ {
+ "date": "2025-02-11",
+ "open": 123.74,
+ "high": 126.51,
+ "low": 122.45,
+ "close": 125.62,
+ "volume": 33081888
+ },
+ {
+ "date": "2025-02-12",
+ "open": 124.17,
+ "high": 125.4,
+ "low": 123.29,
+ "close": 123.57,
+ "volume": 25853072
+ },
+ {
+ "date": "2025-02-13",
+ "open": 123.65,
+ "high": 125.35,
+ "low": 122.28,
+ "close": 124.28,
+ "volume": 23729724
+ },
+ {
+ "date": "2025-02-14",
+ "open": 125.34,
+ "high": 127.42,
+ "low": 124.64,
+ "close": 126.5,
+ "volume": 30837487
+ },
+ {
+ "date": "2025-02-17",
+ "open": 125.36,
+ "high": 127.28,
+ "low": 124.44,
+ "close": 126.5,
+ "volume": 26351503
+ },
+ {
+ "date": "2025-02-18",
+ "open": 126.49,
+ "high": 127.22,
+ "low": 125.02,
+ "close": 126.53,
+ "volume": 17992270
+ },
+ {
+ "date": "2025-02-19",
+ "open": 126.09,
+ "high": 129.13,
+ "low": 126.06,
+ "close": 127.74,
+ "volume": 21889982
+ },
+ {
+ "date": "2025-02-20",
+ "open": 127.52,
+ "high": 129.59,
+ "low": 126.63,
+ "close": 128.3,
+ "volume": 24890884
+ },
+ {
+ "date": "2025-02-21",
+ "open": 128.01,
+ "high": 130.58,
+ "low": 127.88,
+ "close": 129.81,
+ "volume": 34498420
+ },
+ {
+ "date": "2025-02-24",
+ "open": 130.15,
+ "high": 132.39,
+ "low": 129.88,
+ "close": 131.42,
+ "volume": 34777473
+ },
+ {
+ "date": "2025-02-25",
+ "open": 130.44,
+ "high": 131.62,
+ "low": 129.83,
+ "close": 129.99,
+ "volume": 15850199
+ },
+ {
+ "date": "2025-02-26",
+ "open": 131.73,
+ "high": 134.16,
+ "low": 130.29,
+ "close": 133.73,
+ "volume": 18135695
+ },
+ {
+ "date": "2025-02-27",
+ "open": 135.6,
+ "high": 135.92,
+ "low": 132.34,
+ "close": 133.76,
+ "volume": 28513643
+ },
+ {
+ "date": "2025-02-28",
+ "open": 134.43,
+ "high": 134.8,
+ "low": 133.56,
+ "close": 134.68,
+ "volume": 25118050
+ },
+ {
+ "date": "2025-03-03",
+ "open": 133.2,
+ "high": 134.82,
+ "low": 132.2,
+ "close": 133.88,
+ "volume": 32773249
+ },
+ {
+ "date": "2025-03-04",
+ "open": 135.74,
+ "high": 136.29,
+ "low": 133.53,
+ "close": 134.29,
+ "volume": 22180371
+ },
+ {
+ "date": "2025-03-05",
+ "open": 134.92,
+ "high": 135.26,
+ "low": 133.05,
+ "close": 133.91,
+ "volume": 26386495
+ },
+ {
+ "date": "2025-03-06",
+ "open": 131.96,
+ "high": 134.12,
+ "low": 130.78,
+ "close": 133.28,
+ "volume": 32350290
+ },
+ {
+ "date": "2025-03-07",
+ "open": 134.05,
+ "high": 135.29,
+ "low": 133.51,
+ "close": 133.6,
+ "volume": 21341470
+ },
+ {
+ "date": "2025-03-10",
+ "open": 134.46,
+ "high": 134.7,
+ "low": 132.69,
+ "close": 133.8,
+ "volume": 27793008
+ },
+ {
+ "date": "2025-03-11",
+ "open": 131.84,
+ "high": 132.8,
+ "low": 130.9,
+ "close": 131.78,
+ "volume": 27094177
+ },
+ {
+ "date": "2025-03-12",
+ "open": 131.21,
+ "high": 132.5,
+ "low": 130.23,
+ "close": 131.39,
+ "volume": 30366000
+ },
+ {
+ "date": "2025-03-13",
+ "open": 131.87,
+ "high": 133.48,
+ "low": 131.6,
+ "close": 133.23,
+ "volume": 20062512
+ },
+ {
+ "date": "2025-03-14",
+ "open": 134.19,
+ "high": 135.96,
+ "low": 133.97,
+ "close": 135.67,
+ "volume": 34683657
+ },
+ {
+ "date": "2025-03-17",
+ "open": 135.59,
+ "high": 135.6,
+ "low": 133.04,
+ "close": 134.28,
+ "volume": 34228107
+ },
+ {
+ "date": "2025-03-18",
+ "open": 133.43,
+ "high": 134.77,
+ "low": 133.28,
+ "close": 134.09,
+ "volume": 24265877
+ },
+ {
+ "date": "2025-03-19",
+ "open": 133.14,
+ "high": 133.74,
+ "low": 130.39,
+ "close": 131.53,
+ "volume": 25200210
+ },
+ {
+ "date": "2025-03-20",
+ "open": 132.41,
+ "high": 133.22,
+ "low": 130.97,
+ "close": 131.68,
+ "volume": 18361166
+ },
+ {
+ "date": "2025-03-21",
+ "open": 130.08,
+ "high": 130.88,
+ "low": 128.94,
+ "close": 129.87,
+ "volume": 16009961
+ },
+ {
+ "date": "2025-03-24",
+ "open": 129.91,
+ "high": 130.25,
+ "low": 127.95,
+ "close": 127.99,
+ "volume": 19206392
+ },
+ {
+ "date": "2025-03-25",
+ "open": 128.58,
+ "high": 130.43,
+ "low": 127.89,
+ "close": 129.15,
+ "volume": 24449865
+ },
+ {
+ "date": "2025-03-26",
+ "open": 128.92,
+ "high": 129.39,
+ "low": 127.26,
+ "close": 128.71,
+ "volume": 33798767
+ },
+ {
+ "date": "2025-03-27",
+ "open": 128.81,
+ "high": 131.19,
+ "low": 127.7,
+ "close": 129.71,
+ "volume": 31923362
+ },
+ {
+ "date": "2025-03-28",
+ "open": 130.44,
+ "high": 131.93,
+ "low": 129.7,
+ "close": 130.06,
+ "volume": 34147897
+ },
+ {
+ "date": "2025-03-31",
+ "open": 129.84,
+ "high": 130.01,
+ "low": 128.36,
+ "close": 129.69,
+ "volume": 30723263
+ },
+ {
+ "date": "2025-04-01",
+ "open": 130.36,
+ "high": 130.57,
+ "low": 130.02,
+ "close": 130.26,
+ "volume": 27422992
+ },
+ {
+ "date": "2025-04-02",
+ "open": 128.92,
+ "high": 130.15,
+ "low": 126.0,
+ "close": 127.45,
+ "volume": 28908132
+ },
+ {
+ "date": "2025-04-03",
+ "open": 128.19,
+ "high": 130.72,
+ "low": 126.99,
+ "close": 130.16,
+ "volume": 19856065
+ },
+ {
+ "date": "2025-04-04",
+ "open": 128.22,
+ "high": 128.26,
+ "low": 127.02,
+ "close": 127.08,
+ "volume": 22714931
+ },
+ {
+ "date": "2025-04-07",
+ "open": 126.25,
+ "high": 129.46,
+ "low": 125.73,
+ "close": 128.15,
+ "volume": 19043909
+ },
+ {
+ "date": "2025-04-08",
+ "open": 129.79,
+ "high": 129.88,
+ "low": 127.36,
+ "close": 128.21,
+ "volume": 18290669
+ },
+ {
+ "date": "2025-04-09",
+ "open": 129.17,
+ "high": 131.34,
+ "low": 127.68,
+ "close": 129.9,
+ "volume": 21191582
+ },
+ {
+ "date": "2025-04-10",
+ "open": 128.5,
+ "high": 129.16,
+ "low": 126.57,
+ "close": 127.57,
+ "volume": 22916007
+ },
+ {
+ "date": "2025-04-11",
+ "open": 126.66,
+ "high": 129.95,
+ "low": 125.37,
+ "close": 128.55,
+ "volume": 20965788
+ },
+ {
+ "date": "2025-04-14",
+ "open": 128.97,
+ "high": 129.4,
+ "low": 127.46,
+ "close": 128.69,
+ "volume": 16902671
+ },
+ {
+ "date": "2025-04-15",
+ "open": 127.84,
+ "high": 129.26,
+ "low": 126.91,
+ "close": 128.55,
+ "volume": 24931434
+ },
+ {
+ "date": "2025-04-16",
+ "open": 126.59,
+ "high": 126.83,
+ "low": 124.69,
+ "close": 125.53,
+ "volume": 19214847
+ },
+ {
+ "date": "2025-04-17",
+ "open": 125.87,
+ "high": 126.46,
+ "low": 124.37,
+ "close": 124.71,
+ "volume": 27525252
+ },
+ {
+ "date": "2025-04-18",
+ "open": 123.47,
+ "high": 124.03,
+ "low": 122.99,
+ "close": 123.52,
+ "volume": 18070391
+ },
+ {
+ "date": "2025-04-21",
+ "open": 123.45,
+ "high": 125.75,
+ "low": 122.05,
+ "close": 124.54,
+ "volume": 24543657
+ },
+ {
+ "date": "2025-04-22",
+ "open": 124.06,
+ "high": 126.49,
+ "low": 123.6,
+ "close": 125.0,
+ "volume": 29288758
+ },
+ {
+ "date": "2025-04-23",
+ "open": 123.66,
+ "high": 125.8,
+ "low": 122.96,
+ "close": 125.36,
+ "volume": 19050845
+ },
+ {
+ "date": "2025-04-24",
+ "open": 127.07,
+ "high": 129.1,
+ "low": 126.83,
+ "close": 128.22,
+ "volume": 15953744
+ },
+ {
+ "date": "2025-04-25",
+ "open": 128.47,
+ "high": 129.05,
+ "low": 125.18,
+ "close": 126.54,
+ "volume": 22887813
+ },
+ {
+ "date": "2025-04-28",
+ "open": 127.62,
+ "high": 128.22,
+ "low": 125.62,
+ "close": 125.87,
+ "volume": 28251118
+ },
+ {
+ "date": "2025-04-29",
+ "open": 126.3,
+ "high": 128.96,
+ "low": 126.1,
+ "close": 127.83,
+ "volume": 32261419
+ },
+ {
+ "date": "2025-04-30",
+ "open": 127.36,
+ "high": 127.49,
+ "low": 126.93,
+ "close": 127.26,
+ "volume": 28377198
+ },
+ {
+ "date": "2025-05-01",
+ "open": 126.53,
+ "high": 127.49,
+ "low": 124.79,
+ "close": 124.91,
+ "volume": 20628182
+ },
+ {
+ "date": "2025-05-02",
+ "open": 125.96,
+ "high": 128.71,
+ "low": 124.76,
+ "close": 127.82,
+ "volume": 30787376
+ },
+ {
+ "date": "2025-05-05",
+ "open": 126.94,
+ "high": 127.66,
+ "low": 124.41,
+ "close": 125.74,
+ "volume": 32013880
+ },
+ {
+ "date": "2025-05-06",
+ "open": 124.48,
+ "high": 125.4,
+ "low": 122.86,
+ "close": 123.23,
+ "volume": 23927227
+ },
+ {
+ "date": "2025-05-07",
+ "open": 122.57,
+ "high": 124.98,
+ "low": 121.53,
+ "close": 124.23,
+ "volume": 28467879
+ },
+ {
+ "date": "2025-05-08",
+ "open": 125.03,
+ "high": 126.03,
+ "low": 123.96,
+ "close": 125.78,
+ "volume": 15388205
+ },
+ {
+ "date": "2025-05-09",
+ "open": 125.65,
+ "high": 127.27,
+ "low": 125.45,
+ "close": 126.43,
+ "volume": 32425175
+ },
+ {
+ "date": "2025-05-12",
+ "open": 126.97,
+ "high": 128.46,
+ "low": 125.85,
+ "close": 125.96,
+ "volume": 16928843
+ },
+ {
+ "date": "2025-05-13",
+ "open": 124.91,
+ "high": 126.72,
+ "low": 124.63,
+ "close": 126.51,
+ "volume": 15874631
+ },
+ {
+ "date": "2025-05-14",
+ "open": 126.26,
+ "high": 127.75,
+ "low": 125.65,
+ "close": 126.16,
+ "volume": 24607489
+ },
+ {
+ "date": "2025-05-15",
+ "open": 127.28,
+ "high": 127.44,
+ "low": 124.32,
+ "close": 125.81,
+ "volume": 24351526
+ },
+ {
+ "date": "2025-05-16",
+ "open": 126.24,
+ "high": 126.76,
+ "low": 125.0,
+ "close": 126.46,
+ "volume": 18640260
+ },
+ {
+ "date": "2025-05-19",
+ "open": 127.0,
+ "high": 127.82,
+ "low": 125.67,
+ "close": 127.18,
+ "volume": 26324200
+ },
+ {
+ "date": "2025-05-20",
+ "open": 128.42,
+ "high": 129.35,
+ "low": 127.53,
+ "close": 129.01,
+ "volume": 21845718
+ },
+ {
+ "date": "2025-05-21",
+ "open": 130.31,
+ "high": 131.56,
+ "low": 129.31,
+ "close": 131.45,
+ "volume": 26502001
+ },
+ {
+ "date": "2025-05-22",
+ "open": 132.9,
+ "high": 135.37,
+ "low": 132.48,
+ "close": 134.86,
+ "volume": 19986070
+ },
+ {
+ "date": "2025-05-23",
+ "open": 135.76,
+ "high": 136.85,
+ "low": 134.15,
+ "close": 135.61,
+ "volume": 25948691
+ },
+ {
+ "date": "2025-05-26",
+ "open": 134.19,
+ "high": 134.77,
+ "low": 132.95,
+ "close": 134.09,
+ "volume": 21914025
+ },
+ {
+ "date": "2025-05-27",
+ "open": 134.96,
+ "high": 136.43,
+ "low": 134.14,
+ "close": 135.86,
+ "volume": 34233432
+ },
+ {
+ "date": "2025-05-28",
+ "open": 137.44,
+ "high": 137.46,
+ "low": 134.11,
+ "close": 135.6,
+ "volume": 21915419
+ },
+ {
+ "date": "2025-05-29",
+ "open": 134.35,
+ "high": 135.1,
+ "low": 133.36,
+ "close": 134.4,
+ "volume": 20669194
+ },
+ {
+ "date": "2025-05-30",
+ "open": 132.62,
+ "high": 134.11,
+ "low": 131.28,
+ "close": 134.01,
+ "volume": 31117143
+ },
+ {
+ "date": "2025-06-02",
+ "open": 134.06,
+ "high": 135.37,
+ "low": 134.04,
+ "close": 134.91,
+ "volume": 25539340
+ },
+ {
+ "date": "2025-06-03",
+ "open": 136.79,
+ "high": 137.74,
+ "low": 135.18,
+ "close": 135.88,
+ "volume": 31287593
+ },
+ {
+ "date": "2025-06-04",
+ "open": 137.82,
+ "high": 139.98,
+ "low": 137.12,
+ "close": 139.7,
+ "volume": 26078491
+ },
+ {
+ "date": "2025-06-05",
+ "open": 141.08,
+ "high": 141.88,
+ "low": 140.49,
+ "close": 141.73,
+ "volume": 27840058
+ },
+ {
+ "date": "2025-06-06",
+ "open": 142.56,
+ "high": 144.41,
+ "low": 141.7,
+ "close": 144.2,
+ "volume": 24221004
+ },
+ {
+ "date": "2025-06-09",
+ "open": 143.06,
+ "high": 143.25,
+ "low": 141.59,
+ "close": 142.02,
+ "volume": 17342327
+ },
+ {
+ "date": "2025-06-10",
+ "open": 142.86,
+ "high": 145.44,
+ "low": 141.56,
+ "close": 144.81,
+ "volume": 34984655
+ },
+ {
+ "date": "2025-06-11",
+ "open": 144.3,
+ "high": 145.19,
+ "low": 143.44,
+ "close": 144.4,
+ "volume": 27617618
+ },
+ {
+ "date": "2025-06-12",
+ "open": 143.4,
+ "high": 144.74,
+ "low": 142.0,
+ "close": 144.49,
+ "volume": 34164315
+ },
+ {
+ "date": "2025-06-13",
+ "open": 143.25,
+ "high": 145.71,
+ "low": 143.2,
+ "close": 145.23,
+ "volume": 27528769
+ },
+ {
+ "date": "2025-06-16",
+ "open": 143.58,
+ "high": 145.03,
+ "low": 142.34,
+ "close": 142.97,
+ "volume": 34224718
+ },
+ {
+ "date": "2025-06-17",
+ "open": 143.9,
+ "high": 144.83,
+ "low": 143.78,
+ "close": 143.93,
+ "volume": 15350520
+ },
+ {
+ "date": "2025-06-18",
+ "open": 144.26,
+ "high": 145.8,
+ "low": 144.22,
+ "close": 145.31,
+ "volume": 27993603
+ },
+ {
+ "date": "2025-06-19",
+ "open": 144.22,
+ "high": 145.04,
+ "low": 143.67,
+ "close": 144.33,
+ "volume": 25138772
+ },
+ {
+ "date": "2025-06-20",
+ "open": 145.21,
+ "high": 145.53,
+ "low": 144.09,
+ "close": 144.84,
+ "volume": 23457398
+ },
+ {
+ "date": "2025-06-23",
+ "open": 143.01,
+ "high": 143.66,
+ "low": 142.95,
+ "close": 143.41,
+ "volume": 19753695
+ },
+ {
+ "date": "2025-06-24",
+ "open": 141.64,
+ "high": 143.19,
+ "low": 140.22,
+ "close": 142.03,
+ "volume": 25819750
+ },
+ {
+ "date": "2025-06-25",
+ "open": 141.73,
+ "high": 143.1,
+ "low": 140.34,
+ "close": 141.66,
+ "volume": 34193217
+ },
+ {
+ "date": "2025-06-26",
+ "open": 140.83,
+ "high": 140.87,
+ "low": 138.3,
+ "close": 139.6,
+ "volume": 18343664
+ },
+ {
+ "date": "2025-06-27",
+ "open": 137.89,
+ "high": 140.13,
+ "low": 136.83,
+ "close": 138.76,
+ "volume": 20323148
+ },
+ {
+ "date": "2025-06-30",
+ "open": 140.11,
+ "high": 140.57,
+ "low": 137.57,
+ "close": 138.35,
+ "volume": 25628026
+ }
+]
\ No newline at end of file
diff --git a/angular/src/app/chart/data/tsla-data.json b/angular/src/app/chart/data/tsla-data.json
new file mode 100644
index 0000000..b0da1fc
--- /dev/null
+++ b/angular/src/app/chart/data/tsla-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 195.66,
+ "High": 195.82,
+ "Low": 193.84,
+ "Close": 193.86
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 193.54,
+ "High": 193.87,
+ "Low": 192.46,
+ "Close": 192.55
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 193.06,
+ "High": 193.17,
+ "Low": 192.71,
+ "Close": 192.81
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 194.47,
+ "High": 195.45,
+ "Low": 192.64,
+ "Close": 195.38
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.01,
+ "High": 197.21,
+ "Low": 195.16,
+ "Close": 195.7
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 194.47,
+ "High": 196.23,
+ "Low": 193.01,
+ "Close": 195.24
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.28,
+ "High": 194.8,
+ "Low": 192.46,
+ "Close": 193.87
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 192.4,
+ "High": 194.3,
+ "Low": 192.29,
+ "Close": 193.74
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 195.05,
+ "High": 196.03,
+ "Low": 193.28,
+ "Close": 193.54
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 192.99,
+ "High": 193.79,
+ "Low": 191.7,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 190.34,
+ "High": 190.51,
+ "Low": 188.47,
+ "Close": 189.21
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 189.93,
+ "High": 190.33,
+ "Low": 188.1,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 188.65,
+ "High": 188.92,
+ "Low": 187.77,
+ "Close": 188.45
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 188.27,
+ "High": 189.07,
+ "Low": 186.78,
+ "Close": 186.95
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 186.35,
+ "High": 188.13,
+ "Low": 184.46,
+ "Close": 186.47
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 185.91,
+ "High": 186.34,
+ "Low": 184.89,
+ "Close": 185.64
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 184.99,
+ "High": 185.48,
+ "Low": 183.15,
+ "Close": 184.34
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 183.49,
+ "High": 183.49,
+ "Low": 182.74,
+ "Close": 182.75
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 184.73,
+ "High": 185.05,
+ "Low": 183.16,
+ "Close": 183.41
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 184.89,
+ "High": 186.59,
+ "Low": 183.44,
+ "Close": 186.16
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 184.85,
+ "High": 186.63,
+ "Low": 184.52,
+ "Close": 185.09
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 183.31,
+ "High": 184.75,
+ "Low": 182.73,
+ "Close": 184.16
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 185.26,
+ "High": 185.75,
+ "Low": 184.33,
+ "Close": 185.42
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 184.56,
+ "High": 185.42,
+ "Low": 184.46,
+ "Close": 184.85
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 186.46,
+ "High": 188.11,
+ "Low": 185.82,
+ "Close": 187.76
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 188.43,
+ "High": 190.37,
+ "Low": 186.47,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 188.09,
+ "High": 189.71,
+ "Low": 186.7,
+ "Close": 188.21
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 189.42,
+ "High": 191.01,
+ "Low": 188.7,
+ "Close": 190.54
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 191.55,
+ "High": 191.8,
+ "Low": 191.17,
+ "Close": 191.74
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 191.07,
+ "High": 192.23,
+ "Low": 189.36,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 192.98,
+ "High": 194.2,
+ "Low": 191.88,
+ "Close": 192.1
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 191.4,
+ "High": 192.95,
+ "Low": 190.37,
+ "Close": 192.92
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 193.41,
+ "High": 194.71,
+ "Low": 193.24,
+ "Close": 194.66
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 192.87,
+ "High": 194.07,
+ "Low": 191.97,
+ "Close": 192.37
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 192.73,
+ "High": 194.0,
+ "Low": 191.06,
+ "Close": 191.11
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 189.48,
+ "High": 189.67,
+ "Low": 188.61,
+ "Close": 189.65
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 190.6,
+ "High": 191.19,
+ "Low": 189.29,
+ "Close": 190.11
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 191.5,
+ "High": 192.53,
+ "Low": 190.21,
+ "Close": 190.37
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 191.04,
+ "High": 191.5,
+ "Low": 189.48,
+ "Close": 191.33
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 191.47,
+ "High": 191.49,
+ "Low": 190.22,
+ "Close": 190.41
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 192.19,
+ "High": 193.05,
+ "Low": 190.63,
+ "Close": 191.18
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 189.78,
+ "High": 191.53,
+ "Low": 188.75,
+ "Close": 188.89
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 188.02,
+ "High": 189.69,
+ "Low": 186.35,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 185.82,
+ "High": 186.41,
+ "Low": 183.98,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 185.03,
+ "High": 185.53,
+ "Low": 184.58,
+ "Close": 185.2
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 184.49,
+ "High": 184.49,
+ "Low": 184.19,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 184.67,
+ "High": 185.21,
+ "Low": 184.02,
+ "Close": 184.21
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 185.63,
+ "High": 185.86,
+ "Low": 185.62,
+ "Close": 185.65
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 186.12,
+ "High": 187.17,
+ "Low": 185.38,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 187.26,
+ "High": 187.39,
+ "Low": 185.47,
+ "Close": 185.73
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 187.61,
+ "High": 189.53,
+ "Low": 186.6,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 185.28,
+ "High": 185.91,
+ "Low": 183.77,
+ "Close": 183.79
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 182.37,
+ "High": 182.42,
+ "Low": 182.05,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 182.2,
+ "High": 183.2,
+ "Low": 181.85,
+ "Close": 182.82
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 181.13,
+ "High": 181.47,
+ "Low": 180.91,
+ "Close": 181.38
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 181.95,
+ "High": 183.37,
+ "Low": 181.41,
+ "Close": 182.18
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 181.12,
+ "High": 182.67,
+ "Low": 179.76,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 179.96,
+ "High": 180.57,
+ "Low": 179.63,
+ "Close": 180.49
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 182.48,
+ "High": 184.27,
+ "Low": 181.04,
+ "Close": 181.67
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 183.14,
+ "High": 184.14,
+ "Low": 183.06,
+ "Close": 184.1
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 185.02,
+ "High": 185.51,
+ "Low": 183.19,
+ "Close": 185.18
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 184.77,
+ "High": 185.25,
+ "Low": 183.16,
+ "Close": 184.64
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.45,
+ "High": 185.46,
+ "Low": 184.29,
+ "Close": 184.47
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 183.99,
+ "High": 185.17,
+ "Low": 182.9,
+ "Close": 183.26
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 182.65,
+ "High": 183.76,
+ "Low": 180.99,
+ "Close": 183.32
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 182.52,
+ "High": 184.48,
+ "Low": 182.48,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 183.67,
+ "High": 185.11,
+ "Low": 182.29,
+ "Close": 183.1
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 181.28,
+ "High": 181.81,
+ "Low": 180.99,
+ "Close": 181.72
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 183.16,
+ "High": 183.46,
+ "Low": 181.86,
+ "Close": 182.58
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 183.46,
+ "High": 184.67,
+ "Low": 182.35,
+ "Close": 183.94
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 183.82,
+ "High": 185.45,
+ "Low": 181.87,
+ "Close": 184.19
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 185.96,
+ "High": 187.79,
+ "Low": 185.22,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.88,
+ "High": 184.95,
+ "Low": 183.85,
+ "Close": 184.06
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 182.43,
+ "High": 183.61,
+ "Low": 182.33,
+ "Close": 182.83
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 183.67,
+ "High": 184.3,
+ "Low": 183.36,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 185.63,
+ "High": 187.5,
+ "Low": 185.03,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 184.73,
+ "High": 185.32,
+ "Low": 184.25,
+ "Close": 184.94
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 186.52,
+ "High": 187.92,
+ "Low": 186.34,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 188.82,
+ "High": 189.36,
+ "Low": 188.3,
+ "Close": 189.28
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 187.6,
+ "High": 188.86,
+ "Low": 187.24,
+ "Close": 187.35
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 188.62,
+ "High": 188.97,
+ "Low": 186.73,
+ "Close": 186.99
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 186.85,
+ "High": 187.14,
+ "Low": 185.83,
+ "Close": 186.51
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 187.86,
+ "High": 188.1,
+ "Low": 186.43,
+ "Close": 187.71
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.19,
+ "High": 186.44,
+ "Low": 185.14,
+ "Close": 185.59
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 184.74,
+ "High": 185.53,
+ "Low": 183.75,
+ "Close": 185.34
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 186.81,
+ "High": 188.37,
+ "Low": 186.63,
+ "Close": 186.79
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.02,
+ "High": 187.27,
+ "Low": 185.59,
+ "Close": 185.8
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 183.85,
+ "High": 185.2,
+ "Low": 182.76,
+ "Close": 184.74
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 185.51,
+ "High": 186.83,
+ "Low": 184.31,
+ "Close": 186.29
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 186.1,
+ "High": 188.02,
+ "Low": 184.11,
+ "Close": 186.12
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 187.28,
+ "High": 187.73,
+ "Low": 186.07,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 185.94,
+ "High": 186.09,
+ "Low": 185.87,
+ "Close": 186.06
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 187.97,
+ "High": 189.29,
+ "Low": 187.41,
+ "Close": 188.76
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 187.22,
+ "High": 188.11,
+ "Low": 186.53,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 186.19,
+ "High": 187.91,
+ "Low": 185.03,
+ "Close": 186.65
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 185.91,
+ "High": 187.61,
+ "Low": 185.85,
+ "Close": 187.25
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 187.22,
+ "High": 187.45,
+ "Low": 187.02,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 189.12,
+ "High": 189.37,
+ "Low": 188.37,
+ "Close": 188.77
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 188.14,
+ "High": 188.84,
+ "Low": 187.98,
+ "Close": 188.0
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 186.66,
+ "High": 188.54,
+ "Low": 185.12,
+ "Close": 187.31
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 186.52,
+ "High": 188.11,
+ "Low": 185.21,
+ "Close": 186.46
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 187.18,
+ "High": 188.3,
+ "Low": 186.35,
+ "Close": 187.41
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 186.14,
+ "High": 186.53,
+ "Low": 185.59,
+ "Close": 186.44
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 186.36,
+ "High": 187.64,
+ "Low": 185.42,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 185.85,
+ "High": 186.91,
+ "Low": 185.04,
+ "Close": 186.76
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 187.81,
+ "High": 188.54,
+ "Low": 187.66,
+ "Close": 187.91
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.42,
+ "High": 188.86,
+ "Low": 186.32,
+ "Close": 186.84
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 185.81,
+ "High": 186.6,
+ "Low": 184.96,
+ "Close": 184.97
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 183.02,
+ "High": 183.53,
+ "Low": 181.04,
+ "Close": 183.19
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 182.96,
+ "High": 184.58,
+ "Low": 181.53,
+ "Close": 183.92
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 185.24,
+ "High": 186.47,
+ "Low": 183.93,
+ "Close": 185.47
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 186.99,
+ "High": 187.19,
+ "Low": 186.48,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 187.2,
+ "High": 188.46,
+ "Low": 186.92,
+ "Close": 187.09
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 187.91,
+ "High": 187.96,
+ "Low": 186.32,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 188.22,
+ "High": 189.15,
+ "Low": 188.18,
+ "Close": 189.07
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.84,
+ "High": 190.87,
+ "Low": 189.34,
+ "Close": 189.68
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 188.63,
+ "High": 188.97,
+ "Low": 188.13,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 190.52,
+ "High": 192.05,
+ "Low": 190.5,
+ "Close": 191.41
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 193.23,
+ "High": 193.26,
+ "Low": 191.72,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.65,
+ "High": 194.62,
+ "Low": 193.13,
+ "Close": 193.25
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 194.02,
+ "High": 194.96,
+ "Low": 192.67,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 195.17,
+ "High": 196.46,
+ "Low": 193.96,
+ "Close": 194.86
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 195.74,
+ "High": 197.71,
+ "Low": 194.45,
+ "Close": 195.52
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 197.34,
+ "High": 198.14,
+ "Low": 195.82,
+ "Close": 197.66
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 195.84,
+ "High": 196.87,
+ "Low": 195.17,
+ "Close": 196.66
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 195.6,
+ "High": 197.45,
+ "Low": 194.58,
+ "Close": 196.73
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 195.22,
+ "High": 195.45,
+ "Low": 194.98,
+ "Close": 195.33
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 197.24,
+ "High": 198.3,
+ "Low": 196.44,
+ "Close": 196.72
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 197.82,
+ "High": 197.94,
+ "Low": 196.01,
+ "Close": 197.9
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 197.57,
+ "High": 198.09,
+ "Low": 195.95,
+ "Close": 196.75
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 195.06,
+ "High": 196.38,
+ "Low": 193.09,
+ "Close": 193.41
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 193.53,
+ "High": 194.26,
+ "Low": 192.13,
+ "Close": 192.3
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 190.38,
+ "High": 191.1,
+ "Low": 189.02,
+ "Close": 189.31
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.98,
+ "High": 189.05,
+ "Low": 187.3,
+ "Close": 188.03
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 187.74,
+ "High": 187.81,
+ "Low": 187.22,
+ "Close": 187.55
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.09,
+ "High": 187.14,
+ "Low": 185.52,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 186.16,
+ "High": 188.01,
+ "Low": 185.81,
+ "Close": 187.76
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 188.28,
+ "High": 188.85,
+ "Low": 187.06,
+ "Close": 187.32
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 187.65,
+ "High": 189.42,
+ "Low": 187.23,
+ "Close": 188.99
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 188.68,
+ "High": 190.2,
+ "Low": 186.71,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 189.19,
+ "High": 189.35,
+ "Low": 188.07,
+ "Close": 189.22
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 188.09,
+ "High": 189.68,
+ "Low": 187.77,
+ "Close": 188.92
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 188.84,
+ "High": 190.76,
+ "Low": 187.79,
+ "Close": 189.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 190.87,
+ "High": 191.81,
+ "Low": 190.07,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 191.0,
+ "High": 192.4,
+ "Low": 189.38,
+ "Close": 191.28
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 189.67,
+ "High": 190.07,
+ "Low": 189.32,
+ "Close": 189.81
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 189.37,
+ "High": 190.71,
+ "Low": 188.05,
+ "Close": 188.89
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 188.01,
+ "High": 189.31,
+ "Low": 186.59,
+ "Close": 187.2
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 187.45,
+ "High": 188.25,
+ "Low": 186.99,
+ "Close": 187.91
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 187.36,
+ "High": 187.55,
+ "Low": 186.89,
+ "Close": 187.43
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 187.43,
+ "High": 187.56,
+ "Low": 186.49,
+ "Close": 186.5
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 188.4,
+ "High": 189.15,
+ "Low": 187.29,
+ "Close": 188.28
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 189.36,
+ "High": 189.64,
+ "Low": 189.25,
+ "Close": 189.6
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 190.83,
+ "High": 192.32,
+ "Low": 189.02,
+ "Close": 189.09
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 190.72,
+ "High": 191.82,
+ "Low": 190.59,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 193.03,
+ "High": 194.31,
+ "Low": 191.75,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 194.85,
+ "High": 194.97,
+ "Low": 194.33,
+ "Close": 194.61
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 194.15,
+ "High": 194.31,
+ "Low": 193.1,
+ "Close": 193.53
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 192.71,
+ "High": 193.71,
+ "Low": 192.3,
+ "Close": 192.42
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 193.56,
+ "High": 195.06,
+ "Low": 192.39,
+ "Close": 194.3
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 194.13,
+ "High": 195.49,
+ "Low": 193.23,
+ "Close": 194.15
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 193.87,
+ "High": 194.28,
+ "Low": 191.88,
+ "Close": 193.85
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 194.08,
+ "High": 194.92,
+ "Low": 193.29,
+ "Close": 194.37
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 195.95,
+ "High": 196.12,
+ "Low": 194.59,
+ "Close": 194.76
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 196.67,
+ "High": 197.2,
+ "Low": 195.87,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 197.8,
+ "High": 198.45,
+ "Low": 197.39,
+ "Close": 198.1
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 196.5,
+ "High": 196.53,
+ "Low": 196.42,
+ "Close": 196.49
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 198.21,
+ "High": 199.98,
+ "Low": 196.75,
+ "Close": 199.62
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 199.75,
+ "High": 200.36,
+ "Low": 198.57,
+ "Close": 199.63
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 197.92,
+ "High": 199.83,
+ "Low": 195.96,
+ "Close": 196.73
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 197.58,
+ "High": 198.27,
+ "Low": 196.56,
+ "Close": 197.9
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 199.68,
+ "High": 199.99,
+ "Low": 199.67,
+ "Close": 199.96
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 200.89,
+ "High": 202.56,
+ "Low": 200.44,
+ "Close": 201.75
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 203.12,
+ "High": 204.07,
+ "Low": 202.32,
+ "Close": 203.07
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 203.29,
+ "High": 204.58,
+ "Low": 201.8,
+ "Close": 203.09
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 204.76,
+ "High": 205.95,
+ "Low": 204.23,
+ "Close": 205.26
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 205.83,
+ "High": 206.98,
+ "Low": 205.09,
+ "Close": 205.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 206.2,
+ "High": 207.54,
+ "Low": 204.63,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 204.69,
+ "High": 205.3,
+ "Low": 204.17,
+ "Close": 205.09
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 203.85,
+ "High": 204.63,
+ "Low": 202.53,
+ "Close": 204.25
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 206.23,
+ "High": 207.04,
+ "Low": 204.61,
+ "Close": 206.76
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 205.49,
+ "High": 205.94,
+ "Low": 203.95,
+ "Close": 205.46
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 203.83,
+ "High": 204.1,
+ "Low": 203.11,
+ "Close": 204.04
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 203.66,
+ "High": 205.08,
+ "Low": 203.03,
+ "Close": 203.39
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 203.25,
+ "High": 203.33,
+ "Low": 202.56,
+ "Close": 202.58
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 203.82,
+ "High": 205.4,
+ "Low": 203.6,
+ "Close": 204.42
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 204.05,
+ "High": 204.1,
+ "Low": 203.78,
+ "Close": 203.93
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 204.4,
+ "High": 205.85,
+ "Low": 203.03,
+ "Close": 203.06
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 203.74,
+ "High": 203.82,
+ "Low": 203.11,
+ "Close": 203.66
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 205.41,
+ "High": 206.08,
+ "Low": 203.65,
+ "Close": 205.55
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 204.87,
+ "High": 206.03,
+ "Low": 204.11,
+ "Close": 205.9
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 206.51,
+ "High": 208.2,
+ "Low": 205.47,
+ "Close": 205.93
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 207.88,
+ "High": 209.87,
+ "Low": 206.21,
+ "Close": 208.94
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 208.24,
+ "High": 208.93,
+ "Low": 206.62,
+ "Close": 207.73
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 205.85,
+ "High": 206.28,
+ "Low": 205.57,
+ "Close": 205.58
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 206.61,
+ "High": 206.68,
+ "Low": 205.31,
+ "Close": 205.47
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 206.32,
+ "High": 207.32,
+ "Low": 205.77,
+ "Close": 206.75
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 205.13,
+ "High": 205.3,
+ "Low": 204.89,
+ "Close": 205.03
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 204.62,
+ "High": 205.7,
+ "Low": 203.28,
+ "Close": 205.57
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 206.18,
+ "High": 207.23,
+ "Low": 204.98,
+ "Close": 206.03
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 207.74,
+ "High": 209.45,
+ "Low": 206.4,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 208.98,
+ "High": 209.29,
+ "Low": 207.81,
+ "Close": 209.03
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 207.83,
+ "High": 208.36,
+ "Low": 206.36,
+ "Close": 207.32
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 208.76,
+ "High": 209.78,
+ "Low": 208.08,
+ "Close": 209.55
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 211.32,
+ "High": 212.24,
+ "Low": 210.25,
+ "Close": 210.52
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 209.02,
+ "High": 209.1,
+ "Low": 208.82,
+ "Close": 208.9
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 208.19,
+ "High": 210.07,
+ "Low": 207.67,
+ "Close": 208.02
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 206.89,
+ "High": 206.91,
+ "Low": 206.49,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 207.69,
+ "High": 208.0,
+ "Low": 207.09,
+ "Close": 207.9
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 209.08,
+ "High": 210.92,
+ "Low": 208.09,
+ "Close": 209.23
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 207.32,
+ "High": 208.94,
+ "Low": 206.62,
+ "Close": 206.91
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 205.61,
+ "High": 207.41,
+ "Low": 203.83,
+ "Close": 206.05
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 205.79,
+ "High": 207.41,
+ "Low": 204.24,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 206.83,
+ "High": 207.27,
+ "Low": 206.48,
+ "Close": 206.77
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 208.7,
+ "High": 209.27,
+ "Low": 206.81,
+ "Close": 208.95
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 207.78,
+ "High": 208.79,
+ "Low": 206.42,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 207.19,
+ "High": 208.82,
+ "Low": 206.03,
+ "Close": 206.85
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 205.48,
+ "High": 207.14,
+ "Low": 203.65,
+ "Close": 205.97
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 207.46,
+ "High": 207.8,
+ "Low": 206.95,
+ "Close": 207.71
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 208.69,
+ "High": 210.44,
+ "Low": 208.09,
+ "Close": 208.85
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 206.89,
+ "High": 207.54,
+ "Low": 205.18,
+ "Close": 207.0
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 206.09,
+ "High": 206.99,
+ "Low": 205.08,
+ "Close": 206.5
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 207.6,
+ "High": 208.61,
+ "Low": 207.34,
+ "Close": 207.56
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 207.25,
+ "High": 208.68,
+ "Low": 206.94,
+ "Close": 208.42
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 210.13,
+ "High": 210.97,
+ "Low": 208.81,
+ "Close": 209.58
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 209.39,
+ "High": 211.16,
+ "Low": 208.3,
+ "Close": 208.59
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 207.77,
+ "High": 209.75,
+ "Low": 206.92,
+ "Close": 208.67
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 206.79,
+ "High": 208.59,
+ "Low": 206.41,
+ "Close": 206.84
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 206.3,
+ "High": 207.25,
+ "Low": 205.95,
+ "Close": 206.8
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 207.51,
+ "High": 207.67,
+ "Low": 207.46,
+ "Close": 207.53
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 206.48,
+ "High": 207.63,
+ "Low": 205.08,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 203.94,
+ "High": 204.3,
+ "Low": 203.02,
+ "Close": 204.24
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 205.51,
+ "High": 206.12,
+ "Low": 203.69,
+ "Close": 204.55
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 206.54,
+ "High": 207.86,
+ "Low": 205.79,
+ "Close": 207.52
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 206.62,
+ "High": 206.83,
+ "Low": 205.6,
+ "Close": 206.41
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 205.45,
+ "High": 206.31,
+ "Low": 205.24,
+ "Close": 206.04
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 205.84,
+ "High": 207.09,
+ "Low": 204.75,
+ "Close": 205.78
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 203.97,
+ "High": 204.23,
+ "Low": 203.95,
+ "Close": 204.23
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 202.26,
+ "High": 203.82,
+ "Low": 201.83,
+ "Close": 203.49
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 201.88,
+ "High": 203.77,
+ "Low": 199.91,
+ "Close": 201.62
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 201.67,
+ "High": 202.33,
+ "Low": 200.18,
+ "Close": 201.65
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 200.18,
+ "High": 202.16,
+ "Low": 198.46,
+ "Close": 200.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 199.98,
+ "High": 201.84,
+ "Low": 198.49,
+ "Close": 199.42
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 199.6,
+ "High": 201.07,
+ "Low": 199.46,
+ "Close": 200.74
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 202.07,
+ "High": 203.96,
+ "Low": 200.85,
+ "Close": 203.31
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 202.02,
+ "High": 203.92,
+ "Low": 200.35,
+ "Close": 202.19
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 200.88,
+ "High": 202.7,
+ "Low": 199.06,
+ "Close": 200.81
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 198.92,
+ "High": 199.22,
+ "Low": 198.67,
+ "Close": 198.98
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 200.04,
+ "High": 200.28,
+ "Low": 198.93,
+ "Close": 200.03
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 199.54,
+ "High": 199.56,
+ "Low": 199.37,
+ "Close": 199.46
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 200.74,
+ "High": 201.1,
+ "Low": 199.3,
+ "Close": 199.31
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 200.32,
+ "High": 202.23,
+ "Low": 198.89,
+ "Close": 201.73
+ }
+]
\ No newline at end of file
diff --git a/angular/src/app/chart/image/amazon.png b/angular/src/app/chart/image/amazon.png
new file mode 100644
index 0000000..2805452
Binary files /dev/null and b/angular/src/app/chart/image/amazon.png differ
diff --git a/angular/src/app/chart/image/google.png b/angular/src/app/chart/image/google.png
new file mode 100644
index 0000000..2509038
Binary files /dev/null and b/angular/src/app/chart/image/google.png differ
diff --git a/angular/src/app/chart/image/microsoft.png b/angular/src/app/chart/image/microsoft.png
new file mode 100644
index 0000000..60dc2d4
Binary files /dev/null and b/angular/src/app/chart/image/microsoft.png differ
diff --git a/angular/src/app/chart/image/tesla.png b/angular/src/app/chart/image/tesla.png
new file mode 100644
index 0000000..5fc6954
Binary files /dev/null and b/angular/src/app/chart/image/tesla.png differ
diff --git a/angular/src/app/chart/stockForecasting/stockForecast.component.css b/angular/src/app/chart/stockForecasting/stockForecast.component.css
new file mode 100644
index 0000000..76fcf9c
--- /dev/null
+++ b/angular/src/app/chart/stockForecasting/stockForecast.component.css
@@ -0,0 +1,153 @@
+.para {
+ padding-top: 5px;
+}
+
+.stock-info {
+ display: flex;
+ align-items: flex-start;
+ gap: 16px;
+ margin-left: 10px;
+ padding: 5px;
+}
+
+.price {
+ font-size: 20px;
+ font-weight: bold;
+ padding-right: 2px;
+}
+
+.e-dropdown {
+ padding: 5px 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ width: 100%;
+}
+
+.e-dropdown option {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+[data-icon] {
+ position: relative;
+ padding-left: 25px;
+}
+
+[data-icon]::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 20px;
+ height: 20px;
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+[data-icon="e-logo-msft"]::before {
+ background-image: url('../image/microsoft.png');
+}
+
+[data-icon="e-logo-goog"]::before {
+ background-image: url('../image/google.png');
+}
+
+[data-icon="e-logo-amzn"]::before {
+ background-image: url('../image/amazon.png');
+}
+
+[data-icon="e-logo-tsla"]::before {
+ background-image: url('../image/tesla.png');
+}
+
+.control-section {
+ display: flex;
+ flex-direction: column;
+}
+
+.sidebar {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ padding: 20px;
+}
+
+.stock-selection {
+ padding: 5px;
+}
+
+.main-content {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.control-bar {
+ display: flex;
+ justify-content: space-between;
+ padding: 10px 20px;
+}
+
+.range-buttons .e-btn-group {
+ display: flex;
+ gap: 10px;
+}
+
+.chart-controls {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.chart-container {
+ position: relative;
+ flex-grow: 1;
+}
+
+#chartWrapper {
+ height: 100%;
+}
+
+#stock-change {
+ margin: 0;
+}
+
+.chart-action-button {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #6f16ef;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
+ padding: 0;
+}
+
+.chart-action-button:hover {
+ background-color: #5811c9;
+}
+
+.chart-action-button .e-btn-icon.e-icons {
+ color: #fff;
+ font-size: 20px;
+}
+
+.chart-spinner-overlay {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: none;
+}
+
+.chart-spinner-overlay .e-spinner {
+ width: 20px;
+ height: 20px;
+}
\ No newline at end of file
diff --git a/angular/src/app/chart/stockForecasting/stockForecast.component.html b/angular/src/app/chart/stockForecasting/stockForecast.component.html
new file mode 100644
index 0000000..816f16a
--- /dev/null
+++ b/angular/src/app/chart/stockForecasting/stockForecast.component.html
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/angular/src/app/chart/stockForecasting/stockForecast.component.ts b/angular/src/app/chart/stockForecasting/stockForecast.component.ts
new file mode 100644
index 0000000..3ae481a
--- /dev/null
+++ b/angular/src/app/chart/stockForecasting/stockForecast.component.ts
@@ -0,0 +1,254 @@
+import { Component, ViewChild, AfterViewInit } from '@angular/core';
+import { FormsModule } from '@angular/forms';
+import { CommonModule } from '@angular/common';
+import { ChartModule, ChartComponent, CandleSeriesService, LineSeriesService, HiloOpenCloseSeriesService, DateTimeService, CrosshairService, TooltipService, LegendService } from '@syncfusion/ej2-angular-charts';
+import { ButtonModule } from '@syncfusion/ej2-angular-buttons';
+import msftData from '../data/msft-data.json';
+import googData from '../data/goog-data.json';
+import amznData from '../data/amzn-data.json';
+import tslaData from '../data/tsla-data.json';
+
+interface StockInfo {
+ symbol: string;
+ text: string;
+ close: number;
+ change: number;
+ percentChange: number;
+}
+
+interface ChartPoint {
+ date: Date;
+ high: number;
+ low: number;
+ open: number;
+ close: number;
+}
+
+@Component({
+ selector: 'app-stock-forecast',
+ templateUrl: './stockForecast.component.html',
+ styleUrls: ['./stockForecast.component.css'],
+ standalone: true,
+ imports: [CommonModule, FormsModule, ChartModule, ButtonModule],
+ providers: [CandleSeriesService, LineSeriesService, HiloOpenCloseSeriesService, DateTimeService, CrosshairService, TooltipService, LegendService]
+})
+export class StockForecastComponent implements AfterViewInit {
+ @ViewChild('chart', { static: true }) chartObject!: ChartComponent;
+
+ selectedSymbol: string = 'MSFT';
+ selectedSeriesType: string = 'Candle';
+ selectedRange: number = 3;
+ chartData: ChartPoint[] = [];
+ stripStartDate: Date = new Date();
+ stripEndDate: Date = new Date();
+ selectedStockInfo: StockInfo = this.getDefaultStockInfo('MSFT');
+ isSpinnerVisible: boolean = false;
+
+ stocks = [
+ { symbol: 'MSFT', text: 'Microsoft Corp', icon: '../image/microsoft.png' },
+ { symbol: 'GOOG', text: 'Alphabet Inc', icon: '../image/google.png' },
+ { symbol: 'AMZN', text: 'Amazon Inc', icon: '../image/amazon.png' },
+ { symbol: 'TSLA', text: 'Tesla Inc', icon: '../image/tesla.png' }
+ ];
+
+ seriesOptions: string[] = ['Candle', 'Line', 'HiloOpenClose'];
+
+ public primaryXAxis = {
+ valueType: 'DateTime',
+ labelFormat: 'MMM yyyy',
+ crosshairTooltip: { enable: true },
+ majorGridLines: { width: 0 },
+ stripLines: [{ start: this.stripStartDate, end: this.stripEndDate, color: '#E0E0E0' }]
+ };
+
+ public primaryYAxis = {
+ rangePadding: 'None',
+ labelFormat: 'n0',
+ lineStyle: { width: 0 },
+ majorTickLines: { width: 0 }
+ };
+
+ public legendSettings = { visible: false };
+ public tooltip = { enable: true, shared: true, header: '' };
+ public crosshair = { enable: true, lineType: 'Vertical' };
+ public chartArea = { border: { width: 0 } };
+ public width = '100%';
+ public theme: string = this.getTheme();
+
+ ngAfterViewInit(): void {
+ this.loadChartData();
+ }
+
+ private getTheme(): string {
+ const mode = window.location.href.includes('dark') ? 'Dark' : 'Light';
+ return `Material${mode}`;
+ }
+
+ public onChartLoad(args: any): void {
+ args.chart.theme = this.getTheme();
+ }
+
+ private getDefaultStockInfo(symbol: string): StockInfo {
+ switch (symbol) {
+ case 'MSFT':
+ return { symbol: 'MSFT', text: 'Microsoft Corp', close: 138.35, change: -2.0, percentChange: -0.22 };
+ case 'GOOG':
+ return { symbol: 'GOOG', text: 'Alphabet Inc', close: 152.83, change: -2.0, percentChange: -0.22 };
+ case 'AMZN':
+ return { symbol: 'AMZN', text: 'Amazon Inc', close: 222.27, change: -2.0, percentChange: -0.22 };
+ case 'TSLA':
+ return { symbol: 'TSLA', text: 'Tesla Inc', close: 201.73, change: -2.0, percentChange: -0.22 };
+ default:
+ return { symbol, text: '', close: 0.0, change: 0.0, percentChange: 0.0 };
+ }
+ }
+
+ private loadChartData(): void {
+ try {
+ let json: any[] = [];
+ if (this.selectedSymbol === 'GOOG') {
+ json = googData;
+ } else if (this.selectedSymbol === 'AMZN') {
+ json = amznData;
+ } else if (this.selectedSymbol === 'TSLA') {
+ json = tslaData;
+ } else {
+ json = msftData;
+ this.selectedSymbol = 'MSFT';
+ }
+
+ if (!json || json.length === 0) {
+ console.warn(`No data found for symbol: ${this.selectedSymbol}`);
+ this.chartData = [];
+ this.renderChart();
+ return;
+ }
+
+ const allData: ChartPoint[] = json.map((d: any) => ({
+ date: new Date(d.date || d.Date),
+ high: Number(d.high ?? d.High),
+ low: Number(d.low ?? d.Low),
+ open: Number(d.open ?? d.Open),
+ close: Number(d.close ?? d.Close)
+ }));
+
+ this.chartData = this.filterChartData(allData, this.selectedRange);
+ this.renderChart();
+ this.updateStockInfoDisplay();
+ } catch (error) {
+ console.error('Error loading chart data:', error);
+ this.chartData = [];
+ this.renderChart();
+ }
+ }
+
+ private filterChartData(allData: ChartPoint[], months: number): ChartPoint[] {
+ if (allData.length) {
+ this.stripStartDate = allData[0].date;
+ this.stripEndDate = allData[allData.length - 1].date;
+ } else {
+ this.stripStartDate = this.stripEndDate = new Date();
+ }
+ const latestDate = new Date(Math.max(...allData.map(p => p.date.getTime())));
+ const cutoffDate = new Date(latestDate);
+ const intendedMonth = latestDate.getMonth() - months + 1;
+ cutoffDate.setMonth(intendedMonth);
+ if (cutoffDate.getMonth() !== intendedMonth) {
+ cutoffDate.setDate(0);
+ }
+ return allData.filter(p => p.date >= cutoffDate).sort((a, b) => a.date.getTime() - b.date.getTime());
+ }
+
+ public renderChart(): void {
+ if (this.chartObject) {
+ this.chartObject.series = [{
+ dataSource: this.chartData,
+ xName: 'date',
+ type: this.selectedSeriesType as 'Candle' | 'Line' | 'HiloOpenClose',
+ name: this.selectedStockInfo.text,
+ high: this.selectedSeriesType !== 'Line' ? 'high' : undefined,
+ low: this.selectedSeriesType !== 'Line' ? 'low' : undefined,
+ open: this.selectedSeriesType !== 'Line' ? 'open' : undefined,
+ close: this.selectedSeriesType !== 'Line' ? 'close' : undefined,
+ yName: this.selectedSeriesType === 'Line' ? 'close' : undefined,
+ bearFillColor: this.selectedSeriesType === 'Candle' ? '#2ecd71' : undefined,
+ bullFillColor: this.selectedSeriesType === 'Candle' ? '#e74c3d' : undefined
+ }];
+ this.chartObject.primaryXAxis.stripLines = [{
+ start: this.stripStartDate,
+ end: this.stripEndDate,
+ color: '#E0E0E0'
+ }];
+ this.chartObject.refresh();
+ }
+ }
+
+ public updateStockInfoDisplay(): void {
+ this.selectedStockInfo = this.getDefaultStockInfo(this.selectedSymbol);
+ }
+
+ public onStockChange(): void {
+ this.loadChartData();
+ }
+
+ public onRangeChange(months: number): void {
+ this.selectedRange = months;
+ this.loadChartData();
+ }
+
+ public async onAIAssistClick(): Promise {
+ this.isSpinnerVisible = true;
+ try {
+ const prompt = this.generatePrompt(this.chartData);
+ const response = await this.getAzureChatAIRequest({ messages: [{ role: 'user', content: prompt }] });
+ if (response) {
+ const processed = this.convertAIResponseToChartData(response, this.chartData);
+ if (processed.length > 0) {
+ this.chartData = [...this.chartData, ...processed];
+ this.renderChart();
+ }
+ } else {
+ console.error('AI response is null');
+ }
+ } catch (err) {
+ console.error('Error during AI processing:', err);
+ } finally {
+ setTimeout(() => (this.isSpinnerVisible = false), 1000);
+ }
+ }
+
+ private generatePrompt(historicalData: ChartPoint[]): string {
+ const lastDate = historicalData.length > 0 ? historicalData[historicalData.length - 1].date : new Date();
+ const startDate = new Date(lastDate);
+ startDate.setDate(lastDate.getDate() + 1);
+ let prompt = `Generate 35 realistic financial data points suitable for candlestick, OHLC, and line charts in ':' format. Use the following format for each row: yyyy-MM-dd:High:Low:Open:Close\nStart from ${startDate.toISOString().split('T')[0]} and increment by 1 day for each row.\n`;
+ historicalData.forEach(data => {
+ prompt += `${data.date.toISOString().split('T')[0]}:${data.high}:${data.low}:${data.open}:${data.close}\n`;
+ });
+ prompt += `\n### STRICT OUTPUT REQUIREMENTS ###\n- Generate EXACTLY 35 rows of data.\n- Each row must be in the format: yyyy-MM-dd:High:Low:Open:Close.\n- The predictions must include a natural mix of both upward and downward trends.\n- NO missing or duplicate dates.\n- NO extra text, explanations, or labels—just raw data.\n- Ensure that each day's values are **realistic** and follow stock market behavior.`;
+ return prompt;
+ }
+
+ private convertAIResponseToChartData(response: string, originalData: ChartPoint[]): ChartPoint[] {
+ const rows = response.split('\n').filter(row => row.trim().length > 0);
+ const processedData: ChartPoint[] = [];
+ for (const row of rows) {
+ const parts = row.split(':');
+ if (parts.length < 5) continue;
+ const dateStr = parts[0].trim();
+ const date = new Date(dateStr);
+ if (isNaN(date.getTime())) continue;
+ const high = parseFloat(parts[1].trim()) || 0;
+ const low = parseFloat(parts[2].trim()) || 0;
+ const open = parseFloat(parts[3].trim()) || 0;
+ const close = parseFloat(parts[4].trim()) || 0;
+ processedData.push({ date, high, low, open, close });
+ }
+ return processedData;
+ }
+
+ private async getAzureChatAIRequest(data: { messages: { role: string; content: string }[] }): Promise {
+ console.log('API call placeholder - implement with real endpoint and key', data);
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/react/src/ai-components/chart/data/amzn-data.json b/react/src/ai-components/chart/data/amzn-data.json
new file mode 100644
index 0000000..afdbe95
--- /dev/null
+++ b/react/src/ai-components/chart/data/amzn-data.json
@@ -0,0 +1,1829 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 192.19,
+ "High": 192.9,
+ "Low": 191.49,
+ "Close": 192.09
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 190.43,
+ "High": 190.85,
+ "Low": 189.69,
+ "Close": 190.34
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 192.96,
+ "High": 193.18,
+ "Low": 191.23,
+ "Close": 192.87
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 195.7,
+ "High": 198.88,
+ "Low": 195.46,
+ "Close": 198.11
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.2,
+ "High": 200.88,
+ "Low": 193.9,
+ "Close": 194.67
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 190.88,
+ "High": 192.6,
+ "Low": 190.19,
+ "Close": 191.82
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.89,
+ "High": 197.87,
+ "Low": 192.26,
+ "Close": 194.36
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 190.99,
+ "High": 192.37,
+ "Low": 189.83,
+ "Close": 191.04
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 194.27,
+ "High": 196.85,
+ "Low": 191.88,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 191.67,
+ "High": 193.12,
+ "Low": 188.07,
+ "Close": 190.86
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 192.59,
+ "High": 192.73,
+ "Low": 191.99,
+ "Close": 192.57
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 193.34,
+ "High": 195.1,
+ "Low": 192.36,
+ "Close": 193.96
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 194.46,
+ "High": 195.2,
+ "Low": 193.46,
+ "Close": 194.16
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 196.32,
+ "High": 198.22,
+ "Low": 194.28,
+ "Close": 196.39
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 199.01,
+ "High": 201.2,
+ "Low": 198.41,
+ "Close": 198.68
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 198.64,
+ "High": 199.98,
+ "Low": 197.48,
+ "Close": 197.93
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 199.45,
+ "High": 202.09,
+ "Low": 198.77,
+ "Close": 199.35
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 202.32,
+ "High": 202.98,
+ "Low": 198.69,
+ "Close": 201.41
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 204.2,
+ "High": 204.73,
+ "Low": 201.08,
+ "Close": 203.53
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 206.69,
+ "High": 207.5,
+ "Low": 203.42,
+ "Close": 204.02
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 201.51,
+ "High": 203.13,
+ "Low": 198.05,
+ "Close": 202.99
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 203.27,
+ "High": 205.79,
+ "Low": 201.22,
+ "Close": 202.57
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 214.69,
+ "High": 214.78,
+ "Low": 213.21,
+ "Close": 214.04
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 208.66,
+ "High": 210.44,
+ "Low": 208.19,
+ "Close": 209.46
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 209.26,
+ "High": 209.86,
+ "Low": 207.57,
+ "Close": 208.31
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 205.62,
+ "High": 206.82,
+ "Low": 205.5,
+ "Close": 206.54
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 206.32,
+ "High": 206.84,
+ "Low": 206.0,
+ "Close": 206.72
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 205.79,
+ "High": 206.03,
+ "Low": 205.1,
+ "Close": 205.97
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 207.89,
+ "High": 210.01,
+ "Low": 204.93,
+ "Close": 208.97
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 205.51,
+ "High": 206.31,
+ "Low": 202.09,
+ "Close": 204.19
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 203.98,
+ "High": 204.0,
+ "Low": 201.04,
+ "Close": 203.99
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 206.41,
+ "High": 207.58,
+ "Low": 204.61,
+ "Close": 207.38
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 208.28,
+ "High": 208.69,
+ "Low": 207.82,
+ "Close": 207.83
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 209.35,
+ "High": 210.26,
+ "Low": 205.57,
+ "Close": 208.55
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 208.34,
+ "High": 212.07,
+ "Low": 204.61,
+ "Close": 209.24
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 220.26,
+ "High": 220.85,
+ "Low": 219.53,
+ "Close": 220.1
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 218.45,
+ "High": 219.96,
+ "Low": 218.0,
+ "Close": 219.01
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 216.92,
+ "High": 217.62,
+ "Low": 215.93,
+ "Close": 216.22
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 216.61,
+ "High": 217.0,
+ "Low": 215.1,
+ "Close": 215.98
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 216.54,
+ "High": 217.42,
+ "Low": 215.69,
+ "Close": 216.38
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 215.55,
+ "High": 216.05,
+ "Low": 214.14,
+ "Close": 215.1
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 218.7,
+ "High": 219.12,
+ "Low": 217.8,
+ "Close": 218.41
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 220.42,
+ "High": 221.68,
+ "Low": 219.76,
+ "Close": 221.38
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 217.49,
+ "High": 218.53,
+ "Low": 217.06,
+ "Close": 217.91
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 218.01,
+ "High": 219.04,
+ "Low": 217.44,
+ "Close": 218.74
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 219.12,
+ "High": 222.26,
+ "Low": 215.9,
+ "Close": 221.34
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 220.74,
+ "High": 224.84,
+ "Low": 218.47,
+ "Close": 221.51
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 220.55,
+ "High": 223.45,
+ "Low": 219.76,
+ "Close": 222.13
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 220.15,
+ "High": 220.71,
+ "Low": 218.92,
+ "Close": 220.47
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 218.6,
+ "High": 220.56,
+ "Low": 217.74,
+ "Close": 218.16
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 214.35,
+ "High": 217.2,
+ "Low": 210.95,
+ "Close": 211.85
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 209.42,
+ "High": 210.5,
+ "Low": 209.07,
+ "Close": 209.12
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 207.41,
+ "High": 208.47,
+ "Low": 204.12,
+ "Close": 206.97
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 204.14,
+ "High": 205.98,
+ "Low": 200.22,
+ "Close": 201.97
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 201.24,
+ "High": 205.15,
+ "Low": 200.33,
+ "Close": 201.03
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 199.11,
+ "High": 199.39,
+ "Low": 195.31,
+ "Close": 198.86
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 196.76,
+ "High": 199.76,
+ "Low": 193.67,
+ "Close": 198.32
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 194.53,
+ "High": 195.14,
+ "Low": 192.88,
+ "Close": 194.31
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 192.02,
+ "High": 195.09,
+ "Low": 191.11,
+ "Close": 191.26
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 187.81,
+ "High": 189.19,
+ "Low": 186.3,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 184.36,
+ "High": 187.13,
+ "Low": 182.15,
+ "Close": 183.64
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 182.18,
+ "High": 184.64,
+ "Low": 179.59,
+ "Close": 181.42
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.19,
+ "High": 184.25,
+ "Low": 180.86,
+ "Close": 182.16
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 179.79,
+ "High": 180.58,
+ "Low": 179.64,
+ "Close": 180.06
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 183.16,
+ "High": 185.58,
+ "Low": 180.75,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 187.33,
+ "High": 187.71,
+ "Low": 183.86,
+ "Close": 187.22
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 188.65,
+ "High": 188.75,
+ "Low": 187.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 186.21,
+ "High": 186.78,
+ "Low": 183.75,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 187.18,
+ "High": 190.08,
+ "Low": 185.05,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 184.08,
+ "High": 186.25,
+ "Low": 180.59,
+ "Close": 182.53
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 179.66,
+ "High": 182.99,
+ "Low": 176.27,
+ "Close": 180.66
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 182.76,
+ "High": 186.4,
+ "Low": 179.53,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.5,
+ "High": 186.52,
+ "Low": 181.11,
+ "Close": 186.42
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 187.48,
+ "High": 189.39,
+ "Low": 186.48,
+ "Close": 187.78
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 191.06,
+ "High": 194.69,
+ "Low": 190.55,
+ "Close": 193.48
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 193.98,
+ "High": 196.02,
+ "Low": 192.42,
+ "Close": 192.83
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 189.99,
+ "High": 191.31,
+ "Low": 186.61,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 188.25,
+ "High": 188.94,
+ "Low": 187.39,
+ "Close": 187.46
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 189.99,
+ "High": 190.44,
+ "Low": 189.92,
+ "Close": 190.16
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 193.75,
+ "High": 196.45,
+ "Low": 192.38,
+ "Close": 195.2
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 196.39,
+ "High": 200.25,
+ "Low": 195.65,
+ "Close": 196.27
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 193.59,
+ "High": 195.98,
+ "Low": 193.26,
+ "Close": 194.4
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 191.6,
+ "High": 194.19,
+ "Low": 190.19,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 191.61,
+ "High": 191.68,
+ "Low": 189.06,
+ "Close": 189.12
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 188.53,
+ "High": 190.95,
+ "Low": 187.83,
+ "Close": 190.24
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 190.78,
+ "High": 190.85,
+ "Low": 190.03,
+ "Close": 190.68
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 192.5,
+ "High": 192.63,
+ "Low": 189.37,
+ "Close": 192.45
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 195.2,
+ "High": 196.64,
+ "Low": 192.47,
+ "Close": 193.05
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 195.96,
+ "High": 199.34,
+ "Low": 193.96,
+ "Close": 197.35
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 195.71,
+ "High": 197.28,
+ "Low": 192.66,
+ "Close": 195.82
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 196.1,
+ "High": 197.4,
+ "Low": 193.82,
+ "Close": 195.77
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 194.6,
+ "High": 194.79,
+ "Low": 194.02,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 191.0,
+ "High": 193.86,
+ "Low": 189.85,
+ "Close": 192.58
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 189.1,
+ "High": 190.47,
+ "Low": 188.36,
+ "Close": 189.17
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 187.13,
+ "High": 188.9,
+ "Low": 184.56,
+ "Close": 185.4
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 186.41,
+ "High": 190.01,
+ "Low": 185.6,
+ "Close": 189.86
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 191.36,
+ "High": 191.42,
+ "Low": 191.18,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 194.67,
+ "High": 198.53,
+ "Low": 191.8,
+ "Close": 193.42
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 197.25,
+ "High": 198.59,
+ "Low": 195.02,
+ "Close": 196.06
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 199.47,
+ "High": 201.98,
+ "Low": 195.49,
+ "Close": 198.1
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 198.79,
+ "High": 200.55,
+ "Low": 195.52,
+ "Close": 199.53
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 198.33,
+ "High": 199.06,
+ "Low": 197.8,
+ "Close": 198.08
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 197.7,
+ "High": 199.95,
+ "Low": 196.06,
+ "Close": 198.09
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 196.88,
+ "High": 197.63,
+ "Low": 196.7,
+ "Close": 197.27
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 194.57,
+ "High": 195.2,
+ "Low": 191.02,
+ "Close": 193.02
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 189.27,
+ "High": 190.92,
+ "Low": 188.07,
+ "Close": 189.39
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.09,
+ "High": 188.12,
+ "Low": 186.13,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.73,
+ "High": 188.27,
+ "Low": 183.88,
+ "Close": 186.22
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 186.66,
+ "High": 190.04,
+ "Low": 182.98,
+ "Close": 189.97
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 191.89,
+ "High": 194.08,
+ "Low": 191.07,
+ "Close": 193.31
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 190.06,
+ "High": 190.25,
+ "Low": 187.75,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 188.97,
+ "High": 189.8,
+ "Low": 188.38,
+ "Close": 189.78
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 192.27,
+ "High": 195.81,
+ "Low": 191.38,
+ "Close": 195.26
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 191.95,
+ "High": 193.78,
+ "Low": 188.66,
+ "Close": 191.23
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 194.02,
+ "High": 196.79,
+ "Low": 191.51,
+ "Close": 193.49
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 196.7,
+ "High": 199.49,
+ "Low": 195.09,
+ "Close": 195.64
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 194.77,
+ "High": 196.67,
+ "Low": 192.89,
+ "Close": 195.91
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 194.98,
+ "High": 198.15,
+ "Low": 192.08,
+ "Close": 192.86
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 192.9,
+ "High": 195.34,
+ "Low": 189.5,
+ "Close": 190.89
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.27,
+ "High": 193.35,
+ "Low": 190.87,
+ "Close": 191.32
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 193.34,
+ "High": 193.73,
+ "Low": 189.73,
+ "Close": 190.55
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 189.68,
+ "High": 193.18,
+ "Low": 186.14,
+ "Close": 187.61
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 184.81,
+ "High": 187.6,
+ "Low": 183.76,
+ "Close": 187.12
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.94,
+ "High": 193.17,
+ "Low": 188.73,
+ "Close": 189.54
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 191.52,
+ "High": 192.12,
+ "Low": 188.86,
+ "Close": 190.69
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 188.2,
+ "High": 190.33,
+ "Low": 185.65,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 189.97,
+ "High": 190.99,
+ "Low": 186.23,
+ "Close": 189.82
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 189.41,
+ "High": 189.62,
+ "Low": 187.56,
+ "Close": 189.47
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 192.06,
+ "High": 192.92,
+ "Low": 188.35,
+ "Close": 189.02
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 186.58,
+ "High": 188.72,
+ "Low": 184.74,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 189.41,
+ "High": 192.12,
+ "Low": 187.98,
+ "Close": 190.09
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 192.13,
+ "High": 194.13,
+ "Low": 189.28,
+ "Close": 191.55
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 191.2,
+ "High": 193.81,
+ "Low": 190.1,
+ "Close": 191.68
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.0,
+ "High": 190.58,
+ "Low": 185.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.94,
+ "High": 188.34,
+ "Low": 182.09,
+ "Close": 187.13
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.96,
+ "High": 187.37,
+ "Low": 185.26,
+ "Close": 185.76
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.81,
+ "High": 187.11,
+ "Low": 181.22,
+ "Close": 183.96
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 187.46,
+ "High": 189.82,
+ "Low": 184.69,
+ "Close": 185.39
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.28,
+ "High": 186.48,
+ "Low": 182.28,
+ "Close": 186.45
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 189.6,
+ "High": 192.09,
+ "Low": 187.7,
+ "Close": 188.59
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 190.5,
+ "High": 192.25,
+ "Low": 188.59,
+ "Close": 191.56
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 190.87,
+ "High": 192.38,
+ "Low": 189.85,
+ "Close": 190.37
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 192.4,
+ "High": 192.71,
+ "Low": 189.79,
+ "Close": 190.67
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 191.37,
+ "High": 193.49,
+ "Low": 190.47,
+ "Close": 191.98
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 195.65,
+ "High": 195.73,
+ "Low": 194.55,
+ "Close": 194.57
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 196.03,
+ "High": 197.75,
+ "Low": 193.92,
+ "Close": 196.32
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 195.26,
+ "High": 197.99,
+ "Low": 192.95,
+ "Close": 193.96
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 194.56,
+ "High": 195.19,
+ "Low": 193.74,
+ "Close": 195.09
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 194.8,
+ "High": 195.29,
+ "Low": 193.59,
+ "Close": 194.8
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 194.71,
+ "High": 196.74,
+ "Low": 194.28,
+ "Close": 196.02
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 195.27,
+ "High": 196.04,
+ "Low": 192.61,
+ "Close": 194.22
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 196.06,
+ "High": 199.1,
+ "Low": 192.26,
+ "Close": 195.15
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 193.13,
+ "High": 193.8,
+ "Low": 192.23,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 194.52,
+ "High": 197.86,
+ "Low": 193.59,
+ "Close": 194.45
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 197.99,
+ "High": 199.06,
+ "Low": 196.81,
+ "Close": 196.94
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 196.51,
+ "High": 200.41,
+ "Low": 195.5,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 200.87,
+ "High": 203.0,
+ "Low": 197.66,
+ "Close": 199.47
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 200.9,
+ "High": 203.92,
+ "Low": 200.64,
+ "Close": 201.25
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 197.93,
+ "High": 200.72,
+ "Low": 195.59,
+ "Close": 199.07
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 197.64,
+ "High": 197.92,
+ "Low": 194.88,
+ "Close": 195.31
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 193.4,
+ "High": 195.13,
+ "Low": 193.1,
+ "Close": 193.45
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 195.24,
+ "High": 195.72,
+ "Low": 194.97,
+ "Close": 195.68
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 197.99,
+ "High": 200.15,
+ "Low": 196.64,
+ "Close": 197.67
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 200.35,
+ "High": 202.8,
+ "Low": 197.77,
+ "Close": 200.36
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 202.5,
+ "High": 203.28,
+ "Low": 200.92,
+ "Close": 201.61
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 202.19,
+ "High": 203.2,
+ "Low": 198.23,
+ "Close": 203.16
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 201.78,
+ "High": 202.59,
+ "Low": 198.35,
+ "Close": 200.95
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 197.84,
+ "High": 200.44,
+ "Low": 194.78,
+ "Close": 198.81
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 197.35,
+ "High": 199.67,
+ "Low": 197.32,
+ "Close": 197.85
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 201.6,
+ "High": 202.21,
+ "Low": 197.95,
+ "Close": 198.49
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 198.12,
+ "High": 199.48,
+ "Low": 194.53,
+ "Close": 194.94
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 198.54,
+ "High": 201.16,
+ "Low": 196.12,
+ "Close": 199.04
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 199.24,
+ "High": 201.2,
+ "Low": 197.42,
+ "Close": 199.3
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 198.09,
+ "High": 200.08,
+ "Low": 197.34,
+ "Close": 199.98
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 196.19,
+ "High": 198.79,
+ "Low": 192.44,
+ "Close": 193.75
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 190.71,
+ "High": 192.19,
+ "Low": 189.7,
+ "Close": 192.02
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 188.55,
+ "High": 189.71,
+ "Low": 185.24,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 188.34,
+ "High": 191.18,
+ "Low": 185.09,
+ "Close": 186.68
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 188.94,
+ "High": 191.64,
+ "Low": 186.93,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 186.96,
+ "High": 189.67,
+ "Low": 186.35,
+ "Close": 188.76
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 188.08,
+ "High": 190.01,
+ "Low": 184.45,
+ "Close": 188.09
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 184.38,
+ "High": 187.34,
+ "Low": 181.96,
+ "Close": 186.02
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 188.31,
+ "High": 190.35,
+ "Low": 187.27,
+ "Close": 189.34
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 187.9,
+ "High": 191.49,
+ "Low": 186.94,
+ "Close": 191.21
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 194.0,
+ "High": 194.05,
+ "Low": 191.15,
+ "Close": 191.25
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 190.23,
+ "High": 192.58,
+ "Low": 187.41,
+ "Close": 189.36
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 187.86,
+ "High": 190.87,
+ "Low": 184.83,
+ "Close": 186.75
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 188.11,
+ "High": 189.74,
+ "Low": 187.99,
+ "Close": 188.33
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 189.83,
+ "High": 191.59,
+ "Low": 187.47,
+ "Close": 189.65
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 189.5,
+ "High": 191.04,
+ "Low": 188.55,
+ "Close": 190.91
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 187.76,
+ "High": 187.87,
+ "Low": 186.22,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 185.86,
+ "High": 188.35,
+ "Low": 184.76,
+ "Close": 186.33
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 188.92,
+ "High": 192.13,
+ "Low": 187.26,
+ "Close": 190.52
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 187.73,
+ "High": 190.94,
+ "Low": 184.35,
+ "Close": 188.07
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 190.09,
+ "High": 191.87,
+ "Low": 189.81,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 191.16,
+ "High": 194.32,
+ "Low": 189.5,
+ "Close": 192.15
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 191.3,
+ "High": 193.89,
+ "Low": 189.82,
+ "Close": 190.23
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 189.23,
+ "High": 191.67,
+ "Low": 185.46,
+ "Close": 188.48
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 188.84,
+ "High": 189.28,
+ "Low": 185.68,
+ "Close": 188.02
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 190.86,
+ "High": 191.66,
+ "Low": 187.81,
+ "Close": 188.6
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 192.34,
+ "High": 192.76,
+ "Low": 189.23,
+ "Close": 189.28
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 189.05,
+ "High": 189.96,
+ "Low": 185.34,
+ "Close": 185.78
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 185.49,
+ "High": 186.5,
+ "Low": 184.83,
+ "Close": 185.56
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 183.37,
+ "High": 184.43,
+ "Low": 181.95,
+ "Close": 183.73
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 185.13,
+ "High": 187.46,
+ "Low": 181.93,
+ "Close": 185.33
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 187.6,
+ "High": 190.27,
+ "Low": 185.51,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 190.88,
+ "High": 192.97,
+ "Low": 189.63,
+ "Close": 189.77
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 188.61,
+ "High": 190.9,
+ "Low": 184.9,
+ "Close": 189.62
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 186.83,
+ "High": 188.31,
+ "Low": 185.75,
+ "Close": 188.21
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 186.04,
+ "High": 187.81,
+ "Low": 184.15,
+ "Close": 186.6
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 189.18,
+ "High": 192.56,
+ "Low": 187.6,
+ "Close": 188.35
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 187.13,
+ "High": 190.76,
+ "Low": 184.98,
+ "Close": 185.83
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 186.47,
+ "High": 188.85,
+ "Low": 183.38,
+ "Close": 187.23
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 185.73,
+ "High": 187.7,
+ "Low": 183.64,
+ "Close": 187.69
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 189.65,
+ "High": 192.07,
+ "Low": 187.21,
+ "Close": 189.75
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 193.47,
+ "High": 193.87,
+ "Low": 193.21,
+ "Close": 193.78
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 193.54,
+ "High": 195.51,
+ "Low": 192.22,
+ "Close": 193.62
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 191.5,
+ "High": 192.72,
+ "Low": 190.41,
+ "Close": 190.9
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 192.24,
+ "High": 193.01,
+ "Low": 190.3,
+ "Close": 191.79
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 194.01,
+ "High": 196.64,
+ "Low": 192.33,
+ "Close": 195.35
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 197.69,
+ "High": 199.7,
+ "Low": 195.4,
+ "Close": 197.83
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 199.14,
+ "High": 202.89,
+ "Low": 198.53,
+ "Close": 201.23
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 198.75,
+ "High": 200.37,
+ "Low": 197.53,
+ "Close": 197.61
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 197.85,
+ "High": 199.24,
+ "Low": 197.76,
+ "Close": 198.39
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 201.13,
+ "High": 201.43,
+ "Low": 197.67,
+ "Close": 200.76
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 204.11,
+ "High": 205.45,
+ "Low": 201.65,
+ "Close": 203.74
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 199.88,
+ "High": 203.56,
+ "Low": 199.68,
+ "Close": 203.56
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 201.28,
+ "High": 201.93,
+ "Low": 199.91,
+ "Close": 201.15
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 202.73,
+ "High": 202.81,
+ "Low": 199.58,
+ "Close": 202.36
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 199.21,
+ "High": 200.9,
+ "Low": 198.57,
+ "Close": 198.67
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 200.23,
+ "High": 202.05,
+ "Low": 199.73,
+ "Close": 201.91
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 197.93,
+ "High": 201.53,
+ "Low": 194.8,
+ "Close": 198.84
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 202.61,
+ "High": 202.75,
+ "Low": 199.63,
+ "Close": 199.92
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 197.65,
+ "High": 199.18,
+ "Low": 195.77,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 196.25,
+ "High": 200.11,
+ "Low": 194.25,
+ "Close": 198.89
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 198.76,
+ "High": 201.5,
+ "Low": 195.7,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 203.56,
+ "High": 205.91,
+ "Low": 201.23,
+ "Close": 205.48
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 205.67,
+ "High": 206.43,
+ "Low": 201.91,
+ "Close": 204.41
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 206.86,
+ "High": 207.2,
+ "Low": 204.17,
+ "Close": 207.08
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 210.74,
+ "High": 213.69,
+ "Low": 207.95,
+ "Close": 210.41
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 206.73,
+ "High": 208.0,
+ "Low": 206.48,
+ "Close": 207.99
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 208.64,
+ "High": 209.48,
+ "Low": 207.25,
+ "Close": 208.92
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 210.59,
+ "High": 214.67,
+ "Low": 209.45,
+ "Close": 212.58
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 213.38,
+ "High": 215.6,
+ "Low": 211.92,
+ "Close": 215.17
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 219.46,
+ "High": 223.49,
+ "Low": 217.62,
+ "Close": 219.74
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 221.38,
+ "High": 224.98,
+ "Low": 219.12,
+ "Close": 221.56
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 223.59,
+ "High": 224.61,
+ "Low": 221.75,
+ "Close": 222.67
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 225.79,
+ "High": 228.61,
+ "Low": 222.57,
+ "Close": 225.86
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 225.06,
+ "High": 228.81,
+ "Low": 224.42,
+ "Close": 224.88
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 222.65,
+ "High": 223.66,
+ "Low": 221.0,
+ "Close": 221.64
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 220.44,
+ "High": 224.6,
+ "Low": 217.53,
+ "Close": 221.15
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 223.78,
+ "High": 224.78,
+ "Low": 219.9,
+ "Close": 220.36
+ },
+ {
+ "Date": "2025-06-18",
+ "Open": 220.9,
+ "High": 224.65,
+ "Low": 220.56,
+ "Close": 220.67
+ },
+ {
+ "Date": "2025-06-19",
+ "Open": 222.72,
+ "High": 226.72,
+ "Low": 222.49,
+ "Close": 224.24
+ },
+ {
+ "Date": "2025-06-20",
+ "Open": 227.64,
+ "High": 231.94,
+ "Low": 223.7,
+ "Close": 228.93
+ },
+ {
+ "Date": "2025-06-23",
+ "Open": 224.53,
+ "High": 226.19,
+ "Low": 220.62,
+ "Close": 220.96
+ },
+ {
+ "Date": "2025-06-24",
+ "Open": 223.74,
+ "High": 228.12,
+ "Low": 222.5,
+ "Close": 222.54
+ },
+ {
+ "Date": "2025-06-25",
+ "Open": 221.04,
+ "High": 221.12,
+ "Low": 219.05,
+ "Close": 219.11
+ },
+ {
+ "Date": "2025-06-26",
+ "Open": 219.3,
+ "High": 223.46,
+ "Low": 217.06,
+ "Close": 217.25
+ },
+ {
+ "Date": "2025-06-27",
+ "Open": 219.77,
+ "High": 221.14,
+ "Low": 216.28,
+ "Close": 218.01
+ },
+ {
+ "Date": "2025-06-30",
+ "Open": 222.01,
+ "High": 223.18,
+ "Low": 217.87,
+ "Close": 222.27
+ }
+]
\ No newline at end of file
diff --git a/react/src/ai-components/chart/data/goog-data.json b/react/src/ai-components/chart/data/goog-data.json
new file mode 100644
index 0000000..8020787
--- /dev/null
+++ b/react/src/ai-components/chart/data/goog-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 182.76,
+ "High": 182.93,
+ "Low": 180.89,
+ "Close": 181.03
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 181.55,
+ "High": 183.05,
+ "Low": 180.46,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 183.21,
+ "High": 184.23,
+ "Low": 182.08,
+ "Close": 182.48
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 181.46,
+ "High": 182.33,
+ "Low": 181.17,
+ "Close": 182.01
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 182.45,
+ "High": 182.62,
+ "Low": 181.51,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 182.28,
+ "High": 183.21,
+ "Low": 180.64,
+ "Close": 183.18
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 183.77,
+ "High": 185.5,
+ "Low": 183.27,
+ "Close": 184.72
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 183.81,
+ "High": 184.51,
+ "Low": 183.24,
+ "Close": 183.37
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 182.33,
+ "High": 183.18,
+ "Low": 181.1,
+ "Close": 182.08
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 182.46,
+ "High": 183.11,
+ "Low": 182.01,
+ "Close": 182.93
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 181.92,
+ "High": 182.7,
+ "Low": 181.0,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 179.87,
+ "High": 181.27,
+ "Low": 178.86,
+ "Close": 180.89
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 180.69,
+ "High": 181.92,
+ "Low": 180.57,
+ "Close": 181.31
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 180.07,
+ "High": 181.29,
+ "Low": 178.68,
+ "Close": 179.83
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 179.95,
+ "High": 181.33,
+ "Low": 179.41,
+ "Close": 181.06
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 181.66,
+ "High": 183.16,
+ "Low": 180.45,
+ "Close": 180.69
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 179.54,
+ "High": 180.07,
+ "Low": 179.19,
+ "Close": 179.94
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 180.77,
+ "High": 180.95,
+ "Low": 179.69,
+ "Close": 180.68
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 182.07,
+ "High": 182.42,
+ "Low": 180.36,
+ "Close": 181.19
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 181.49,
+ "High": 182.47,
+ "Low": 180.38,
+ "Close": 180.55
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 179.17,
+ "High": 179.44,
+ "Low": 178.41,
+ "Close": 178.48
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 178.4,
+ "High": 178.58,
+ "Low": 177.48,
+ "Close": 178.49
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 179.36,
+ "High": 181.33,
+ "Low": 179.25,
+ "Close": 180.07
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 179.38,
+ "High": 179.68,
+ "Low": 177.78,
+ "Close": 178.19
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 179.54,
+ "High": 180.55,
+ "Low": 179.24,
+ "Close": 180.54
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 179.56,
+ "High": 179.71,
+ "Low": 179.21,
+ "Close": 179.48
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 180.14,
+ "High": 181.08,
+ "Low": 178.94,
+ "Close": 180.78
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 179.8,
+ "High": 181.44,
+ "Low": 177.88,
+ "Close": 180.21
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 178.72,
+ "High": 179.69,
+ "Low": 177.55,
+ "Close": 179.18
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 179.32,
+ "High": 180.65,
+ "Low": 179.02,
+ "Close": 180.6
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 181.35,
+ "High": 182.2,
+ "Low": 180.41,
+ "Close": 180.84
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 182.31,
+ "High": 184.13,
+ "Low": 180.81,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 181.88,
+ "High": 183.16,
+ "Low": 181.46,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 180.82,
+ "High": 182.16,
+ "Low": 179.01,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 182.04,
+ "High": 182.76,
+ "Low": 180.81,
+ "Close": 182.45
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 182.32,
+ "High": 184.01,
+ "Low": 181.31,
+ "Close": 182.04
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 181.98,
+ "High": 183.81,
+ "Low": 181.47,
+ "Close": 182.61
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 182.5,
+ "High": 184.25,
+ "Low": 181.96,
+ "Close": 182.09
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 182.61,
+ "High": 184.05,
+ "Low": 181.94,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 182.66,
+ "High": 182.88,
+ "Low": 182.39,
+ "Close": 182.7
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 183.55,
+ "High": 185.32,
+ "Low": 181.74,
+ "Close": 181.86
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 183.25,
+ "High": 184.56,
+ "Low": 181.28,
+ "Close": 183.05
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 181.75,
+ "High": 183.67,
+ "Low": 181.12,
+ "Close": 182.28
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 183.4,
+ "High": 184.53,
+ "Low": 181.8,
+ "Close": 182.69
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 183.24,
+ "High": 184.61,
+ "Low": 181.85,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 183.46,
+ "High": 185.46,
+ "Low": 182.49,
+ "Close": 183.47
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 182.47,
+ "High": 183.49,
+ "Low": 181.06,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 180.39,
+ "High": 181.93,
+ "Low": 179.37,
+ "Close": 181.74
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 182.33,
+ "High": 182.55,
+ "Low": 180.7,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 181.43,
+ "High": 182.24,
+ "Low": 179.63,
+ "Close": 179.85
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 180.11,
+ "High": 181.7,
+ "Low": 179.89,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 180.89,
+ "High": 181.72,
+ "Low": 179.72,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 179.11,
+ "High": 180.67,
+ "Low": 177.61,
+ "Close": 179.79
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 180.47,
+ "High": 181.77,
+ "Low": 179.81,
+ "Close": 181.56
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 180.58,
+ "High": 181.82,
+ "Low": 179.17,
+ "Close": 180.64
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 180.39,
+ "High": 182.2,
+ "Low": 179.07,
+ "Close": 180.01
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 180.64,
+ "High": 182.37,
+ "Low": 178.85,
+ "Close": 179.66
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 178.25,
+ "High": 179.98,
+ "Low": 176.72,
+ "Close": 178.9
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 177.58,
+ "High": 178.15,
+ "Low": 176.06,
+ "Close": 177.66
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 177.31,
+ "High": 178.49,
+ "Low": 176.84,
+ "Close": 177.81
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 178.8,
+ "High": 180.77,
+ "Low": 177.04,
+ "Close": 179.58
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 180.48,
+ "High": 182.28,
+ "Low": 179.7,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 182.04,
+ "High": 183.17,
+ "Low": 181.17,
+ "Close": 182.66
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 181.66,
+ "High": 182.08,
+ "Low": 180.64,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 181.88,
+ "High": 183.8,
+ "Low": 179.93,
+ "Close": 180.1
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 179.87,
+ "High": 180.15,
+ "Low": 178.31,
+ "Close": 179.02
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 178.74,
+ "High": 179.04,
+ "Low": 177.16,
+ "Close": 178.06
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 176.6,
+ "High": 177.13,
+ "Low": 175.72,
+ "Close": 176.24
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 176.42,
+ "High": 177.53,
+ "Low": 175.13,
+ "Close": 176.82
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 176.11,
+ "High": 176.24,
+ "Low": 174.34,
+ "Close": 175.98
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 176.93,
+ "High": 177.52,
+ "Low": 176.24,
+ "Close": 176.6
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 177.06,
+ "High": 178.91,
+ "Low": 176.88,
+ "Close": 178.1
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 177.53,
+ "High": 177.69,
+ "Low": 177.23,
+ "Close": 177.47
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 178.81,
+ "High": 179.42,
+ "Low": 177.33,
+ "Close": 178.27
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 178.7,
+ "High": 180.63,
+ "Low": 177.07,
+ "Close": 180.04
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 181.24,
+ "High": 182.38,
+ "Low": 179.84,
+ "Close": 180.09
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 181.43,
+ "High": 181.95,
+ "Low": 180.64,
+ "Close": 181.36
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 182.64,
+ "High": 183.53,
+ "Low": 181.74,
+ "Close": 183.03
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 183.87,
+ "High": 184.1,
+ "Low": 183.64,
+ "Close": 183.67
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 184.55,
+ "High": 185.66,
+ "Low": 183.57,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 184.97,
+ "High": 186.91,
+ "Low": 184.38,
+ "Close": 184.87
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 185.59,
+ "High": 187.25,
+ "Low": 185.11,
+ "Close": 187.13
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 188.39,
+ "High": 189.05,
+ "Low": 187.91,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.99,
+ "High": 188.52,
+ "Low": 185.59,
+ "Close": 186.56
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 185.86,
+ "High": 186.6,
+ "Low": 184.37,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 184.55,
+ "High": 185.28,
+ "Low": 184.36,
+ "Close": 185.15
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.11,
+ "High": 186.6,
+ "Low": 185.37,
+ "Close": 186.26
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 187.5,
+ "High": 188.25,
+ "Low": 186.65,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 186.58,
+ "High": 187.79,
+ "Low": 185.11,
+ "Close": 186.28
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 187.29,
+ "High": 188.14,
+ "Low": 185.36,
+ "Close": 186.37
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 185.49,
+ "High": 186.18,
+ "Low": 183.88,
+ "Close": 185.86
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 186.0,
+ "High": 187.18,
+ "Low": 185.75,
+ "Close": 186.18
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 186.47,
+ "High": 188.35,
+ "Low": 185.97,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 185.9,
+ "High": 187.46,
+ "Low": 184.28,
+ "Close": 186.14
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 185.14,
+ "High": 185.58,
+ "Low": 184.41,
+ "Close": 185.02
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 183.57,
+ "High": 184.98,
+ "Low": 183.22,
+ "Close": 184.67
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 185.93,
+ "High": 186.79,
+ "Low": 184.41,
+ "Close": 185.88
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 187.22,
+ "High": 187.72,
+ "Low": 187.02,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 187.66,
+ "High": 189.41,
+ "Low": 185.97,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 185.0,
+ "High": 186.21,
+ "Low": 184.75,
+ "Close": 185.03
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 184.09,
+ "High": 184.97,
+ "Low": 182.75,
+ "Close": 183.55
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 182.84,
+ "High": 183.95,
+ "Low": 181.32,
+ "Close": 183.38
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 182.19,
+ "High": 183.31,
+ "Low": 182.06,
+ "Close": 183.16
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 183.52,
+ "High": 184.02,
+ "Low": 181.93,
+ "Close": 183.31
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 184.65,
+ "High": 186.2,
+ "Low": 183.88,
+ "Close": 184.26
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 184.54,
+ "High": 184.94,
+ "Low": 184.42,
+ "Close": 184.86
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 185.82,
+ "High": 187.13,
+ "Low": 184.93,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.59,
+ "High": 188.51,
+ "Low": 184.65,
+ "Close": 187.8
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 187.69,
+ "High": 189.66,
+ "Low": 186.96,
+ "Close": 188.79
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 190.0,
+ "High": 190.96,
+ "Low": 188.47,
+ "Close": 189.71
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 188.23,
+ "High": 189.55,
+ "Low": 187.21,
+ "Close": 187.87
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 187.11,
+ "High": 188.3,
+ "Low": 185.48,
+ "Close": 188.18
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 188.78,
+ "High": 189.88,
+ "Low": 187.21,
+ "Close": 189.69
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 190.77,
+ "High": 192.17,
+ "Low": 189.11,
+ "Close": 191.24
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 190.11,
+ "High": 190.81,
+ "Low": 188.68,
+ "Close": 189.15
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.16,
+ "High": 189.48,
+ "Low": 188.61,
+ "Close": 189.31
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 189.42,
+ "High": 190.84,
+ "Low": 187.53,
+ "Close": 188.73
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 188.93,
+ "High": 190.37,
+ "Low": 187.84,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 187.05,
+ "High": 188.09,
+ "Low": 185.88,
+ "Close": 186.9
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 185.67,
+ "High": 186.75,
+ "Low": 184.62,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 186.76,
+ "High": 187.47,
+ "Low": 185.74,
+ "Close": 187.11
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 186.07,
+ "High": 187.55,
+ "Low": 184.12,
+ "Close": 187.52
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 187.59,
+ "High": 188.3,
+ "Low": 186.18,
+ "Close": 188.09
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.25,
+ "High": 190.13,
+ "Low": 188.69,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 187.91,
+ "High": 188.24,
+ "Low": 186.3,
+ "Close": 186.5
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 185.52,
+ "High": 187.42,
+ "Low": 184.88,
+ "Close": 186.85
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 185.49,
+ "High": 186.04,
+ "Low": 184.3,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 184.98,
+ "High": 186.0,
+ "Low": 183.72,
+ "Close": 184.27
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 185.23,
+ "High": 185.76,
+ "Low": 184.48,
+ "Close": 185.58
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 184.76,
+ "High": 185.69,
+ "Low": 183.19,
+ "Close": 183.96
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 183.31,
+ "High": 184.85,
+ "Low": 182.97,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 185.14,
+ "High": 186.61,
+ "Low": 184.77,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 184.42,
+ "High": 185.4,
+ "Low": 182.54,
+ "Close": 183.3
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 182.67,
+ "High": 184.46,
+ "Low": 181.97,
+ "Close": 183.53
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.96,
+ "High": 185.16,
+ "Low": 184.64,
+ "Close": 185.14
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 184.6,
+ "High": 185.47,
+ "Low": 183.36,
+ "Close": 185.45
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.05,
+ "High": 184.63,
+ "Low": 182.7,
+ "Close": 184.07
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 184.48,
+ "High": 184.68,
+ "Low": 183.96,
+ "Close": 184.03
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.22,
+ "High": 185.44,
+ "Low": 183.62,
+ "Close": 184.39
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 183.46,
+ "High": 183.62,
+ "Low": 182.59,
+ "Close": 182.87
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 183.98,
+ "High": 184.83,
+ "Low": 183.06,
+ "Close": 184.5
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 183.93,
+ "High": 184.31,
+ "Low": 183.74,
+ "Close": 184.14
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 182.97,
+ "High": 184.23,
+ "Low": 182.03,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 183.7,
+ "High": 184.46,
+ "Low": 183.5,
+ "Close": 183.57
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 182.76,
+ "High": 184.69,
+ "Low": 182.0,
+ "Close": 184.4
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 184.63,
+ "High": 186.41,
+ "Low": 183.01,
+ "Close": 183.91
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 184.32,
+ "High": 185.36,
+ "Low": 182.86,
+ "Close": 183.6
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 182.94,
+ "High": 184.4,
+ "Low": 182.79,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 184.13,
+ "High": 186.0,
+ "Low": 182.77,
+ "Close": 183.77
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 182.45,
+ "High": 183.33,
+ "Low": 181.75,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 182.14,
+ "High": 183.1,
+ "Low": 181.75,
+ "Close": 182.49
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 181.43,
+ "High": 182.17,
+ "Low": 181.1,
+ "Close": 181.17
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 180.34,
+ "High": 181.02,
+ "Low": 179.78,
+ "Close": 180.87
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 180.27,
+ "High": 181.21,
+ "Low": 178.44,
+ "Close": 180.24
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 180.62,
+ "High": 182.53,
+ "Low": 179.72,
+ "Close": 181.02
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 180.48,
+ "High": 182.1,
+ "Low": 178.82,
+ "Close": 179.33
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 180.41,
+ "High": 180.6,
+ "Low": 179.28,
+ "Close": 179.8
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 180.85,
+ "High": 182.13,
+ "Low": 179.1,
+ "Close": 181.27
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 180.22,
+ "High": 181.29,
+ "Low": 178.28,
+ "Close": 178.73
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 178.17,
+ "High": 178.62,
+ "Low": 176.75,
+ "Close": 177.76
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 178.0,
+ "High": 178.79,
+ "Low": 176.36,
+ "Close": 178.58
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 177.4,
+ "High": 177.75,
+ "Low": 175.89,
+ "Close": 177.55
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 176.08,
+ "High": 176.38,
+ "Low": 174.73,
+ "Close": 174.94
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 176.36,
+ "High": 176.88,
+ "Low": 174.88,
+ "Close": 175.86
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 175.05,
+ "High": 176.79,
+ "Low": 174.39,
+ "Close": 175.81
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 174.91,
+ "High": 176.7,
+ "Low": 174.28,
+ "Close": 175.54
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 175.38,
+ "High": 176.73,
+ "Low": 174.44,
+ "Close": 174.73
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 174.36,
+ "High": 175.48,
+ "Low": 172.79,
+ "Close": 174.17
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 173.46,
+ "High": 173.83,
+ "Low": 172.1,
+ "Close": 172.75
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 172.46,
+ "High": 173.11,
+ "Low": 171.23,
+ "Close": 172.68
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 171.42,
+ "High": 171.87,
+ "Low": 169.51,
+ "Close": 170.55
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 169.72,
+ "High": 171.57,
+ "Low": 168.09,
+ "Close": 170.72
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 171.15,
+ "High": 172.25,
+ "Low": 169.73,
+ "Close": 172.19
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 171.46,
+ "High": 173.1,
+ "Low": 170.34,
+ "Close": 170.54
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 169.55,
+ "High": 169.82,
+ "Low": 167.91,
+ "Close": 168.12
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 167.68,
+ "High": 168.04,
+ "Low": 166.8,
+ "Close": 167.91
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 168.45,
+ "High": 168.94,
+ "Low": 168.28,
+ "Close": 168.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 169.21,
+ "High": 170.15,
+ "Low": 168.76,
+ "Close": 168.99
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 167.65,
+ "High": 167.76,
+ "Low": 166.61,
+ "Close": 167.06
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 166.73,
+ "High": 167.7,
+ "Low": 165.43,
+ "Close": 166.0
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 165.87,
+ "High": 167.24,
+ "Low": 165.39,
+ "Close": 167.12
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 168.44,
+ "High": 170.25,
+ "Low": 166.69,
+ "Close": 167.19
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 168.52,
+ "High": 169.66,
+ "Low": 167.15,
+ "Close": 168.58
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 168.74,
+ "High": 170.55,
+ "Low": 168.1,
+ "Close": 168.54
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 168.37,
+ "High": 169.58,
+ "Low": 167.88,
+ "Close": 168.97
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 170.32,
+ "High": 171.27,
+ "Low": 169.63,
+ "Close": 170.58
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 169.88,
+ "High": 170.62,
+ "Low": 169.23,
+ "Close": 169.37
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 170.32,
+ "High": 170.62,
+ "Low": 169.27,
+ "Close": 169.43
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 170.76,
+ "High": 171.12,
+ "Low": 169.08,
+ "Close": 170.27
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 171.13,
+ "High": 171.41,
+ "Low": 169.93,
+ "Close": 171.19
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 170.54,
+ "High": 171.13,
+ "Low": 169.5,
+ "Close": 170.76
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 169.98,
+ "High": 171.84,
+ "Low": 169.68,
+ "Close": 170.44
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 169.27,
+ "High": 170.28,
+ "Low": 168.47,
+ "Close": 170.02
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 170.6,
+ "High": 171.65,
+ "Low": 168.82,
+ "Close": 169.69
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 169.68,
+ "High": 171.36,
+ "Low": 167.75,
+ "Close": 169.72
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 168.65,
+ "High": 170.29,
+ "Low": 167.51,
+ "Close": 168.64
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 170.01,
+ "High": 170.38,
+ "Low": 169.9,
+ "Close": 170.29
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 171.5,
+ "High": 172.67,
+ "Low": 169.56,
+ "Close": 169.76
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 170.16,
+ "High": 170.69,
+ "Low": 168.29,
+ "Close": 170.5
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 170.25,
+ "High": 170.66,
+ "Low": 168.44,
+ "Close": 169.83
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 168.54,
+ "High": 169.76,
+ "Low": 166.66,
+ "Close": 167.64
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 167.16,
+ "High": 168.22,
+ "Low": 166.25,
+ "Close": 167.83
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 168.03,
+ "High": 168.33,
+ "Low": 167.79,
+ "Close": 167.94
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 169.09,
+ "High": 169.48,
+ "Low": 168.1,
+ "Close": 168.37
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 168.61,
+ "High": 168.97,
+ "Low": 167.83,
+ "Close": 168.61
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 169.97,
+ "High": 171.12,
+ "Low": 169.49,
+ "Close": 169.86
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 169.2,
+ "High": 170.0,
+ "Low": 167.33,
+ "Close": 168.28
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 168.12,
+ "High": 170.12,
+ "Low": 167.23,
+ "Close": 169.19
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 168.6,
+ "High": 169.43,
+ "Low": 167.44,
+ "Close": 168.29
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 168.94,
+ "High": 170.82,
+ "Low": 167.65,
+ "Close": 169.73
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 169.61,
+ "High": 170.29,
+ "Low": 168.66,
+ "Close": 169.85
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 170.37,
+ "High": 170.86,
+ "Low": 170.09,
+ "Close": 170.32
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 170.64,
+ "High": 170.96,
+ "Low": 169.44,
+ "Close": 169.65
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 168.62,
+ "High": 169.46,
+ "Low": 168.34,
+ "Close": 168.8
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 167.44,
+ "High": 167.82,
+ "Low": 165.81,
+ "Close": 166.25
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 165.72,
+ "High": 166.3,
+ "Low": 164.27,
+ "Close": 165.25
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 166.09,
+ "High": 167.47,
+ "Low": 164.77,
+ "Close": 166.96
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 166.06,
+ "High": 166.82,
+ "Low": 164.11,
+ "Close": 166.76
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 166.67,
+ "High": 168.42,
+ "Low": 164.95,
+ "Close": 165.04
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 163.83,
+ "High": 165.01,
+ "Low": 163.58,
+ "Close": 164.78
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 165.68,
+ "High": 166.42,
+ "Low": 164.25,
+ "Close": 166.03
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 164.97,
+ "High": 166.45,
+ "Low": 164.22,
+ "Close": 165.75
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 166.37,
+ "High": 167.26,
+ "Low": 165.77,
+ "Close": 166.69
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 165.5,
+ "High": 166.22,
+ "Low": 165.03,
+ "Close": 165.03
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 163.6,
+ "High": 163.74,
+ "Low": 162.1,
+ "Close": 162.41
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 161.51,
+ "High": 161.87,
+ "Low": 160.77,
+ "Close": 161.12
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 160.2,
+ "High": 160.65,
+ "Low": 159.1,
+ "Close": 160.22
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 161.25,
+ "High": 162.03,
+ "Low": 159.96,
+ "Close": 160.24
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 160.22,
+ "High": 160.62,
+ "Low": 158.41,
+ "Close": 160.23
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 159.65,
+ "High": 159.81,
+ "Low": 158.72,
+ "Close": 159.06
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 159.21,
+ "High": 159.8,
+ "Low": 159.03,
+ "Close": 159.59
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 159.37,
+ "High": 160.79,
+ "Low": 158.58,
+ "Close": 159.82
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 161.05,
+ "High": 162.95,
+ "Low": 159.44,
+ "Close": 161.81
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 162.62,
+ "High": 163.48,
+ "Low": 161.0,
+ "Close": 161.56
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 160.74,
+ "High": 161.34,
+ "Low": 160.34,
+ "Close": 160.58
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 160.4,
+ "High": 161.4,
+ "Low": 159.11,
+ "Close": 159.51
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 158.12,
+ "High": 159.57,
+ "Low": 156.54,
+ "Close": 157.8
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 158.21,
+ "High": 158.4,
+ "Low": 157.2,
+ "Close": 157.28
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 157.63,
+ "High": 158.39,
+ "Low": 157.0,
+ "Close": 158.02
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 158.64,
+ "High": 158.88,
+ "Low": 158.23,
+ "Close": 158.32
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 157.06,
+ "High": 158.06,
+ "Low": 155.14,
+ "Close": 155.46
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 154.59,
+ "High": 154.8,
+ "Low": 153.1,
+ "Close": 154.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 153.0,
+ "High": 154.63,
+ "Low": 152.45,
+ "Close": 153.32
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 153.08,
+ "High": 154.63,
+ "Low": 151.71,
+ "Close": 153.65
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 154.77,
+ "High": 155.87,
+ "Low": 152.78,
+ "Close": 155.64
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 156.92,
+ "High": 157.31,
+ "Low": 154.93,
+ "Close": 154.93
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 155.23,
+ "High": 155.88,
+ "Low": 155.11,
+ "Close": 155.14
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 155.76,
+ "High": 156.46,
+ "Low": 155.26,
+ "Close": 156.04
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 154.9,
+ "High": 156.28,
+ "Low": 154.31,
+ "Close": 154.74
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 153.53,
+ "High": 155.1,
+ "Low": 151.9,
+ "Close": 152.24
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 153.29,
+ "High": 155.19,
+ "Low": 151.43,
+ "Close": 154.65
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 154.22,
+ "High": 155.39,
+ "Low": 152.76,
+ "Close": 152.83
+ }
+]
\ No newline at end of file
diff --git a/react/src/ai-components/chart/data/msft-data.json b/react/src/ai-components/chart/data/msft-data.json
new file mode 100644
index 0000000..df9e7d5
--- /dev/null
+++ b/react/src/ai-components/chart/data/msft-data.json
@@ -0,0 +1,2250 @@
+[
+ {
+ "date": "2024-06-03",
+ "open": 128.65,
+ "high": 129.66,
+ "low": 128.35,
+ "close": 129.24,
+ "volume": 17862294
+ },
+ {
+ "date": "2024-06-04",
+ "open": 130.53,
+ "high": 131.76,
+ "low": 129.24,
+ "close": 129.83,
+ "volume": 24622730
+ },
+ {
+ "date": "2024-06-05",
+ "open": 130.91,
+ "high": 132.21,
+ "low": 130.08,
+ "close": 130.74,
+ "volume": 25324954
+ },
+ {
+ "date": "2024-06-06",
+ "open": 131.34,
+ "high": 132.23,
+ "low": 128.97,
+ "close": 130.0,
+ "volume": 23487603
+ },
+ {
+ "date": "2024-06-07",
+ "open": 130.56,
+ "high": 131.17,
+ "low": 128.8,
+ "close": 129.5,
+ "volume": 34692706
+ },
+ {
+ "date": "2024-06-10",
+ "open": 128.47,
+ "high": 129.87,
+ "low": 127.16,
+ "close": 127.4,
+ "volume": 32653028
+ },
+ {
+ "date": "2024-06-11",
+ "open": 128.07,
+ "high": 129.44,
+ "low": 126.32,
+ "close": 126.32,
+ "volume": 32027251
+ },
+ {
+ "date": "2024-06-12",
+ "open": 124.48,
+ "high": 124.66,
+ "low": 123.33,
+ "close": 123.67,
+ "volume": 34268108
+ },
+ {
+ "date": "2024-06-13",
+ "open": 123.91,
+ "high": 125.58,
+ "low": 123.75,
+ "close": 124.29,
+ "volume": 23048223
+ },
+ {
+ "date": "2024-06-14",
+ "open": 124.78,
+ "high": 126.13,
+ "low": 123.45,
+ "close": 125.31,
+ "volume": 23055870
+ },
+ {
+ "date": "2024-06-17",
+ "open": 124.45,
+ "high": 125.68,
+ "low": 123.59,
+ "close": 124.71,
+ "volume": 29045496
+ },
+ {
+ "date": "2024-06-18",
+ "open": 126.08,
+ "high": 127.11,
+ "low": 125.33,
+ "close": 126.28,
+ "volume": 26792047
+ },
+ {
+ "date": "2024-06-19",
+ "open": 125.73,
+ "high": 126.56,
+ "low": 124.7,
+ "close": 124.85,
+ "volume": 21305157
+ },
+ {
+ "date": "2024-06-20",
+ "open": 123.77,
+ "high": 125.62,
+ "low": 122.49,
+ "close": 124.35,
+ "volume": 19580719
+ },
+ {
+ "date": "2024-06-21",
+ "open": 125.51,
+ "high": 126.96,
+ "low": 125.01,
+ "close": 125.75,
+ "volume": 24613573
+ },
+ {
+ "date": "2024-06-24",
+ "open": 125.12,
+ "high": 127.23,
+ "low": 123.74,
+ "close": 127.04,
+ "volume": 32520284
+ },
+ {
+ "date": "2024-06-25",
+ "open": 128.39,
+ "high": 129.29,
+ "low": 127.41,
+ "close": 128.85,
+ "volume": 18300998
+ },
+ {
+ "date": "2024-06-26",
+ "open": 129.78,
+ "high": 132.32,
+ "low": 128.59,
+ "close": 131.14,
+ "volume": 26021558
+ },
+ {
+ "date": "2024-06-27",
+ "open": 132.42,
+ "high": 134.6,
+ "low": 131.22,
+ "close": 134.17,
+ "volume": 33118380
+ },
+ {
+ "date": "2024-06-28",
+ "open": 135.82,
+ "high": 135.95,
+ "low": 134.44,
+ "close": 135.04,
+ "volume": 20578150
+ },
+ {
+ "date": "2024-07-01",
+ "open": 134.78,
+ "high": 135.83,
+ "low": 134.04,
+ "close": 135.33,
+ "volume": 29493376
+ },
+ {
+ "date": "2024-07-02",
+ "open": 135.09,
+ "high": 136.51,
+ "low": 134.41,
+ "close": 136.39,
+ "volume": 33915486
+ },
+ {
+ "date": "2024-07-03",
+ "open": 136.24,
+ "high": 137.11,
+ "low": 134.64,
+ "close": 135.68,
+ "volume": 15498134
+ },
+ {
+ "date": "2024-07-04",
+ "open": 135.49,
+ "high": 137.8,
+ "low": 134.09,
+ "close": 136.7,
+ "volume": 33539877
+ },
+ {
+ "date": "2024-07-05",
+ "open": 137.13,
+ "high": 138.05,
+ "low": 135.93,
+ "close": 136.53,
+ "volume": 33779876
+ },
+ {
+ "date": "2024-07-08",
+ "open": 135.49,
+ "high": 137.61,
+ "low": 134.21,
+ "close": 136.26,
+ "volume": 23678455
+ },
+ {
+ "date": "2024-07-09",
+ "open": 135.48,
+ "high": 136.69,
+ "low": 135.35,
+ "close": 136.05,
+ "volume": 21438913
+ },
+ {
+ "date": "2024-07-10",
+ "open": 136.39,
+ "high": 137.98,
+ "low": 135.28,
+ "close": 137.87,
+ "volume": 31211658
+ },
+ {
+ "date": "2024-07-11",
+ "open": 137.74,
+ "high": 140.42,
+ "low": 137.3,
+ "close": 139.13,
+ "volume": 24963524
+ },
+ {
+ "date": "2024-07-12",
+ "open": 139.14,
+ "high": 140.05,
+ "low": 136.58,
+ "close": 137.73,
+ "volume": 25765620
+ },
+ {
+ "date": "2024-07-15",
+ "open": 137.12,
+ "high": 137.81,
+ "low": 135.58,
+ "close": 135.96,
+ "volume": 15243350
+ },
+ {
+ "date": "2024-07-16",
+ "open": 137.53,
+ "high": 137.96,
+ "low": 134.8,
+ "close": 135.81,
+ "volume": 25110655
+ },
+ {
+ "date": "2024-07-17",
+ "open": 135.83,
+ "high": 138.44,
+ "low": 134.58,
+ "close": 137.81,
+ "volume": 15002463
+ },
+ {
+ "date": "2024-07-18",
+ "open": 139.28,
+ "high": 140.36,
+ "low": 137.94,
+ "close": 139.22,
+ "volume": 30749505
+ },
+ {
+ "date": "2024-07-19",
+ "open": 139.27,
+ "high": 140.22,
+ "low": 137.99,
+ "close": 139.55,
+ "volume": 34672175
+ },
+ {
+ "date": "2024-07-22",
+ "open": 138.07,
+ "high": 138.74,
+ "low": 135.44,
+ "close": 136.94,
+ "volume": 17070231
+ },
+ {
+ "date": "2024-07-23",
+ "open": 137.43,
+ "high": 138.4,
+ "low": 136.15,
+ "close": 138.22,
+ "volume": 21556726
+ },
+ {
+ "date": "2024-07-24",
+ "open": 138.36,
+ "high": 139.84,
+ "low": 136.77,
+ "close": 137.04,
+ "volume": 30374245
+ },
+ {
+ "date": "2024-07-25",
+ "open": 138.54,
+ "high": 141.77,
+ "low": 137.14,
+ "close": 140.43,
+ "volume": 27146889
+ },
+ {
+ "date": "2024-07-26",
+ "open": 141.2,
+ "high": 143.4,
+ "low": 140.96,
+ "close": 142.61,
+ "volume": 29767082
+ },
+ {
+ "date": "2024-07-29",
+ "open": 140.98,
+ "high": 142.11,
+ "low": 139.93,
+ "close": 141.84,
+ "volume": 28548940
+ },
+ {
+ "date": "2024-07-30",
+ "open": 140.09,
+ "high": 141.54,
+ "low": 137.37,
+ "close": 138.83,
+ "volume": 19603793
+ },
+ {
+ "date": "2024-07-31",
+ "open": 138.79,
+ "high": 142.01,
+ "low": 137.49,
+ "close": 140.58,
+ "volume": 32595609
+ },
+ {
+ "date": "2024-08-01",
+ "open": 140.12,
+ "high": 140.35,
+ "low": 139.36,
+ "close": 139.82,
+ "volume": 30833184
+ },
+ {
+ "date": "2024-08-02",
+ "open": 138.98,
+ "high": 139.61,
+ "low": 138.14,
+ "close": 138.7,
+ "volume": 34637773
+ },
+ {
+ "date": "2024-08-05",
+ "open": 137.61,
+ "high": 138.24,
+ "low": 136.56,
+ "close": 137.84,
+ "volume": 20616414
+ },
+ {
+ "date": "2024-08-06",
+ "open": 136.82,
+ "high": 138.22,
+ "low": 135.37,
+ "close": 138.14,
+ "volume": 26759990
+ },
+ {
+ "date": "2024-08-07",
+ "open": 137.44,
+ "high": 139.99,
+ "low": 136.35,
+ "close": 139.1,
+ "volume": 31323601
+ },
+ {
+ "date": "2024-08-08",
+ "open": 139.76,
+ "high": 141.58,
+ "low": 138.38,
+ "close": 140.27,
+ "volume": 17379822
+ },
+ {
+ "date": "2024-08-09",
+ "open": 141.32,
+ "high": 144.67,
+ "low": 139.83,
+ "close": 143.2,
+ "volume": 24804819
+ },
+ {
+ "date": "2024-08-12",
+ "open": 142.24,
+ "high": 145.09,
+ "low": 141.74,
+ "close": 144.16,
+ "volume": 26169440
+ },
+ {
+ "date": "2024-08-13",
+ "open": 142.75,
+ "high": 143.45,
+ "low": 142.5,
+ "close": 142.78,
+ "volume": 21468022
+ },
+ {
+ "date": "2024-08-14",
+ "open": 142.17,
+ "high": 142.58,
+ "low": 141.09,
+ "close": 141.42,
+ "volume": 20561453
+ },
+ {
+ "date": "2024-08-15",
+ "open": 140.54,
+ "high": 140.85,
+ "low": 138.74,
+ "close": 139.35,
+ "volume": 20312759
+ },
+ {
+ "date": "2024-08-16",
+ "open": 140.28,
+ "high": 140.94,
+ "low": 139.13,
+ "close": 140.36,
+ "volume": 29188629
+ },
+ {
+ "date": "2024-08-19",
+ "open": 141.79,
+ "high": 142.96,
+ "low": 141.19,
+ "close": 142.33,
+ "volume": 17162676
+ },
+ {
+ "date": "2024-08-20",
+ "open": 141.37,
+ "high": 142.64,
+ "low": 140.15,
+ "close": 141.8,
+ "volume": 21685590
+ },
+ {
+ "date": "2024-08-21",
+ "open": 143.3,
+ "high": 143.93,
+ "low": 140.13,
+ "close": 141.51,
+ "volume": 34902453
+ },
+ {
+ "date": "2024-08-22",
+ "open": 140.72,
+ "high": 143.22,
+ "low": 139.63,
+ "close": 142.52,
+ "volume": 20215861
+ },
+ {
+ "date": "2024-08-23",
+ "open": 140.87,
+ "high": 142.2,
+ "low": 139.23,
+ "close": 140.42,
+ "volume": 16901066
+ },
+ {
+ "date": "2024-08-26",
+ "open": 142.05,
+ "high": 143.41,
+ "low": 139.14,
+ "close": 140.36,
+ "volume": 15455830
+ },
+ {
+ "date": "2024-08-27",
+ "open": 141.93,
+ "high": 143.02,
+ "low": 139.44,
+ "close": 140.82,
+ "volume": 29134729
+ },
+ {
+ "date": "2024-08-28",
+ "open": 141.0,
+ "high": 142.24,
+ "low": 139.81,
+ "close": 141.37,
+ "volume": 18931084
+ },
+ {
+ "date": "2024-08-29",
+ "open": 143.15,
+ "high": 143.97,
+ "low": 142.06,
+ "close": 143.67,
+ "volume": 26983909
+ },
+ {
+ "date": "2024-08-30",
+ "open": 143.51,
+ "high": 144.39,
+ "low": 142.17,
+ "close": 143.85,
+ "volume": 27470681
+ },
+ {
+ "date": "2024-09-02",
+ "open": 143.95,
+ "high": 145.3,
+ "low": 143.21,
+ "close": 144.99,
+ "volume": 16377021
+ },
+ {
+ "date": "2024-09-03",
+ "open": 143.48,
+ "high": 144.1,
+ "low": 143.21,
+ "close": 143.48,
+ "volume": 30114642
+ },
+ {
+ "date": "2024-09-04",
+ "open": 143.24,
+ "high": 143.89,
+ "low": 141.98,
+ "close": 143.08,
+ "volume": 15951636
+ },
+ {
+ "date": "2024-09-05",
+ "open": 143.07,
+ "high": 143.68,
+ "low": 140.68,
+ "close": 141.52,
+ "volume": 18956749
+ },
+ {
+ "date": "2024-09-06",
+ "open": 139.95,
+ "high": 141.71,
+ "low": 138.73,
+ "close": 141.05,
+ "volume": 20778573
+ },
+ {
+ "date": "2024-09-09",
+ "open": 140.99,
+ "high": 142.3,
+ "low": 139.66,
+ "close": 141.29,
+ "volume": 18880515
+ },
+ {
+ "date": "2024-09-10",
+ "open": 139.86,
+ "high": 141.22,
+ "low": 136.91,
+ "close": 138.09,
+ "volume": 33889288
+ },
+ {
+ "date": "2024-09-11",
+ "open": 137.93,
+ "high": 139.25,
+ "low": 137.0,
+ "close": 138.25,
+ "volume": 34617435
+ },
+ {
+ "date": "2024-09-12",
+ "open": 139.23,
+ "high": 140.95,
+ "low": 139.21,
+ "close": 140.26,
+ "volume": 32973215
+ },
+ {
+ "date": "2024-09-13",
+ "open": 139.43,
+ "high": 140.79,
+ "low": 136.74,
+ "close": 137.8,
+ "volume": 17343332
+ },
+ {
+ "date": "2024-09-16",
+ "open": 136.03,
+ "high": 136.07,
+ "low": 134.4,
+ "close": 134.99,
+ "volume": 26515100
+ },
+ {
+ "date": "2024-09-17",
+ "open": 136.44,
+ "high": 138.29,
+ "low": 135.44,
+ "close": 137.46,
+ "volume": 21305151
+ },
+ {
+ "date": "2024-09-18",
+ "open": 136.14,
+ "high": 137.11,
+ "low": 132.92,
+ "close": 134.17,
+ "volume": 34234417
+ },
+ {
+ "date": "2024-09-19",
+ "open": 132.33,
+ "high": 132.57,
+ "low": 130.64,
+ "close": 131.12,
+ "volume": 31105943
+ },
+ {
+ "date": "2024-09-20",
+ "open": 132.78,
+ "high": 133.87,
+ "low": 130.04,
+ "close": 131.1,
+ "volume": 30303814
+ },
+ {
+ "date": "2024-09-23",
+ "open": 132.95,
+ "high": 134.64,
+ "low": 131.76,
+ "close": 134.11,
+ "volume": 30133341
+ },
+ {
+ "date": "2024-09-24",
+ "open": 132.91,
+ "high": 133.14,
+ "low": 131.47,
+ "close": 131.57,
+ "volume": 34349363
+ },
+ {
+ "date": "2024-09-25",
+ "open": 130.61,
+ "high": 131.16,
+ "low": 130.34,
+ "close": 130.48,
+ "volume": 19155772
+ },
+ {
+ "date": "2024-09-26",
+ "open": 132.21,
+ "high": 133.65,
+ "low": 129.15,
+ "close": 130.6,
+ "volume": 30895866
+ },
+ {
+ "date": "2024-09-27",
+ "open": 128.96,
+ "high": 129.98,
+ "low": 127.64,
+ "close": 129.49,
+ "volume": 18776052
+ },
+ {
+ "date": "2024-09-30",
+ "open": 127.69,
+ "high": 128.0,
+ "low": 127.05,
+ "close": 127.19,
+ "volume": 29103808
+ },
+ {
+ "date": "2024-10-01",
+ "open": 126.57,
+ "high": 129.71,
+ "low": 126.03,
+ "close": 128.32,
+ "volume": 28980142
+ },
+ {
+ "date": "2024-10-02",
+ "open": 130.07,
+ "high": 132.02,
+ "low": 129.51,
+ "close": 131.88,
+ "volume": 27641199
+ },
+ {
+ "date": "2024-10-03",
+ "open": 131.63,
+ "high": 134.0,
+ "low": 130.48,
+ "close": 132.64,
+ "volume": 32079114
+ },
+ {
+ "date": "2024-10-04",
+ "open": 131.17,
+ "high": 131.27,
+ "low": 129.23,
+ "close": 130.66,
+ "volume": 30712620
+ },
+ {
+ "date": "2024-10-07",
+ "open": 132.49,
+ "high": 133.04,
+ "low": 132.15,
+ "close": 132.89,
+ "volume": 20238644
+ },
+ {
+ "date": "2024-10-08",
+ "open": 132.49,
+ "high": 132.95,
+ "low": 130.17,
+ "close": 130.79,
+ "volume": 32171498
+ },
+ {
+ "date": "2024-10-09",
+ "open": 129.22,
+ "high": 130.32,
+ "low": 128.28,
+ "close": 129.43,
+ "volume": 15898294
+ },
+ {
+ "date": "2024-10-10",
+ "open": 127.68,
+ "high": 129.98,
+ "low": 126.58,
+ "close": 129.56,
+ "volume": 19550544
+ },
+ {
+ "date": "2024-10-11",
+ "open": 131.29,
+ "high": 132.09,
+ "low": 130.14,
+ "close": 132.08,
+ "volume": 26428099
+ },
+ {
+ "date": "2024-10-14",
+ "open": 131.51,
+ "high": 132.85,
+ "low": 131.08,
+ "close": 131.15,
+ "volume": 34213903
+ },
+ {
+ "date": "2024-10-15",
+ "open": 132.0,
+ "high": 132.87,
+ "low": 129.91,
+ "close": 130.39,
+ "volume": 30702138
+ },
+ {
+ "date": "2024-10-16",
+ "open": 130.0,
+ "high": 130.54,
+ "low": 128.85,
+ "close": 130.16,
+ "volume": 32559064
+ },
+ {
+ "date": "2024-10-17",
+ "open": 132.0,
+ "high": 132.13,
+ "low": 129.23,
+ "close": 130.03,
+ "volume": 31203347
+ },
+ {
+ "date": "2024-10-18",
+ "open": 131.01,
+ "high": 131.41,
+ "low": 130.62,
+ "close": 131.21,
+ "volume": 22481402
+ },
+ {
+ "date": "2024-10-21",
+ "open": 129.46,
+ "high": 130.69,
+ "low": 127.1,
+ "close": 128.22,
+ "volume": 29324309
+ },
+ {
+ "date": "2024-10-22",
+ "open": 127.02,
+ "high": 127.79,
+ "low": 125.67,
+ "close": 127.53,
+ "volume": 16812712
+ },
+ {
+ "date": "2024-10-23",
+ "open": 127.28,
+ "high": 128.61,
+ "low": 124.86,
+ "close": 125.56,
+ "volume": 34819235
+ },
+ {
+ "date": "2024-10-24",
+ "open": 125.65,
+ "high": 126.87,
+ "low": 125.08,
+ "close": 125.21,
+ "volume": 19219721
+ },
+ {
+ "date": "2024-10-25",
+ "open": 124.14,
+ "high": 124.89,
+ "low": 122.51,
+ "close": 123.02,
+ "volume": 19110801
+ },
+ {
+ "date": "2024-10-28",
+ "open": 121.34,
+ "high": 124.77,
+ "low": 120.15,
+ "close": 123.31,
+ "volume": 15839672
+ },
+ {
+ "date": "2024-10-29",
+ "open": 123.22,
+ "high": 125.14,
+ "low": 122.85,
+ "close": 124.96,
+ "volume": 16661740
+ },
+ {
+ "date": "2024-10-30",
+ "open": 126.81,
+ "high": 127.53,
+ "low": 126.29,
+ "close": 127.06,
+ "volume": 25666222
+ },
+ {
+ "date": "2024-10-31",
+ "open": 125.72,
+ "high": 126.55,
+ "low": 124.46,
+ "close": 125.43,
+ "volume": 18798381
+ },
+ {
+ "date": "2024-11-01",
+ "open": 124.96,
+ "high": 126.09,
+ "low": 123.14,
+ "close": 123.22,
+ "volume": 27325862
+ },
+ {
+ "date": "2024-11-04",
+ "open": 123.09,
+ "high": 124.27,
+ "low": 121.85,
+ "close": 122.57,
+ "volume": 20260264
+ },
+ {
+ "date": "2024-11-05",
+ "open": 124.39,
+ "high": 124.87,
+ "low": 123.4,
+ "close": 124.03,
+ "volume": 22875328
+ },
+ {
+ "date": "2024-11-06",
+ "open": 122.5,
+ "high": 123.97,
+ "low": 121.78,
+ "close": 121.82,
+ "volume": 21024422
+ },
+ {
+ "date": "2024-11-07",
+ "open": 122.17,
+ "high": 123.51,
+ "low": 121.02,
+ "close": 122.76,
+ "volume": 30914942
+ },
+ {
+ "date": "2024-11-08",
+ "open": 123.24,
+ "high": 124.41,
+ "low": 121.99,
+ "close": 123.67,
+ "volume": 16433080
+ },
+ {
+ "date": "2024-11-11",
+ "open": 125.63,
+ "high": 125.96,
+ "low": 123.51,
+ "close": 124.38,
+ "volume": 24848264
+ },
+ {
+ "date": "2024-11-12",
+ "open": 125.07,
+ "high": 125.1,
+ "low": 123.33,
+ "close": 123.87,
+ "volume": 21430428
+ },
+ {
+ "date": "2024-11-13",
+ "open": 124.17,
+ "high": 126.79,
+ "low": 122.85,
+ "close": 125.93,
+ "volume": 28435747
+ },
+ {
+ "date": "2024-11-14",
+ "open": 126.25,
+ "high": 126.57,
+ "low": 125.71,
+ "close": 126.47,
+ "volume": 27477476
+ },
+ {
+ "date": "2024-11-15",
+ "open": 126.07,
+ "high": 127.46,
+ "low": 125.97,
+ "close": 127.02,
+ "volume": 27868832
+ },
+ {
+ "date": "2024-11-18",
+ "open": 128.12,
+ "high": 128.17,
+ "low": 126.71,
+ "close": 127.09,
+ "volume": 31143198
+ },
+ {
+ "date": "2024-11-19",
+ "open": 125.91,
+ "high": 126.05,
+ "low": 123.34,
+ "close": 124.28,
+ "volume": 31226660
+ },
+ {
+ "date": "2024-11-20",
+ "open": 124.96,
+ "high": 126.33,
+ "low": 123.32,
+ "close": 124.44,
+ "volume": 30722838
+ },
+ {
+ "date": "2024-11-21",
+ "open": 124.02,
+ "high": 126.31,
+ "low": 123.51,
+ "close": 125.56,
+ "volume": 33490495
+ },
+ {
+ "date": "2024-11-22",
+ "open": 125.83,
+ "high": 127.07,
+ "low": 123.64,
+ "close": 125.03,
+ "volume": 16158385
+ },
+ {
+ "date": "2024-11-25",
+ "open": 125.75,
+ "high": 126.3,
+ "low": 124.4,
+ "close": 126.02,
+ "volume": 21994792
+ },
+ {
+ "date": "2024-11-26",
+ "open": 126.31,
+ "high": 127.46,
+ "low": 125.88,
+ "close": 126.49,
+ "volume": 26482684
+ },
+ {
+ "date": "2024-11-27",
+ "open": 125.06,
+ "high": 126.42,
+ "low": 123.43,
+ "close": 124.18,
+ "volume": 24555794
+ },
+ {
+ "date": "2024-11-28",
+ "open": 125.52,
+ "high": 125.74,
+ "low": 124.3,
+ "close": 124.89,
+ "volume": 27312658
+ },
+ {
+ "date": "2024-11-29",
+ "open": 123.83,
+ "high": 125.61,
+ "low": 122.58,
+ "close": 124.67,
+ "volume": 22902138
+ },
+ {
+ "date": "2024-12-02",
+ "open": 124.72,
+ "high": 126.31,
+ "low": 124.55,
+ "close": 124.99,
+ "volume": 15373263
+ },
+ {
+ "date": "2024-12-03",
+ "open": 125.71,
+ "high": 125.98,
+ "low": 124.64,
+ "close": 125.66,
+ "volume": 23915293
+ },
+ {
+ "date": "2024-12-04",
+ "open": 125.22,
+ "high": 125.74,
+ "low": 122.63,
+ "close": 123.42,
+ "volume": 18333714
+ },
+ {
+ "date": "2024-12-05",
+ "open": 123.71,
+ "high": 124.6,
+ "low": 123.58,
+ "close": 124.27,
+ "volume": 33604827
+ },
+ {
+ "date": "2024-12-06",
+ "open": 122.57,
+ "high": 123.69,
+ "low": 120.67,
+ "close": 121.77,
+ "volume": 30695264
+ },
+ {
+ "date": "2024-12-09",
+ "open": 122.31,
+ "high": 123.6,
+ "low": 120.81,
+ "close": 122.04,
+ "volume": 31939910
+ },
+ {
+ "date": "2024-12-10",
+ "open": 122.95,
+ "high": 124.32,
+ "low": 122.7,
+ "close": 123.63,
+ "volume": 23256643
+ },
+ {
+ "date": "2024-12-11",
+ "open": 122.75,
+ "high": 124.29,
+ "low": 122.31,
+ "close": 123.48,
+ "volume": 32533280
+ },
+ {
+ "date": "2024-12-12",
+ "open": 121.98,
+ "high": 123.26,
+ "low": 121.39,
+ "close": 122.77,
+ "volume": 18394506
+ },
+ {
+ "date": "2024-12-13",
+ "open": 121.45,
+ "high": 121.89,
+ "low": 118.53,
+ "close": 119.52,
+ "volume": 33419620
+ },
+ {
+ "date": "2024-12-16",
+ "open": 117.72,
+ "high": 118.72,
+ "low": 117.5,
+ "close": 118.19,
+ "volume": 25110812
+ },
+ {
+ "date": "2024-12-17",
+ "open": 116.51,
+ "high": 117.86,
+ "low": 115.45,
+ "close": 117.25,
+ "volume": 30124815
+ },
+ {
+ "date": "2024-12-18",
+ "open": 119.0,
+ "high": 119.58,
+ "low": 118.28,
+ "close": 119.33,
+ "volume": 20620680
+ },
+ {
+ "date": "2024-12-19",
+ "open": 117.99,
+ "high": 119.01,
+ "low": 115.48,
+ "close": 116.01,
+ "volume": 16988674
+ },
+ {
+ "date": "2024-12-20",
+ "open": 117.52,
+ "high": 120.61,
+ "low": 116.97,
+ "close": 119.21,
+ "volume": 34735302
+ },
+ {
+ "date": "2024-12-23",
+ "open": 117.22,
+ "high": 119.03,
+ "low": 116.42,
+ "close": 118.29,
+ "volume": 24797175
+ },
+ {
+ "date": "2024-12-24",
+ "open": 117.32,
+ "high": 118.19,
+ "low": 116.63,
+ "close": 117.71,
+ "volume": 18514639
+ },
+ {
+ "date": "2024-12-25",
+ "open": 116.69,
+ "high": 118.35,
+ "low": 115.45,
+ "close": 117.01,
+ "volume": 33423232
+ },
+ {
+ "date": "2024-12-26",
+ "open": 117.47,
+ "high": 118.26,
+ "low": 115.86,
+ "close": 116.88,
+ "volume": 15578643
+ },
+ {
+ "date": "2024-12-27",
+ "open": 118.43,
+ "high": 119.55,
+ "low": 118.03,
+ "close": 118.6,
+ "volume": 24026144
+ },
+ {
+ "date": "2024-12-30",
+ "open": 120.56,
+ "high": 120.79,
+ "low": 119.94,
+ "close": 120.43,
+ "volume": 25248054
+ },
+ {
+ "date": "2024-12-31",
+ "open": 118.9,
+ "high": 119.77,
+ "low": 117.47,
+ "close": 119.24,
+ "volume": 21552040
+ },
+ {
+ "date": "2025-01-01",
+ "open": 117.83,
+ "high": 119.25,
+ "low": 116.28,
+ "close": 117.2,
+ "volume": 25540411
+ },
+ {
+ "date": "2025-01-02",
+ "open": 118.54,
+ "high": 119.92,
+ "low": 116.55,
+ "close": 117.85,
+ "volume": 22357156
+ },
+ {
+ "date": "2025-01-03",
+ "open": 117.05,
+ "high": 117.08,
+ "low": 115.06,
+ "close": 115.3,
+ "volume": 24344019
+ },
+ {
+ "date": "2025-01-06",
+ "open": 115.6,
+ "high": 117.13,
+ "low": 114.91,
+ "close": 115.81,
+ "volume": 27198651
+ },
+ {
+ "date": "2025-01-07",
+ "open": 117.38,
+ "high": 118.66,
+ "low": 116.31,
+ "close": 118.47,
+ "volume": 29987976
+ },
+ {
+ "date": "2025-01-08",
+ "open": 117.57,
+ "high": 119.77,
+ "low": 117.4,
+ "close": 118.79,
+ "volume": 16296644
+ },
+ {
+ "date": "2025-01-09",
+ "open": 117.79,
+ "high": 120.05,
+ "low": 117.47,
+ "close": 119.48,
+ "volume": 26732931
+ },
+ {
+ "date": "2025-01-10",
+ "open": 119.9,
+ "high": 121.38,
+ "low": 118.2,
+ "close": 118.4,
+ "volume": 17515705
+ },
+ {
+ "date": "2025-01-13",
+ "open": 118.78,
+ "high": 119.28,
+ "low": 116.24,
+ "close": 117.17,
+ "volume": 32705979
+ },
+ {
+ "date": "2025-01-14",
+ "open": 118.99,
+ "high": 119.92,
+ "low": 117.79,
+ "close": 117.84,
+ "volume": 31338194
+ },
+ {
+ "date": "2025-01-15",
+ "open": 119.28,
+ "high": 120.83,
+ "low": 118.16,
+ "close": 120.19,
+ "volume": 18295452
+ },
+ {
+ "date": "2025-01-16",
+ "open": 121.19,
+ "high": 122.69,
+ "low": 120.15,
+ "close": 120.31,
+ "volume": 27969858
+ },
+ {
+ "date": "2025-01-17",
+ "open": 118.65,
+ "high": 121.0,
+ "low": 117.61,
+ "close": 120.53,
+ "volume": 24063647
+ },
+ {
+ "date": "2025-01-20",
+ "open": 119.83,
+ "high": 121.39,
+ "low": 118.88,
+ "close": 121.1,
+ "volume": 16540061
+ },
+ {
+ "date": "2025-01-21",
+ "open": 121.25,
+ "high": 122.18,
+ "low": 120.6,
+ "close": 120.91,
+ "volume": 32147496
+ },
+ {
+ "date": "2025-01-22",
+ "open": 119.58,
+ "high": 120.32,
+ "low": 118.95,
+ "close": 119.21,
+ "volume": 28053255
+ },
+ {
+ "date": "2025-01-23",
+ "open": 118.71,
+ "high": 119.74,
+ "low": 118.63,
+ "close": 119.56,
+ "volume": 21001764
+ },
+ {
+ "date": "2025-01-24",
+ "open": 118.3,
+ "high": 119.27,
+ "low": 116.35,
+ "close": 117.23,
+ "volume": 15914851
+ },
+ {
+ "date": "2025-01-27",
+ "open": 118.49,
+ "high": 120.21,
+ "low": 117.15,
+ "close": 119.07,
+ "volume": 21419389
+ },
+ {
+ "date": "2025-01-28",
+ "open": 120.55,
+ "high": 122.16,
+ "low": 119.25,
+ "close": 121.31,
+ "volume": 25124665
+ },
+ {
+ "date": "2025-01-29",
+ "open": 120.51,
+ "high": 120.99,
+ "low": 119.19,
+ "close": 119.23,
+ "volume": 17414723
+ },
+ {
+ "date": "2025-01-30",
+ "open": 118.6,
+ "high": 120.26,
+ "low": 118.17,
+ "close": 120.06,
+ "volume": 19711866
+ },
+ {
+ "date": "2025-01-31",
+ "open": 121.97,
+ "high": 123.33,
+ "low": 119.79,
+ "close": 120.64,
+ "volume": 18757027
+ },
+ {
+ "date": "2025-02-03",
+ "open": 122.27,
+ "high": 125.04,
+ "low": 121.53,
+ "close": 124.0,
+ "volume": 31642702
+ },
+ {
+ "date": "2025-02-04",
+ "open": 122.5,
+ "high": 123.89,
+ "low": 121.72,
+ "close": 123.85,
+ "volume": 33864097
+ },
+ {
+ "date": "2025-02-05",
+ "open": 124.34,
+ "high": 125.77,
+ "low": 123.52,
+ "close": 124.79,
+ "volume": 25819707
+ },
+ {
+ "date": "2025-02-06",
+ "open": 123.37,
+ "high": 125.77,
+ "low": 122.65,
+ "close": 124.75,
+ "volume": 28098738
+ },
+ {
+ "date": "2025-02-07",
+ "open": 123.02,
+ "high": 123.97,
+ "low": 121.35,
+ "close": 122.45,
+ "volume": 29040373
+ },
+ {
+ "date": "2025-02-10",
+ "open": 123.19,
+ "high": 124.29,
+ "low": 121.74,
+ "close": 123.75,
+ "volume": 34942081
+ },
+ {
+ "date": "2025-02-11",
+ "open": 123.74,
+ "high": 126.51,
+ "low": 122.45,
+ "close": 125.62,
+ "volume": 33081888
+ },
+ {
+ "date": "2025-02-12",
+ "open": 124.17,
+ "high": 125.4,
+ "low": 123.29,
+ "close": 123.57,
+ "volume": 25853072
+ },
+ {
+ "date": "2025-02-13",
+ "open": 123.65,
+ "high": 125.35,
+ "low": 122.28,
+ "close": 124.28,
+ "volume": 23729724
+ },
+ {
+ "date": "2025-02-14",
+ "open": 125.34,
+ "high": 127.42,
+ "low": 124.64,
+ "close": 126.5,
+ "volume": 30837487
+ },
+ {
+ "date": "2025-02-17",
+ "open": 125.36,
+ "high": 127.28,
+ "low": 124.44,
+ "close": 126.5,
+ "volume": 26351503
+ },
+ {
+ "date": "2025-02-18",
+ "open": 126.49,
+ "high": 127.22,
+ "low": 125.02,
+ "close": 126.53,
+ "volume": 17992270
+ },
+ {
+ "date": "2025-02-19",
+ "open": 126.09,
+ "high": 129.13,
+ "low": 126.06,
+ "close": 127.74,
+ "volume": 21889982
+ },
+ {
+ "date": "2025-02-20",
+ "open": 127.52,
+ "high": 129.59,
+ "low": 126.63,
+ "close": 128.3,
+ "volume": 24890884
+ },
+ {
+ "date": "2025-02-21",
+ "open": 128.01,
+ "high": 130.58,
+ "low": 127.88,
+ "close": 129.81,
+ "volume": 34498420
+ },
+ {
+ "date": "2025-02-24",
+ "open": 130.15,
+ "high": 132.39,
+ "low": 129.88,
+ "close": 131.42,
+ "volume": 34777473
+ },
+ {
+ "date": "2025-02-25",
+ "open": 130.44,
+ "high": 131.62,
+ "low": 129.83,
+ "close": 129.99,
+ "volume": 15850199
+ },
+ {
+ "date": "2025-02-26",
+ "open": 131.73,
+ "high": 134.16,
+ "low": 130.29,
+ "close": 133.73,
+ "volume": 18135695
+ },
+ {
+ "date": "2025-02-27",
+ "open": 135.6,
+ "high": 135.92,
+ "low": 132.34,
+ "close": 133.76,
+ "volume": 28513643
+ },
+ {
+ "date": "2025-02-28",
+ "open": 134.43,
+ "high": 134.8,
+ "low": 133.56,
+ "close": 134.68,
+ "volume": 25118050
+ },
+ {
+ "date": "2025-03-03",
+ "open": 133.2,
+ "high": 134.82,
+ "low": 132.2,
+ "close": 133.88,
+ "volume": 32773249
+ },
+ {
+ "date": "2025-03-04",
+ "open": 135.74,
+ "high": 136.29,
+ "low": 133.53,
+ "close": 134.29,
+ "volume": 22180371
+ },
+ {
+ "date": "2025-03-05",
+ "open": 134.92,
+ "high": 135.26,
+ "low": 133.05,
+ "close": 133.91,
+ "volume": 26386495
+ },
+ {
+ "date": "2025-03-06",
+ "open": 131.96,
+ "high": 134.12,
+ "low": 130.78,
+ "close": 133.28,
+ "volume": 32350290
+ },
+ {
+ "date": "2025-03-07",
+ "open": 134.05,
+ "high": 135.29,
+ "low": 133.51,
+ "close": 133.6,
+ "volume": 21341470
+ },
+ {
+ "date": "2025-03-10",
+ "open": 134.46,
+ "high": 134.7,
+ "low": 132.69,
+ "close": 133.8,
+ "volume": 27793008
+ },
+ {
+ "date": "2025-03-11",
+ "open": 131.84,
+ "high": 132.8,
+ "low": 130.9,
+ "close": 131.78,
+ "volume": 27094177
+ },
+ {
+ "date": "2025-03-12",
+ "open": 131.21,
+ "high": 132.5,
+ "low": 130.23,
+ "close": 131.39,
+ "volume": 30366000
+ },
+ {
+ "date": "2025-03-13",
+ "open": 131.87,
+ "high": 133.48,
+ "low": 131.6,
+ "close": 133.23,
+ "volume": 20062512
+ },
+ {
+ "date": "2025-03-14",
+ "open": 134.19,
+ "high": 135.96,
+ "low": 133.97,
+ "close": 135.67,
+ "volume": 34683657
+ },
+ {
+ "date": "2025-03-17",
+ "open": 135.59,
+ "high": 135.6,
+ "low": 133.04,
+ "close": 134.28,
+ "volume": 34228107
+ },
+ {
+ "date": "2025-03-18",
+ "open": 133.43,
+ "high": 134.77,
+ "low": 133.28,
+ "close": 134.09,
+ "volume": 24265877
+ },
+ {
+ "date": "2025-03-19",
+ "open": 133.14,
+ "high": 133.74,
+ "low": 130.39,
+ "close": 131.53,
+ "volume": 25200210
+ },
+ {
+ "date": "2025-03-20",
+ "open": 132.41,
+ "high": 133.22,
+ "low": 130.97,
+ "close": 131.68,
+ "volume": 18361166
+ },
+ {
+ "date": "2025-03-21",
+ "open": 130.08,
+ "high": 130.88,
+ "low": 128.94,
+ "close": 129.87,
+ "volume": 16009961
+ },
+ {
+ "date": "2025-03-24",
+ "open": 129.91,
+ "high": 130.25,
+ "low": 127.95,
+ "close": 127.99,
+ "volume": 19206392
+ },
+ {
+ "date": "2025-03-25",
+ "open": 128.58,
+ "high": 130.43,
+ "low": 127.89,
+ "close": 129.15,
+ "volume": 24449865
+ },
+ {
+ "date": "2025-03-26",
+ "open": 128.92,
+ "high": 129.39,
+ "low": 127.26,
+ "close": 128.71,
+ "volume": 33798767
+ },
+ {
+ "date": "2025-03-27",
+ "open": 128.81,
+ "high": 131.19,
+ "low": 127.7,
+ "close": 129.71,
+ "volume": 31923362
+ },
+ {
+ "date": "2025-03-28",
+ "open": 130.44,
+ "high": 131.93,
+ "low": 129.7,
+ "close": 130.06,
+ "volume": 34147897
+ },
+ {
+ "date": "2025-03-31",
+ "open": 129.84,
+ "high": 130.01,
+ "low": 128.36,
+ "close": 129.69,
+ "volume": 30723263
+ },
+ {
+ "date": "2025-04-01",
+ "open": 130.36,
+ "high": 130.57,
+ "low": 130.02,
+ "close": 130.26,
+ "volume": 27422992
+ },
+ {
+ "date": "2025-04-02",
+ "open": 128.92,
+ "high": 130.15,
+ "low": 126.0,
+ "close": 127.45,
+ "volume": 28908132
+ },
+ {
+ "date": "2025-04-03",
+ "open": 128.19,
+ "high": 130.72,
+ "low": 126.99,
+ "close": 130.16,
+ "volume": 19856065
+ },
+ {
+ "date": "2025-04-04",
+ "open": 128.22,
+ "high": 128.26,
+ "low": 127.02,
+ "close": 127.08,
+ "volume": 22714931
+ },
+ {
+ "date": "2025-04-07",
+ "open": 126.25,
+ "high": 129.46,
+ "low": 125.73,
+ "close": 128.15,
+ "volume": 19043909
+ },
+ {
+ "date": "2025-04-08",
+ "open": 129.79,
+ "high": 129.88,
+ "low": 127.36,
+ "close": 128.21,
+ "volume": 18290669
+ },
+ {
+ "date": "2025-04-09",
+ "open": 129.17,
+ "high": 131.34,
+ "low": 127.68,
+ "close": 129.9,
+ "volume": 21191582
+ },
+ {
+ "date": "2025-04-10",
+ "open": 128.5,
+ "high": 129.16,
+ "low": 126.57,
+ "close": 127.57,
+ "volume": 22916007
+ },
+ {
+ "date": "2025-04-11",
+ "open": 126.66,
+ "high": 129.95,
+ "low": 125.37,
+ "close": 128.55,
+ "volume": 20965788
+ },
+ {
+ "date": "2025-04-14",
+ "open": 128.97,
+ "high": 129.4,
+ "low": 127.46,
+ "close": 128.69,
+ "volume": 16902671
+ },
+ {
+ "date": "2025-04-15",
+ "open": 127.84,
+ "high": 129.26,
+ "low": 126.91,
+ "close": 128.55,
+ "volume": 24931434
+ },
+ {
+ "date": "2025-04-16",
+ "open": 126.59,
+ "high": 126.83,
+ "low": 124.69,
+ "close": 125.53,
+ "volume": 19214847
+ },
+ {
+ "date": "2025-04-17",
+ "open": 125.87,
+ "high": 126.46,
+ "low": 124.37,
+ "close": 124.71,
+ "volume": 27525252
+ },
+ {
+ "date": "2025-04-18",
+ "open": 123.47,
+ "high": 124.03,
+ "low": 122.99,
+ "close": 123.52,
+ "volume": 18070391
+ },
+ {
+ "date": "2025-04-21",
+ "open": 123.45,
+ "high": 125.75,
+ "low": 122.05,
+ "close": 124.54,
+ "volume": 24543657
+ },
+ {
+ "date": "2025-04-22",
+ "open": 124.06,
+ "high": 126.49,
+ "low": 123.6,
+ "close": 125.0,
+ "volume": 29288758
+ },
+ {
+ "date": "2025-04-23",
+ "open": 123.66,
+ "high": 125.8,
+ "low": 122.96,
+ "close": 125.36,
+ "volume": 19050845
+ },
+ {
+ "date": "2025-04-24",
+ "open": 127.07,
+ "high": 129.1,
+ "low": 126.83,
+ "close": 128.22,
+ "volume": 15953744
+ },
+ {
+ "date": "2025-04-25",
+ "open": 128.47,
+ "high": 129.05,
+ "low": 125.18,
+ "close": 126.54,
+ "volume": 22887813
+ },
+ {
+ "date": "2025-04-28",
+ "open": 127.62,
+ "high": 128.22,
+ "low": 125.62,
+ "close": 125.87,
+ "volume": 28251118
+ },
+ {
+ "date": "2025-04-29",
+ "open": 126.3,
+ "high": 128.96,
+ "low": 126.1,
+ "close": 127.83,
+ "volume": 32261419
+ },
+ {
+ "date": "2025-04-30",
+ "open": 127.36,
+ "high": 127.49,
+ "low": 126.93,
+ "close": 127.26,
+ "volume": 28377198
+ },
+ {
+ "date": "2025-05-01",
+ "open": 126.53,
+ "high": 127.49,
+ "low": 124.79,
+ "close": 124.91,
+ "volume": 20628182
+ },
+ {
+ "date": "2025-05-02",
+ "open": 125.96,
+ "high": 128.71,
+ "low": 124.76,
+ "close": 127.82,
+ "volume": 30787376
+ },
+ {
+ "date": "2025-05-05",
+ "open": 126.94,
+ "high": 127.66,
+ "low": 124.41,
+ "close": 125.74,
+ "volume": 32013880
+ },
+ {
+ "date": "2025-05-06",
+ "open": 124.48,
+ "high": 125.4,
+ "low": 122.86,
+ "close": 123.23,
+ "volume": 23927227
+ },
+ {
+ "date": "2025-05-07",
+ "open": 122.57,
+ "high": 124.98,
+ "low": 121.53,
+ "close": 124.23,
+ "volume": 28467879
+ },
+ {
+ "date": "2025-05-08",
+ "open": 125.03,
+ "high": 126.03,
+ "low": 123.96,
+ "close": 125.78,
+ "volume": 15388205
+ },
+ {
+ "date": "2025-05-09",
+ "open": 125.65,
+ "high": 127.27,
+ "low": 125.45,
+ "close": 126.43,
+ "volume": 32425175
+ },
+ {
+ "date": "2025-05-12",
+ "open": 126.97,
+ "high": 128.46,
+ "low": 125.85,
+ "close": 125.96,
+ "volume": 16928843
+ },
+ {
+ "date": "2025-05-13",
+ "open": 124.91,
+ "high": 126.72,
+ "low": 124.63,
+ "close": 126.51,
+ "volume": 15874631
+ },
+ {
+ "date": "2025-05-14",
+ "open": 126.26,
+ "high": 127.75,
+ "low": 125.65,
+ "close": 126.16,
+ "volume": 24607489
+ },
+ {
+ "date": "2025-05-15",
+ "open": 127.28,
+ "high": 127.44,
+ "low": 124.32,
+ "close": 125.81,
+ "volume": 24351526
+ },
+ {
+ "date": "2025-05-16",
+ "open": 126.24,
+ "high": 126.76,
+ "low": 125.0,
+ "close": 126.46,
+ "volume": 18640260
+ },
+ {
+ "date": "2025-05-19",
+ "open": 127.0,
+ "high": 127.82,
+ "low": 125.67,
+ "close": 127.18,
+ "volume": 26324200
+ },
+ {
+ "date": "2025-05-20",
+ "open": 128.42,
+ "high": 129.35,
+ "low": 127.53,
+ "close": 129.01,
+ "volume": 21845718
+ },
+ {
+ "date": "2025-05-21",
+ "open": 130.31,
+ "high": 131.56,
+ "low": 129.31,
+ "close": 131.45,
+ "volume": 26502001
+ },
+ {
+ "date": "2025-05-22",
+ "open": 132.9,
+ "high": 135.37,
+ "low": 132.48,
+ "close": 134.86,
+ "volume": 19986070
+ },
+ {
+ "date": "2025-05-23",
+ "open": 135.76,
+ "high": 136.85,
+ "low": 134.15,
+ "close": 135.61,
+ "volume": 25948691
+ },
+ {
+ "date": "2025-05-26",
+ "open": 134.19,
+ "high": 134.77,
+ "low": 132.95,
+ "close": 134.09,
+ "volume": 21914025
+ },
+ {
+ "date": "2025-05-27",
+ "open": 134.96,
+ "high": 136.43,
+ "low": 134.14,
+ "close": 135.86,
+ "volume": 34233432
+ },
+ {
+ "date": "2025-05-28",
+ "open": 137.44,
+ "high": 137.46,
+ "low": 134.11,
+ "close": 135.6,
+ "volume": 21915419
+ },
+ {
+ "date": "2025-05-29",
+ "open": 134.35,
+ "high": 135.1,
+ "low": 133.36,
+ "close": 134.4,
+ "volume": 20669194
+ },
+ {
+ "date": "2025-05-30",
+ "open": 132.62,
+ "high": 134.11,
+ "low": 131.28,
+ "close": 134.01,
+ "volume": 31117143
+ },
+ {
+ "date": "2025-06-02",
+ "open": 134.06,
+ "high": 135.37,
+ "low": 134.04,
+ "close": 134.91,
+ "volume": 25539340
+ },
+ {
+ "date": "2025-06-03",
+ "open": 136.79,
+ "high": 137.74,
+ "low": 135.18,
+ "close": 135.88,
+ "volume": 31287593
+ },
+ {
+ "date": "2025-06-04",
+ "open": 137.82,
+ "high": 139.98,
+ "low": 137.12,
+ "close": 139.7,
+ "volume": 26078491
+ },
+ {
+ "date": "2025-06-05",
+ "open": 141.08,
+ "high": 141.88,
+ "low": 140.49,
+ "close": 141.73,
+ "volume": 27840058
+ },
+ {
+ "date": "2025-06-06",
+ "open": 142.56,
+ "high": 144.41,
+ "low": 141.7,
+ "close": 144.2,
+ "volume": 24221004
+ },
+ {
+ "date": "2025-06-09",
+ "open": 143.06,
+ "high": 143.25,
+ "low": 141.59,
+ "close": 142.02,
+ "volume": 17342327
+ },
+ {
+ "date": "2025-06-10",
+ "open": 142.86,
+ "high": 145.44,
+ "low": 141.56,
+ "close": 144.81,
+ "volume": 34984655
+ },
+ {
+ "date": "2025-06-11",
+ "open": 144.3,
+ "high": 145.19,
+ "low": 143.44,
+ "close": 144.4,
+ "volume": 27617618
+ },
+ {
+ "date": "2025-06-12",
+ "open": 143.4,
+ "high": 144.74,
+ "low": 142.0,
+ "close": 144.49,
+ "volume": 34164315
+ },
+ {
+ "date": "2025-06-13",
+ "open": 143.25,
+ "high": 145.71,
+ "low": 143.2,
+ "close": 145.23,
+ "volume": 27528769
+ },
+ {
+ "date": "2025-06-16",
+ "open": 143.58,
+ "high": 145.03,
+ "low": 142.34,
+ "close": 142.97,
+ "volume": 34224718
+ },
+ {
+ "date": "2025-06-17",
+ "open": 143.9,
+ "high": 144.83,
+ "low": 143.78,
+ "close": 143.93,
+ "volume": 15350520
+ },
+ {
+ "date": "2025-06-18",
+ "open": 144.26,
+ "high": 145.8,
+ "low": 144.22,
+ "close": 145.31,
+ "volume": 27993603
+ },
+ {
+ "date": "2025-06-19",
+ "open": 144.22,
+ "high": 145.04,
+ "low": 143.67,
+ "close": 144.33,
+ "volume": 25138772
+ },
+ {
+ "date": "2025-06-20",
+ "open": 145.21,
+ "high": 145.53,
+ "low": 144.09,
+ "close": 144.84,
+ "volume": 23457398
+ },
+ {
+ "date": "2025-06-23",
+ "open": 143.01,
+ "high": 143.66,
+ "low": 142.95,
+ "close": 143.41,
+ "volume": 19753695
+ },
+ {
+ "date": "2025-06-24",
+ "open": 141.64,
+ "high": 143.19,
+ "low": 140.22,
+ "close": 142.03,
+ "volume": 25819750
+ },
+ {
+ "date": "2025-06-25",
+ "open": 141.73,
+ "high": 143.1,
+ "low": 140.34,
+ "close": 141.66,
+ "volume": 34193217
+ },
+ {
+ "date": "2025-06-26",
+ "open": 140.83,
+ "high": 140.87,
+ "low": 138.3,
+ "close": 139.6,
+ "volume": 18343664
+ },
+ {
+ "date": "2025-06-27",
+ "open": 137.89,
+ "high": 140.13,
+ "low": 136.83,
+ "close": 138.76,
+ "volume": 20323148
+ },
+ {
+ "date": "2025-06-30",
+ "open": 140.11,
+ "high": 140.57,
+ "low": 137.57,
+ "close": 138.35,
+ "volume": 25628026
+ }
+]
\ No newline at end of file
diff --git a/react/src/ai-components/chart/data/tsla-data.json b/react/src/ai-components/chart/data/tsla-data.json
new file mode 100644
index 0000000..b0da1fc
--- /dev/null
+++ b/react/src/ai-components/chart/data/tsla-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 195.66,
+ "High": 195.82,
+ "Low": 193.84,
+ "Close": 193.86
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 193.54,
+ "High": 193.87,
+ "Low": 192.46,
+ "Close": 192.55
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 193.06,
+ "High": 193.17,
+ "Low": 192.71,
+ "Close": 192.81
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 194.47,
+ "High": 195.45,
+ "Low": 192.64,
+ "Close": 195.38
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.01,
+ "High": 197.21,
+ "Low": 195.16,
+ "Close": 195.7
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 194.47,
+ "High": 196.23,
+ "Low": 193.01,
+ "Close": 195.24
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.28,
+ "High": 194.8,
+ "Low": 192.46,
+ "Close": 193.87
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 192.4,
+ "High": 194.3,
+ "Low": 192.29,
+ "Close": 193.74
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 195.05,
+ "High": 196.03,
+ "Low": 193.28,
+ "Close": 193.54
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 192.99,
+ "High": 193.79,
+ "Low": 191.7,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 190.34,
+ "High": 190.51,
+ "Low": 188.47,
+ "Close": 189.21
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 189.93,
+ "High": 190.33,
+ "Low": 188.1,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 188.65,
+ "High": 188.92,
+ "Low": 187.77,
+ "Close": 188.45
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 188.27,
+ "High": 189.07,
+ "Low": 186.78,
+ "Close": 186.95
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 186.35,
+ "High": 188.13,
+ "Low": 184.46,
+ "Close": 186.47
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 185.91,
+ "High": 186.34,
+ "Low": 184.89,
+ "Close": 185.64
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 184.99,
+ "High": 185.48,
+ "Low": 183.15,
+ "Close": 184.34
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 183.49,
+ "High": 183.49,
+ "Low": 182.74,
+ "Close": 182.75
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 184.73,
+ "High": 185.05,
+ "Low": 183.16,
+ "Close": 183.41
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 184.89,
+ "High": 186.59,
+ "Low": 183.44,
+ "Close": 186.16
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 184.85,
+ "High": 186.63,
+ "Low": 184.52,
+ "Close": 185.09
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 183.31,
+ "High": 184.75,
+ "Low": 182.73,
+ "Close": 184.16
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 185.26,
+ "High": 185.75,
+ "Low": 184.33,
+ "Close": 185.42
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 184.56,
+ "High": 185.42,
+ "Low": 184.46,
+ "Close": 184.85
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 186.46,
+ "High": 188.11,
+ "Low": 185.82,
+ "Close": 187.76
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 188.43,
+ "High": 190.37,
+ "Low": 186.47,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 188.09,
+ "High": 189.71,
+ "Low": 186.7,
+ "Close": 188.21
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 189.42,
+ "High": 191.01,
+ "Low": 188.7,
+ "Close": 190.54
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 191.55,
+ "High": 191.8,
+ "Low": 191.17,
+ "Close": 191.74
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 191.07,
+ "High": 192.23,
+ "Low": 189.36,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 192.98,
+ "High": 194.2,
+ "Low": 191.88,
+ "Close": 192.1
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 191.4,
+ "High": 192.95,
+ "Low": 190.37,
+ "Close": 192.92
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 193.41,
+ "High": 194.71,
+ "Low": 193.24,
+ "Close": 194.66
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 192.87,
+ "High": 194.07,
+ "Low": 191.97,
+ "Close": 192.37
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 192.73,
+ "High": 194.0,
+ "Low": 191.06,
+ "Close": 191.11
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 189.48,
+ "High": 189.67,
+ "Low": 188.61,
+ "Close": 189.65
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 190.6,
+ "High": 191.19,
+ "Low": 189.29,
+ "Close": 190.11
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 191.5,
+ "High": 192.53,
+ "Low": 190.21,
+ "Close": 190.37
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 191.04,
+ "High": 191.5,
+ "Low": 189.48,
+ "Close": 191.33
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 191.47,
+ "High": 191.49,
+ "Low": 190.22,
+ "Close": 190.41
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 192.19,
+ "High": 193.05,
+ "Low": 190.63,
+ "Close": 191.18
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 189.78,
+ "High": 191.53,
+ "Low": 188.75,
+ "Close": 188.89
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 188.02,
+ "High": 189.69,
+ "Low": 186.35,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 185.82,
+ "High": 186.41,
+ "Low": 183.98,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 185.03,
+ "High": 185.53,
+ "Low": 184.58,
+ "Close": 185.2
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 184.49,
+ "High": 184.49,
+ "Low": 184.19,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 184.67,
+ "High": 185.21,
+ "Low": 184.02,
+ "Close": 184.21
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 185.63,
+ "High": 185.86,
+ "Low": 185.62,
+ "Close": 185.65
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 186.12,
+ "High": 187.17,
+ "Low": 185.38,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 187.26,
+ "High": 187.39,
+ "Low": 185.47,
+ "Close": 185.73
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 187.61,
+ "High": 189.53,
+ "Low": 186.6,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 185.28,
+ "High": 185.91,
+ "Low": 183.77,
+ "Close": 183.79
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 182.37,
+ "High": 182.42,
+ "Low": 182.05,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 182.2,
+ "High": 183.2,
+ "Low": 181.85,
+ "Close": 182.82
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 181.13,
+ "High": 181.47,
+ "Low": 180.91,
+ "Close": 181.38
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 181.95,
+ "High": 183.37,
+ "Low": 181.41,
+ "Close": 182.18
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 181.12,
+ "High": 182.67,
+ "Low": 179.76,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 179.96,
+ "High": 180.57,
+ "Low": 179.63,
+ "Close": 180.49
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 182.48,
+ "High": 184.27,
+ "Low": 181.04,
+ "Close": 181.67
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 183.14,
+ "High": 184.14,
+ "Low": 183.06,
+ "Close": 184.1
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 185.02,
+ "High": 185.51,
+ "Low": 183.19,
+ "Close": 185.18
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 184.77,
+ "High": 185.25,
+ "Low": 183.16,
+ "Close": 184.64
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.45,
+ "High": 185.46,
+ "Low": 184.29,
+ "Close": 184.47
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 183.99,
+ "High": 185.17,
+ "Low": 182.9,
+ "Close": 183.26
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 182.65,
+ "High": 183.76,
+ "Low": 180.99,
+ "Close": 183.32
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 182.52,
+ "High": 184.48,
+ "Low": 182.48,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 183.67,
+ "High": 185.11,
+ "Low": 182.29,
+ "Close": 183.1
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 181.28,
+ "High": 181.81,
+ "Low": 180.99,
+ "Close": 181.72
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 183.16,
+ "High": 183.46,
+ "Low": 181.86,
+ "Close": 182.58
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 183.46,
+ "High": 184.67,
+ "Low": 182.35,
+ "Close": 183.94
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 183.82,
+ "High": 185.45,
+ "Low": 181.87,
+ "Close": 184.19
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 185.96,
+ "High": 187.79,
+ "Low": 185.22,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.88,
+ "High": 184.95,
+ "Low": 183.85,
+ "Close": 184.06
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 182.43,
+ "High": 183.61,
+ "Low": 182.33,
+ "Close": 182.83
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 183.67,
+ "High": 184.3,
+ "Low": 183.36,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 185.63,
+ "High": 187.5,
+ "Low": 185.03,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 184.73,
+ "High": 185.32,
+ "Low": 184.25,
+ "Close": 184.94
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 186.52,
+ "High": 187.92,
+ "Low": 186.34,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 188.82,
+ "High": 189.36,
+ "Low": 188.3,
+ "Close": 189.28
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 187.6,
+ "High": 188.86,
+ "Low": 187.24,
+ "Close": 187.35
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 188.62,
+ "High": 188.97,
+ "Low": 186.73,
+ "Close": 186.99
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 186.85,
+ "High": 187.14,
+ "Low": 185.83,
+ "Close": 186.51
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 187.86,
+ "High": 188.1,
+ "Low": 186.43,
+ "Close": 187.71
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.19,
+ "High": 186.44,
+ "Low": 185.14,
+ "Close": 185.59
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 184.74,
+ "High": 185.53,
+ "Low": 183.75,
+ "Close": 185.34
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 186.81,
+ "High": 188.37,
+ "Low": 186.63,
+ "Close": 186.79
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.02,
+ "High": 187.27,
+ "Low": 185.59,
+ "Close": 185.8
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 183.85,
+ "High": 185.2,
+ "Low": 182.76,
+ "Close": 184.74
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 185.51,
+ "High": 186.83,
+ "Low": 184.31,
+ "Close": 186.29
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 186.1,
+ "High": 188.02,
+ "Low": 184.11,
+ "Close": 186.12
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 187.28,
+ "High": 187.73,
+ "Low": 186.07,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 185.94,
+ "High": 186.09,
+ "Low": 185.87,
+ "Close": 186.06
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 187.97,
+ "High": 189.29,
+ "Low": 187.41,
+ "Close": 188.76
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 187.22,
+ "High": 188.11,
+ "Low": 186.53,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 186.19,
+ "High": 187.91,
+ "Low": 185.03,
+ "Close": 186.65
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 185.91,
+ "High": 187.61,
+ "Low": 185.85,
+ "Close": 187.25
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 187.22,
+ "High": 187.45,
+ "Low": 187.02,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 189.12,
+ "High": 189.37,
+ "Low": 188.37,
+ "Close": 188.77
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 188.14,
+ "High": 188.84,
+ "Low": 187.98,
+ "Close": 188.0
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 186.66,
+ "High": 188.54,
+ "Low": 185.12,
+ "Close": 187.31
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 186.52,
+ "High": 188.11,
+ "Low": 185.21,
+ "Close": 186.46
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 187.18,
+ "High": 188.3,
+ "Low": 186.35,
+ "Close": 187.41
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 186.14,
+ "High": 186.53,
+ "Low": 185.59,
+ "Close": 186.44
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 186.36,
+ "High": 187.64,
+ "Low": 185.42,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 185.85,
+ "High": 186.91,
+ "Low": 185.04,
+ "Close": 186.76
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 187.81,
+ "High": 188.54,
+ "Low": 187.66,
+ "Close": 187.91
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.42,
+ "High": 188.86,
+ "Low": 186.32,
+ "Close": 186.84
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 185.81,
+ "High": 186.6,
+ "Low": 184.96,
+ "Close": 184.97
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 183.02,
+ "High": 183.53,
+ "Low": 181.04,
+ "Close": 183.19
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 182.96,
+ "High": 184.58,
+ "Low": 181.53,
+ "Close": 183.92
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 185.24,
+ "High": 186.47,
+ "Low": 183.93,
+ "Close": 185.47
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 186.99,
+ "High": 187.19,
+ "Low": 186.48,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 187.2,
+ "High": 188.46,
+ "Low": 186.92,
+ "Close": 187.09
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 187.91,
+ "High": 187.96,
+ "Low": 186.32,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 188.22,
+ "High": 189.15,
+ "Low": 188.18,
+ "Close": 189.07
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.84,
+ "High": 190.87,
+ "Low": 189.34,
+ "Close": 189.68
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 188.63,
+ "High": 188.97,
+ "Low": 188.13,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 190.52,
+ "High": 192.05,
+ "Low": 190.5,
+ "Close": 191.41
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 193.23,
+ "High": 193.26,
+ "Low": 191.72,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.65,
+ "High": 194.62,
+ "Low": 193.13,
+ "Close": 193.25
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 194.02,
+ "High": 194.96,
+ "Low": 192.67,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 195.17,
+ "High": 196.46,
+ "Low": 193.96,
+ "Close": 194.86
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 195.74,
+ "High": 197.71,
+ "Low": 194.45,
+ "Close": 195.52
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 197.34,
+ "High": 198.14,
+ "Low": 195.82,
+ "Close": 197.66
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 195.84,
+ "High": 196.87,
+ "Low": 195.17,
+ "Close": 196.66
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 195.6,
+ "High": 197.45,
+ "Low": 194.58,
+ "Close": 196.73
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 195.22,
+ "High": 195.45,
+ "Low": 194.98,
+ "Close": 195.33
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 197.24,
+ "High": 198.3,
+ "Low": 196.44,
+ "Close": 196.72
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 197.82,
+ "High": 197.94,
+ "Low": 196.01,
+ "Close": 197.9
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 197.57,
+ "High": 198.09,
+ "Low": 195.95,
+ "Close": 196.75
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 195.06,
+ "High": 196.38,
+ "Low": 193.09,
+ "Close": 193.41
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 193.53,
+ "High": 194.26,
+ "Low": 192.13,
+ "Close": 192.3
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 190.38,
+ "High": 191.1,
+ "Low": 189.02,
+ "Close": 189.31
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.98,
+ "High": 189.05,
+ "Low": 187.3,
+ "Close": 188.03
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 187.74,
+ "High": 187.81,
+ "Low": 187.22,
+ "Close": 187.55
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.09,
+ "High": 187.14,
+ "Low": 185.52,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 186.16,
+ "High": 188.01,
+ "Low": 185.81,
+ "Close": 187.76
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 188.28,
+ "High": 188.85,
+ "Low": 187.06,
+ "Close": 187.32
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 187.65,
+ "High": 189.42,
+ "Low": 187.23,
+ "Close": 188.99
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 188.68,
+ "High": 190.2,
+ "Low": 186.71,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 189.19,
+ "High": 189.35,
+ "Low": 188.07,
+ "Close": 189.22
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 188.09,
+ "High": 189.68,
+ "Low": 187.77,
+ "Close": 188.92
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 188.84,
+ "High": 190.76,
+ "Low": 187.79,
+ "Close": 189.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 190.87,
+ "High": 191.81,
+ "Low": 190.07,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 191.0,
+ "High": 192.4,
+ "Low": 189.38,
+ "Close": 191.28
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 189.67,
+ "High": 190.07,
+ "Low": 189.32,
+ "Close": 189.81
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 189.37,
+ "High": 190.71,
+ "Low": 188.05,
+ "Close": 188.89
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 188.01,
+ "High": 189.31,
+ "Low": 186.59,
+ "Close": 187.2
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 187.45,
+ "High": 188.25,
+ "Low": 186.99,
+ "Close": 187.91
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 187.36,
+ "High": 187.55,
+ "Low": 186.89,
+ "Close": 187.43
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 187.43,
+ "High": 187.56,
+ "Low": 186.49,
+ "Close": 186.5
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 188.4,
+ "High": 189.15,
+ "Low": 187.29,
+ "Close": 188.28
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 189.36,
+ "High": 189.64,
+ "Low": 189.25,
+ "Close": 189.6
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 190.83,
+ "High": 192.32,
+ "Low": 189.02,
+ "Close": 189.09
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 190.72,
+ "High": 191.82,
+ "Low": 190.59,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 193.03,
+ "High": 194.31,
+ "Low": 191.75,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 194.85,
+ "High": 194.97,
+ "Low": 194.33,
+ "Close": 194.61
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 194.15,
+ "High": 194.31,
+ "Low": 193.1,
+ "Close": 193.53
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 192.71,
+ "High": 193.71,
+ "Low": 192.3,
+ "Close": 192.42
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 193.56,
+ "High": 195.06,
+ "Low": 192.39,
+ "Close": 194.3
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 194.13,
+ "High": 195.49,
+ "Low": 193.23,
+ "Close": 194.15
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 193.87,
+ "High": 194.28,
+ "Low": 191.88,
+ "Close": 193.85
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 194.08,
+ "High": 194.92,
+ "Low": 193.29,
+ "Close": 194.37
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 195.95,
+ "High": 196.12,
+ "Low": 194.59,
+ "Close": 194.76
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 196.67,
+ "High": 197.2,
+ "Low": 195.87,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 197.8,
+ "High": 198.45,
+ "Low": 197.39,
+ "Close": 198.1
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 196.5,
+ "High": 196.53,
+ "Low": 196.42,
+ "Close": 196.49
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 198.21,
+ "High": 199.98,
+ "Low": 196.75,
+ "Close": 199.62
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 199.75,
+ "High": 200.36,
+ "Low": 198.57,
+ "Close": 199.63
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 197.92,
+ "High": 199.83,
+ "Low": 195.96,
+ "Close": 196.73
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 197.58,
+ "High": 198.27,
+ "Low": 196.56,
+ "Close": 197.9
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 199.68,
+ "High": 199.99,
+ "Low": 199.67,
+ "Close": 199.96
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 200.89,
+ "High": 202.56,
+ "Low": 200.44,
+ "Close": 201.75
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 203.12,
+ "High": 204.07,
+ "Low": 202.32,
+ "Close": 203.07
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 203.29,
+ "High": 204.58,
+ "Low": 201.8,
+ "Close": 203.09
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 204.76,
+ "High": 205.95,
+ "Low": 204.23,
+ "Close": 205.26
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 205.83,
+ "High": 206.98,
+ "Low": 205.09,
+ "Close": 205.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 206.2,
+ "High": 207.54,
+ "Low": 204.63,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 204.69,
+ "High": 205.3,
+ "Low": 204.17,
+ "Close": 205.09
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 203.85,
+ "High": 204.63,
+ "Low": 202.53,
+ "Close": 204.25
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 206.23,
+ "High": 207.04,
+ "Low": 204.61,
+ "Close": 206.76
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 205.49,
+ "High": 205.94,
+ "Low": 203.95,
+ "Close": 205.46
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 203.83,
+ "High": 204.1,
+ "Low": 203.11,
+ "Close": 204.04
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 203.66,
+ "High": 205.08,
+ "Low": 203.03,
+ "Close": 203.39
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 203.25,
+ "High": 203.33,
+ "Low": 202.56,
+ "Close": 202.58
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 203.82,
+ "High": 205.4,
+ "Low": 203.6,
+ "Close": 204.42
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 204.05,
+ "High": 204.1,
+ "Low": 203.78,
+ "Close": 203.93
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 204.4,
+ "High": 205.85,
+ "Low": 203.03,
+ "Close": 203.06
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 203.74,
+ "High": 203.82,
+ "Low": 203.11,
+ "Close": 203.66
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 205.41,
+ "High": 206.08,
+ "Low": 203.65,
+ "Close": 205.55
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 204.87,
+ "High": 206.03,
+ "Low": 204.11,
+ "Close": 205.9
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 206.51,
+ "High": 208.2,
+ "Low": 205.47,
+ "Close": 205.93
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 207.88,
+ "High": 209.87,
+ "Low": 206.21,
+ "Close": 208.94
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 208.24,
+ "High": 208.93,
+ "Low": 206.62,
+ "Close": 207.73
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 205.85,
+ "High": 206.28,
+ "Low": 205.57,
+ "Close": 205.58
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 206.61,
+ "High": 206.68,
+ "Low": 205.31,
+ "Close": 205.47
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 206.32,
+ "High": 207.32,
+ "Low": 205.77,
+ "Close": 206.75
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 205.13,
+ "High": 205.3,
+ "Low": 204.89,
+ "Close": 205.03
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 204.62,
+ "High": 205.7,
+ "Low": 203.28,
+ "Close": 205.57
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 206.18,
+ "High": 207.23,
+ "Low": 204.98,
+ "Close": 206.03
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 207.74,
+ "High": 209.45,
+ "Low": 206.4,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 208.98,
+ "High": 209.29,
+ "Low": 207.81,
+ "Close": 209.03
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 207.83,
+ "High": 208.36,
+ "Low": 206.36,
+ "Close": 207.32
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 208.76,
+ "High": 209.78,
+ "Low": 208.08,
+ "Close": 209.55
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 211.32,
+ "High": 212.24,
+ "Low": 210.25,
+ "Close": 210.52
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 209.02,
+ "High": 209.1,
+ "Low": 208.82,
+ "Close": 208.9
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 208.19,
+ "High": 210.07,
+ "Low": 207.67,
+ "Close": 208.02
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 206.89,
+ "High": 206.91,
+ "Low": 206.49,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 207.69,
+ "High": 208.0,
+ "Low": 207.09,
+ "Close": 207.9
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 209.08,
+ "High": 210.92,
+ "Low": 208.09,
+ "Close": 209.23
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 207.32,
+ "High": 208.94,
+ "Low": 206.62,
+ "Close": 206.91
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 205.61,
+ "High": 207.41,
+ "Low": 203.83,
+ "Close": 206.05
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 205.79,
+ "High": 207.41,
+ "Low": 204.24,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 206.83,
+ "High": 207.27,
+ "Low": 206.48,
+ "Close": 206.77
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 208.7,
+ "High": 209.27,
+ "Low": 206.81,
+ "Close": 208.95
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 207.78,
+ "High": 208.79,
+ "Low": 206.42,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 207.19,
+ "High": 208.82,
+ "Low": 206.03,
+ "Close": 206.85
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 205.48,
+ "High": 207.14,
+ "Low": 203.65,
+ "Close": 205.97
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 207.46,
+ "High": 207.8,
+ "Low": 206.95,
+ "Close": 207.71
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 208.69,
+ "High": 210.44,
+ "Low": 208.09,
+ "Close": 208.85
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 206.89,
+ "High": 207.54,
+ "Low": 205.18,
+ "Close": 207.0
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 206.09,
+ "High": 206.99,
+ "Low": 205.08,
+ "Close": 206.5
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 207.6,
+ "High": 208.61,
+ "Low": 207.34,
+ "Close": 207.56
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 207.25,
+ "High": 208.68,
+ "Low": 206.94,
+ "Close": 208.42
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 210.13,
+ "High": 210.97,
+ "Low": 208.81,
+ "Close": 209.58
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 209.39,
+ "High": 211.16,
+ "Low": 208.3,
+ "Close": 208.59
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 207.77,
+ "High": 209.75,
+ "Low": 206.92,
+ "Close": 208.67
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 206.79,
+ "High": 208.59,
+ "Low": 206.41,
+ "Close": 206.84
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 206.3,
+ "High": 207.25,
+ "Low": 205.95,
+ "Close": 206.8
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 207.51,
+ "High": 207.67,
+ "Low": 207.46,
+ "Close": 207.53
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 206.48,
+ "High": 207.63,
+ "Low": 205.08,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 203.94,
+ "High": 204.3,
+ "Low": 203.02,
+ "Close": 204.24
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 205.51,
+ "High": 206.12,
+ "Low": 203.69,
+ "Close": 204.55
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 206.54,
+ "High": 207.86,
+ "Low": 205.79,
+ "Close": 207.52
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 206.62,
+ "High": 206.83,
+ "Low": 205.6,
+ "Close": 206.41
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 205.45,
+ "High": 206.31,
+ "Low": 205.24,
+ "Close": 206.04
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 205.84,
+ "High": 207.09,
+ "Low": 204.75,
+ "Close": 205.78
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 203.97,
+ "High": 204.23,
+ "Low": 203.95,
+ "Close": 204.23
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 202.26,
+ "High": 203.82,
+ "Low": 201.83,
+ "Close": 203.49
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 201.88,
+ "High": 203.77,
+ "Low": 199.91,
+ "Close": 201.62
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 201.67,
+ "High": 202.33,
+ "Low": 200.18,
+ "Close": 201.65
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 200.18,
+ "High": 202.16,
+ "Low": 198.46,
+ "Close": 200.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 199.98,
+ "High": 201.84,
+ "Low": 198.49,
+ "Close": 199.42
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 199.6,
+ "High": 201.07,
+ "Low": 199.46,
+ "Close": 200.74
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 202.07,
+ "High": 203.96,
+ "Low": 200.85,
+ "Close": 203.31
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 202.02,
+ "High": 203.92,
+ "Low": 200.35,
+ "Close": 202.19
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 200.88,
+ "High": 202.7,
+ "Low": 199.06,
+ "Close": 200.81
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 198.92,
+ "High": 199.22,
+ "Low": 198.67,
+ "Close": 198.98
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 200.04,
+ "High": 200.28,
+ "Low": 198.93,
+ "Close": 200.03
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 199.54,
+ "High": 199.56,
+ "Low": 199.37,
+ "Close": 199.46
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 200.74,
+ "High": 201.1,
+ "Low": 199.3,
+ "Close": 199.31
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 200.32,
+ "High": 202.23,
+ "Low": 198.89,
+ "Close": 201.73
+ }
+]
\ No newline at end of file
diff --git a/react/src/ai-components/chart/image/amazon.png b/react/src/ai-components/chart/image/amazon.png
new file mode 100644
index 0000000..2805452
Binary files /dev/null and b/react/src/ai-components/chart/image/amazon.png differ
diff --git a/react/src/ai-components/chart/image/google.png b/react/src/ai-components/chart/image/google.png
new file mode 100644
index 0000000..2509038
Binary files /dev/null and b/react/src/ai-components/chart/image/google.png differ
diff --git a/react/src/ai-components/chart/image/microsoft.png b/react/src/ai-components/chart/image/microsoft.png
new file mode 100644
index 0000000..60dc2d4
Binary files /dev/null and b/react/src/ai-components/chart/image/microsoft.png differ
diff --git a/react/src/ai-components/chart/image/tesla.png b/react/src/ai-components/chart/image/tesla.png
new file mode 100644
index 0000000..5fc6954
Binary files /dev/null and b/react/src/ai-components/chart/image/tesla.png differ
diff --git a/react/src/ai-components/chart/stock-forecasting/stock-forecasting.css b/react/src/ai-components/chart/stock-forecasting/stock-forecasting.css
new file mode 100644
index 0000000..76fcf9c
--- /dev/null
+++ b/react/src/ai-components/chart/stock-forecasting/stock-forecasting.css
@@ -0,0 +1,153 @@
+.para {
+ padding-top: 5px;
+}
+
+.stock-info {
+ display: flex;
+ align-items: flex-start;
+ gap: 16px;
+ margin-left: 10px;
+ padding: 5px;
+}
+
+.price {
+ font-size: 20px;
+ font-weight: bold;
+ padding-right: 2px;
+}
+
+.e-dropdown {
+ padding: 5px 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ width: 100%;
+}
+
+.e-dropdown option {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+[data-icon] {
+ position: relative;
+ padding-left: 25px;
+}
+
+[data-icon]::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ width: 20px;
+ height: 20px;
+ background-size: contain;
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+[data-icon="e-logo-msft"]::before {
+ background-image: url('../image/microsoft.png');
+}
+
+[data-icon="e-logo-goog"]::before {
+ background-image: url('../image/google.png');
+}
+
+[data-icon="e-logo-amzn"]::before {
+ background-image: url('../image/amazon.png');
+}
+
+[data-icon="e-logo-tsla"]::before {
+ background-image: url('../image/tesla.png');
+}
+
+.control-section {
+ display: flex;
+ flex-direction: column;
+}
+
+.sidebar {
+ display: flex;
+ flex-direction: column;
+ gap: 20px;
+ padding: 20px;
+}
+
+.stock-selection {
+ padding: 5px;
+}
+
+.main-content {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.control-bar {
+ display: flex;
+ justify-content: space-between;
+ padding: 10px 20px;
+}
+
+.range-buttons .e-btn-group {
+ display: flex;
+ gap: 10px;
+}
+
+.chart-controls {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.chart-container {
+ position: relative;
+ flex-grow: 1;
+}
+
+#chartWrapper {
+ height: 100%;
+}
+
+#stock-change {
+ margin: 0;
+}
+
+.chart-action-button {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #6f16ef;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
+ padding: 0;
+}
+
+.chart-action-button:hover {
+ background-color: #5811c9;
+}
+
+.chart-action-button .e-btn-icon.e-icons {
+ color: #fff;
+ font-size: 20px;
+}
+
+.chart-spinner-overlay {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: none;
+}
+
+.chart-spinner-overlay .e-spinner {
+ width: 20px;
+ height: 20px;
+}
\ No newline at end of file
diff --git a/react/src/ai-components/chart/stock-forecasting/stock-forecasting.tsx b/react/src/ai-components/chart/stock-forecasting/stock-forecasting.tsx
new file mode 100644
index 0000000..2404c09
--- /dev/null
+++ b/react/src/ai-components/chart/stock-forecasting/stock-forecasting.tsx
@@ -0,0 +1,316 @@
+import React, { useState, useEffect, useRef } from 'react';
+import {
+ ChartComponent,
+ SeriesCollectionDirective,
+ SeriesDirective,
+ Inject,
+ CandleSeries,
+ LineSeries,
+ HiloOpenCloseSeries,
+ DateTime,
+ Crosshair,
+ Tooltip,
+ Legend
+} from '@syncfusion/ej2-react-charts';
+import { ButtonComponent } from '@syncfusion/ej2-react-buttons';
+import { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
+import './stock-forecasting.css';
+
+import msftData from '../data/msft-data.json';
+import googData from '../data/goog-data.json';
+import amznData from '../data/amzn-data.json';
+import tslaData from '../data/tsla-data.json';
+
+interface StockInfo {
+ symbol: string;
+ text: string;
+ close: number;
+ change: number;
+ percentChange: number;
+}
+
+interface ChartPoint {
+ date: Date;
+ high: number;
+ low: number;
+ open: number;
+ close: number;
+}
+
+const StockForecasting: React.FC = () => {
+ const chartRef = useRef(null);
+
+ const getDefaultStockInfo = (symbol: string): StockInfo => {
+ switch (symbol) {
+ case 'MSFT':
+ return { symbol: 'MSFT', text: 'Microsoft Corp', close: 138.35, change: -2.0, percentChange: -0.22 };
+ case 'GOOG':
+ return { symbol: 'GOOG', text: 'Alphabet Inc', close: 152.83, change: -2.0, percentChange: -0.22 };
+ case 'AMZN':
+ return { symbol: 'AMZN', text: 'Amazon Inc', close: 222.27, change: -2.0, percentChange: -0.22 };
+ case 'TSLA':
+ return { symbol: 'TSLA', text: 'Tesla Inc', close: 201.73, change: -2.0, percentChange: -0.22 };
+ default:
+ return { symbol, text: '', close: 0.0, change: 0.0, percentChange: 0.0 };
+ }
+ };
+
+ const [selectedSymbol, setSelectedSymbol] = useState('MSFT');
+ const [selectedSeriesType, setSelectedSeriesType] = useState('Candle');
+ const [selectedRange, setSelectedRange] = useState(3);
+ const [chartData, setChartData] = useState([]);
+ const [stripStartDate, setStripStartDate] = useState(new Date());
+ const [stripEndDate, setStripEndDate] = useState(new Date());
+ const [selectedStockInfo, setSelectedStockInfo] = useState(getDefaultStockInfo('MSFT'));
+ const [isSpinnerVisible, setIsSpinnerVisible] = useState(false);
+
+ const stocks = [
+ { symbol: 'MSFT', text: 'Microsoft Corp', icon: '../image/microsoft.png' },
+ { symbol: 'GOOG', text: 'Alphabet Inc', icon: '../image/google.png' },
+ { symbol: 'AMZN', text: 'Amazon Inc', icon: '../image/amazon.png' },
+ { symbol: 'TSLA', text: 'Tesla Inc', icon: '../image/tesla.png' },
+ ];
+
+ const seriesOptions = ['Candle', 'Line', 'HiloOpenClose'];
+
+ const loadChartData = () => {
+ try {
+ let json: any[] = [];
+ if (selectedSymbol === 'GOOG') {
+ json = googData;
+ } else if (selectedSymbol === 'AMZN') {
+ json = amznData;
+ } else if (selectedSymbol === 'TSLA') {
+ json = tslaData;
+ } else {
+ json = msftData;
+ setSelectedSymbol('MSFT');
+ }
+
+ if (!json || json.length === 0) {
+ console.warn(`No data found for symbol: ${selectedSymbol}`);
+ setChartData([]);
+ renderChart();
+ return;
+ }
+
+ const allData: ChartPoint[] = json.map((d: any) => ({
+ date: new Date(d.date || d.Date),
+ high: Number(d.high ?? d.High),
+ low: Number(d.low ?? d.Low),
+ open: Number(d.open ?? d.Open),
+ close: Number(d.close ?? d.Close),
+ }));
+
+ const filteredData = filterChartData(allData, selectedRange);
+ setChartData(filteredData);
+ renderChart();
+ setSelectedStockInfo(getDefaultStockInfo(selectedSymbol));
+ } catch (error) {
+ console.error('Error loading chart data:', error);
+ setChartData([]);
+ renderChart();
+ }
+ };
+
+ const filterChartData = (allData: ChartPoint[], months: number): ChartPoint[] => {
+ if (allData.length) {
+ setStripStartDate(allData[0].date);
+ setStripEndDate(allData[allData.length - 1].date);
+ } else {
+ setStripStartDate(new Date());
+ setStripEndDate(new Date());
+ }
+ const latestDate = new Date(Math.max(...allData.map(p => p.date.getTime())));
+ const cutoffDate = new Date(latestDate);
+ const intendedMonth = latestDate.getMonth() - months + 1;
+ cutoffDate.setMonth(intendedMonth);
+ if (cutoffDate.getMonth() !== intendedMonth) {
+ cutoffDate.setDate(0);
+ }
+ return allData.filter(p => p.date >= cutoffDate).sort((a, b) => a.date.getTime() - b.date.getTime());
+ };
+
+ const renderChart = () => {
+ if (chartRef.current) {
+ chartRef.current.series = [{
+ dataSource: chartData,
+ xName: 'date',
+ type: selectedSeriesType as 'Candle' | 'Line' | 'HiloOpenClose',
+ name: selectedStockInfo.text,
+ high: selectedSeriesType !== 'Line' ? 'high' : undefined,
+ low: selectedSeriesType !== 'Line' ? 'low' : undefined,
+ open: selectedSeriesType !== 'Line' ? 'open' : undefined,
+ close: selectedSeriesType !== 'Line' ? 'close' : undefined,
+ yName: selectedSeriesType === 'Line' ? 'close' : undefined,
+ bearFillColor: selectedSeriesType === 'Candle' ? '#2ecd71' : undefined,
+ bullFillColor: selectedSeriesType === 'Candle' ? '#e74c3d' : undefined,
+ }];
+ chartRef.current.primaryXAxis.stripLines = [{
+ start: stripStartDate,
+ end: stripEndDate,
+ color: '#E0E0E0',
+ }];
+ chartRef.current.refresh();
+ }
+ };
+
+ const simulateAiAssist = async () => {
+ setIsSpinnerVisible(true);
+ const target = document.getElementById('chartWrapper');
+ if (!target) return;
+
+ if (!target.querySelector('.e-spinner-pane')) {
+ createSpinner({ target });
+ }
+ showSpinner(target);
+
+ try {
+ const response = await fetch('https://your-backend-api/forecast', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({
+ symbol: selectedSymbol,
+ data: chartData,
+ }),
+ });
+
+ if (!response.ok) {
+ throw new Error(`Forecast API failed: ${response.status}`);
+ }
+
+ const forecastData: any[] = await response.json();
+ const nextData: ChartPoint[] = forecastData.map((d: any) => ({
+ date: new Date(d.date),
+ open: Number(d.open),
+ high: Number(d.high),
+ low: Number(d.low),
+ close: Number(d.close),
+ }));
+
+ setChartData([...chartData, ...nextData]);
+ renderChart();
+ } catch (err) {
+ console.error('AI Assist failed:', err);
+ } finally {
+ hideSpinner(target);
+ setIsSpinnerVisible(false);
+ }
+ };
+
+ useEffect(() => {
+ loadChartData();
+ }, [selectedSymbol, selectedRange, selectedSeriesType]);
+
+ return (
+
+
+
+
+
{selectedStockInfo.text}
+
+
+
+
{selectedStockInfo.close.toFixed(2)} USD
+
+
= 0 ? 'green' : 'red' }}>
+ {selectedStockInfo.change.toFixed(2)} {selectedStockInfo.percentChange.toFixed(2)}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default StockForecasting;
diff --git a/react/src/left-pane.tsx b/react/src/left-pane.tsx
index a9df5e6..306691d 100644
--- a/react/src/left-pane.tsx
+++ b/react/src/left-pane.tsx
@@ -100,6 +100,12 @@ function LeftPane() {
{ "id": 18, "name": "Smart Risk Assessor", 'navigateUrl': '#/risk-analysis' },
{ "id": 19, "name": "Smart Scheduling", 'navigateUrl': '#/task-schedule' }
]
+ },
+ {
+ "id": 50, "name": "Chart", expanded: true,
+ "child": [
+ { "id": 51, "name": "Stock Forecasting", 'navigateUrl': '#/stock-forecasting' }
+ ]
}
];
const fields: Object = {
diff --git a/react/src/main.tsx b/react/src/main.tsx
index cb2dd69..1763528 100644
--- a/react/src/main.tsx
+++ b/react/src/main.tsx
@@ -50,6 +50,7 @@ import SentimentAnalysis from './ai-components/kanban/sentiment-analysis/sentime
import SmartFill from './ai-components/pdfviewer/smartfill/smartfill.tsx'
import SmartRedact from './ai-components/pdfviewer/smartredact/smartredact.tsx'
import Summarizer from './ai-components/pdfviewer/summarizer/summarizer.tsx'
+import StockForecasting from './ai-components/chart/stock-forecasting/stock-forecasting.tsx'
import './index.css'
const routerEle = createHashRouter(
@@ -64,6 +65,8 @@ const routerEle = createHashRouter(
} />
} />
} />
+ {/* Chart */}
+ } />
{/* ComboBox */}
} />
{/* Tree Grid */}
diff --git a/typescript/src/app/chart/data/amzn-data.json b/typescript/src/app/chart/data/amzn-data.json
new file mode 100644
index 0000000..afdbe95
--- /dev/null
+++ b/typescript/src/app/chart/data/amzn-data.json
@@ -0,0 +1,1829 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 192.19,
+ "High": 192.9,
+ "Low": 191.49,
+ "Close": 192.09
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 190.43,
+ "High": 190.85,
+ "Low": 189.69,
+ "Close": 190.34
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 192.96,
+ "High": 193.18,
+ "Low": 191.23,
+ "Close": 192.87
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 195.7,
+ "High": 198.88,
+ "Low": 195.46,
+ "Close": 198.11
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.2,
+ "High": 200.88,
+ "Low": 193.9,
+ "Close": 194.67
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 190.88,
+ "High": 192.6,
+ "Low": 190.19,
+ "Close": 191.82
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.89,
+ "High": 197.87,
+ "Low": 192.26,
+ "Close": 194.36
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 190.99,
+ "High": 192.37,
+ "Low": 189.83,
+ "Close": 191.04
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 194.27,
+ "High": 196.85,
+ "Low": 191.88,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 191.67,
+ "High": 193.12,
+ "Low": 188.07,
+ "Close": 190.86
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 192.59,
+ "High": 192.73,
+ "Low": 191.99,
+ "Close": 192.57
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 193.34,
+ "High": 195.1,
+ "Low": 192.36,
+ "Close": 193.96
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 194.46,
+ "High": 195.2,
+ "Low": 193.46,
+ "Close": 194.16
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 196.32,
+ "High": 198.22,
+ "Low": 194.28,
+ "Close": 196.39
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 199.01,
+ "High": 201.2,
+ "Low": 198.41,
+ "Close": 198.68
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 198.64,
+ "High": 199.98,
+ "Low": 197.48,
+ "Close": 197.93
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 199.45,
+ "High": 202.09,
+ "Low": 198.77,
+ "Close": 199.35
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 202.32,
+ "High": 202.98,
+ "Low": 198.69,
+ "Close": 201.41
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 204.2,
+ "High": 204.73,
+ "Low": 201.08,
+ "Close": 203.53
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 206.69,
+ "High": 207.5,
+ "Low": 203.42,
+ "Close": 204.02
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 201.51,
+ "High": 203.13,
+ "Low": 198.05,
+ "Close": 202.99
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 203.27,
+ "High": 205.79,
+ "Low": 201.22,
+ "Close": 202.57
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 214.69,
+ "High": 214.78,
+ "Low": 213.21,
+ "Close": 214.04
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 208.66,
+ "High": 210.44,
+ "Low": 208.19,
+ "Close": 209.46
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 209.26,
+ "High": 209.86,
+ "Low": 207.57,
+ "Close": 208.31
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 205.62,
+ "High": 206.82,
+ "Low": 205.5,
+ "Close": 206.54
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 206.32,
+ "High": 206.84,
+ "Low": 206.0,
+ "Close": 206.72
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 205.79,
+ "High": 206.03,
+ "Low": 205.1,
+ "Close": 205.97
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 207.89,
+ "High": 210.01,
+ "Low": 204.93,
+ "Close": 208.97
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 205.51,
+ "High": 206.31,
+ "Low": 202.09,
+ "Close": 204.19
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 203.98,
+ "High": 204.0,
+ "Low": 201.04,
+ "Close": 203.99
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 206.41,
+ "High": 207.58,
+ "Low": 204.61,
+ "Close": 207.38
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 208.28,
+ "High": 208.69,
+ "Low": 207.82,
+ "Close": 207.83
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 209.35,
+ "High": 210.26,
+ "Low": 205.57,
+ "Close": 208.55
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 208.34,
+ "High": 212.07,
+ "Low": 204.61,
+ "Close": 209.24
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 220.26,
+ "High": 220.85,
+ "Low": 219.53,
+ "Close": 220.1
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 218.45,
+ "High": 219.96,
+ "Low": 218.0,
+ "Close": 219.01
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 216.92,
+ "High": 217.62,
+ "Low": 215.93,
+ "Close": 216.22
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 216.61,
+ "High": 217.0,
+ "Low": 215.1,
+ "Close": 215.98
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 216.54,
+ "High": 217.42,
+ "Low": 215.69,
+ "Close": 216.38
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 215.55,
+ "High": 216.05,
+ "Low": 214.14,
+ "Close": 215.1
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 218.7,
+ "High": 219.12,
+ "Low": 217.8,
+ "Close": 218.41
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 220.42,
+ "High": 221.68,
+ "Low": 219.76,
+ "Close": 221.38
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 217.49,
+ "High": 218.53,
+ "Low": 217.06,
+ "Close": 217.91
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 218.01,
+ "High": 219.04,
+ "Low": 217.44,
+ "Close": 218.74
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 219.12,
+ "High": 222.26,
+ "Low": 215.9,
+ "Close": 221.34
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 220.74,
+ "High": 224.84,
+ "Low": 218.47,
+ "Close": 221.51
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 220.55,
+ "High": 223.45,
+ "Low": 219.76,
+ "Close": 222.13
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 220.15,
+ "High": 220.71,
+ "Low": 218.92,
+ "Close": 220.47
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 218.6,
+ "High": 220.56,
+ "Low": 217.74,
+ "Close": 218.16
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 214.35,
+ "High": 217.2,
+ "Low": 210.95,
+ "Close": 211.85
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 209.42,
+ "High": 210.5,
+ "Low": 209.07,
+ "Close": 209.12
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 207.41,
+ "High": 208.47,
+ "Low": 204.12,
+ "Close": 206.97
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 204.14,
+ "High": 205.98,
+ "Low": 200.22,
+ "Close": 201.97
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 201.24,
+ "High": 205.15,
+ "Low": 200.33,
+ "Close": 201.03
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 199.11,
+ "High": 199.39,
+ "Low": 195.31,
+ "Close": 198.86
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 196.76,
+ "High": 199.76,
+ "Low": 193.67,
+ "Close": 198.32
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 194.53,
+ "High": 195.14,
+ "Low": 192.88,
+ "Close": 194.31
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 192.02,
+ "High": 195.09,
+ "Low": 191.11,
+ "Close": 191.26
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 187.81,
+ "High": 189.19,
+ "Low": 186.3,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 184.36,
+ "High": 187.13,
+ "Low": 182.15,
+ "Close": 183.64
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 182.18,
+ "High": 184.64,
+ "Low": 179.59,
+ "Close": 181.42
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.19,
+ "High": 184.25,
+ "Low": 180.86,
+ "Close": 182.16
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 179.79,
+ "High": 180.58,
+ "Low": 179.64,
+ "Close": 180.06
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 183.16,
+ "High": 185.58,
+ "Low": 180.75,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 187.33,
+ "High": 187.71,
+ "Low": 183.86,
+ "Close": 187.22
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 188.65,
+ "High": 188.75,
+ "Low": 187.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 186.21,
+ "High": 186.78,
+ "Low": 183.75,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 187.18,
+ "High": 190.08,
+ "Low": 185.05,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 184.08,
+ "High": 186.25,
+ "Low": 180.59,
+ "Close": 182.53
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 179.66,
+ "High": 182.99,
+ "Low": 176.27,
+ "Close": 180.66
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 182.76,
+ "High": 186.4,
+ "Low": 179.53,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.5,
+ "High": 186.52,
+ "Low": 181.11,
+ "Close": 186.42
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 187.48,
+ "High": 189.39,
+ "Low": 186.48,
+ "Close": 187.78
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 191.06,
+ "High": 194.69,
+ "Low": 190.55,
+ "Close": 193.48
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 193.98,
+ "High": 196.02,
+ "Low": 192.42,
+ "Close": 192.83
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 189.99,
+ "High": 191.31,
+ "Low": 186.61,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 188.25,
+ "High": 188.94,
+ "Low": 187.39,
+ "Close": 187.46
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 189.99,
+ "High": 190.44,
+ "Low": 189.92,
+ "Close": 190.16
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 193.75,
+ "High": 196.45,
+ "Low": 192.38,
+ "Close": 195.2
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 196.39,
+ "High": 200.25,
+ "Low": 195.65,
+ "Close": 196.27
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 193.59,
+ "High": 195.98,
+ "Low": 193.26,
+ "Close": 194.4
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 191.6,
+ "High": 194.19,
+ "Low": 190.19,
+ "Close": 193.23
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 191.61,
+ "High": 191.68,
+ "Low": 189.06,
+ "Close": 189.12
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 188.53,
+ "High": 190.95,
+ "Low": 187.83,
+ "Close": 190.24
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 190.78,
+ "High": 190.85,
+ "Low": 190.03,
+ "Close": 190.68
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 192.5,
+ "High": 192.63,
+ "Low": 189.37,
+ "Close": 192.45
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 195.2,
+ "High": 196.64,
+ "Low": 192.47,
+ "Close": 193.05
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 195.96,
+ "High": 199.34,
+ "Low": 193.96,
+ "Close": 197.35
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 195.71,
+ "High": 197.28,
+ "Low": 192.66,
+ "Close": 195.82
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 196.1,
+ "High": 197.4,
+ "Low": 193.82,
+ "Close": 195.77
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 194.6,
+ "High": 194.79,
+ "Low": 194.02,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 191.0,
+ "High": 193.86,
+ "Low": 189.85,
+ "Close": 192.58
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 189.1,
+ "High": 190.47,
+ "Low": 188.36,
+ "Close": 189.17
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 187.13,
+ "High": 188.9,
+ "Low": 184.56,
+ "Close": 185.4
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 186.41,
+ "High": 190.01,
+ "Low": 185.6,
+ "Close": 189.86
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 191.36,
+ "High": 191.42,
+ "Low": 191.18,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 194.67,
+ "High": 198.53,
+ "Low": 191.8,
+ "Close": 193.42
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 197.25,
+ "High": 198.59,
+ "Low": 195.02,
+ "Close": 196.06
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 199.47,
+ "High": 201.98,
+ "Low": 195.49,
+ "Close": 198.1
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 198.79,
+ "High": 200.55,
+ "Low": 195.52,
+ "Close": 199.53
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 198.33,
+ "High": 199.06,
+ "Low": 197.8,
+ "Close": 198.08
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 197.7,
+ "High": 199.95,
+ "Low": 196.06,
+ "Close": 198.09
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 196.88,
+ "High": 197.63,
+ "Low": 196.7,
+ "Close": 197.27
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 194.57,
+ "High": 195.2,
+ "Low": 191.02,
+ "Close": 193.02
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 189.27,
+ "High": 190.92,
+ "Low": 188.07,
+ "Close": 189.39
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.09,
+ "High": 188.12,
+ "Low": 186.13,
+ "Close": 187.32
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.73,
+ "High": 188.27,
+ "Low": 183.88,
+ "Close": 186.22
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 186.66,
+ "High": 190.04,
+ "Low": 182.98,
+ "Close": 189.97
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 191.89,
+ "High": 194.08,
+ "Low": 191.07,
+ "Close": 193.31
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 190.06,
+ "High": 190.25,
+ "Low": 187.75,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 188.97,
+ "High": 189.8,
+ "Low": 188.38,
+ "Close": 189.78
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 192.27,
+ "High": 195.81,
+ "Low": 191.38,
+ "Close": 195.26
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 191.95,
+ "High": 193.78,
+ "Low": 188.66,
+ "Close": 191.23
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 194.02,
+ "High": 196.79,
+ "Low": 191.51,
+ "Close": 193.49
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 196.7,
+ "High": 199.49,
+ "Low": 195.09,
+ "Close": 195.64
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 194.77,
+ "High": 196.67,
+ "Low": 192.89,
+ "Close": 195.91
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 194.98,
+ "High": 198.15,
+ "Low": 192.08,
+ "Close": 192.86
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 192.9,
+ "High": 195.34,
+ "Low": 189.5,
+ "Close": 190.89
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.27,
+ "High": 193.35,
+ "Low": 190.87,
+ "Close": 191.32
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 193.34,
+ "High": 193.73,
+ "Low": 189.73,
+ "Close": 190.55
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 189.68,
+ "High": 193.18,
+ "Low": 186.14,
+ "Close": 187.61
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 184.81,
+ "High": 187.6,
+ "Low": 183.76,
+ "Close": 187.12
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.94,
+ "High": 193.17,
+ "Low": 188.73,
+ "Close": 189.54
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 191.52,
+ "High": 192.12,
+ "Low": 188.86,
+ "Close": 190.69
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 188.2,
+ "High": 190.33,
+ "Low": 185.65,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 189.97,
+ "High": 190.99,
+ "Low": 186.23,
+ "Close": 189.82
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 189.41,
+ "High": 189.62,
+ "Low": 187.56,
+ "Close": 189.47
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 192.06,
+ "High": 192.92,
+ "Low": 188.35,
+ "Close": 189.02
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 186.58,
+ "High": 188.72,
+ "Low": 184.74,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 189.41,
+ "High": 192.12,
+ "Low": 187.98,
+ "Close": 190.09
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 192.13,
+ "High": 194.13,
+ "Low": 189.28,
+ "Close": 191.55
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 191.2,
+ "High": 193.81,
+ "Low": 190.1,
+ "Close": 191.68
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.0,
+ "High": 190.58,
+ "Low": 185.8,
+ "Close": 187.84
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.94,
+ "High": 188.34,
+ "Low": 182.09,
+ "Close": 187.13
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.96,
+ "High": 187.37,
+ "Low": 185.26,
+ "Close": 185.76
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.81,
+ "High": 187.11,
+ "Low": 181.22,
+ "Close": 183.96
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 187.46,
+ "High": 189.82,
+ "Low": 184.69,
+ "Close": 185.39
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.28,
+ "High": 186.48,
+ "Low": 182.28,
+ "Close": 186.45
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 189.6,
+ "High": 192.09,
+ "Low": 187.7,
+ "Close": 188.59
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 190.5,
+ "High": 192.25,
+ "Low": 188.59,
+ "Close": 191.56
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 190.87,
+ "High": 192.38,
+ "Low": 189.85,
+ "Close": 190.37
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 192.4,
+ "High": 192.71,
+ "Low": 189.79,
+ "Close": 190.67
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 191.37,
+ "High": 193.49,
+ "Low": 190.47,
+ "Close": 191.98
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 195.65,
+ "High": 195.73,
+ "Low": 194.55,
+ "Close": 194.57
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 196.03,
+ "High": 197.75,
+ "Low": 193.92,
+ "Close": 196.32
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 195.26,
+ "High": 197.99,
+ "Low": 192.95,
+ "Close": 193.96
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 194.56,
+ "High": 195.19,
+ "Low": 193.74,
+ "Close": 195.09
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 194.8,
+ "High": 195.29,
+ "Low": 193.59,
+ "Close": 194.8
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 194.71,
+ "High": 196.74,
+ "Low": 194.28,
+ "Close": 196.02
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 195.27,
+ "High": 196.04,
+ "Low": 192.61,
+ "Close": 194.22
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 196.06,
+ "High": 199.1,
+ "Low": 192.26,
+ "Close": 195.15
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 193.13,
+ "High": 193.8,
+ "Low": 192.23,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 194.52,
+ "High": 197.86,
+ "Low": 193.59,
+ "Close": 194.45
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 197.99,
+ "High": 199.06,
+ "Low": 196.81,
+ "Close": 196.94
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 196.51,
+ "High": 200.41,
+ "Low": 195.5,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 200.87,
+ "High": 203.0,
+ "Low": 197.66,
+ "Close": 199.47
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 200.9,
+ "High": 203.92,
+ "Low": 200.64,
+ "Close": 201.25
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 197.93,
+ "High": 200.72,
+ "Low": 195.59,
+ "Close": 199.07
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 197.64,
+ "High": 197.92,
+ "Low": 194.88,
+ "Close": 195.31
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 193.4,
+ "High": 195.13,
+ "Low": 193.1,
+ "Close": 193.45
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 195.24,
+ "High": 195.72,
+ "Low": 194.97,
+ "Close": 195.68
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 197.99,
+ "High": 200.15,
+ "Low": 196.64,
+ "Close": 197.67
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 200.35,
+ "High": 202.8,
+ "Low": 197.77,
+ "Close": 200.36
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 202.5,
+ "High": 203.28,
+ "Low": 200.92,
+ "Close": 201.61
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 202.19,
+ "High": 203.2,
+ "Low": 198.23,
+ "Close": 203.16
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 201.78,
+ "High": 202.59,
+ "Low": 198.35,
+ "Close": 200.95
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 197.84,
+ "High": 200.44,
+ "Low": 194.78,
+ "Close": 198.81
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 197.35,
+ "High": 199.67,
+ "Low": 197.32,
+ "Close": 197.85
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 201.6,
+ "High": 202.21,
+ "Low": 197.95,
+ "Close": 198.49
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 198.12,
+ "High": 199.48,
+ "Low": 194.53,
+ "Close": 194.94
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 198.54,
+ "High": 201.16,
+ "Low": 196.12,
+ "Close": 199.04
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 199.24,
+ "High": 201.2,
+ "Low": 197.42,
+ "Close": 199.3
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 198.09,
+ "High": 200.08,
+ "Low": 197.34,
+ "Close": 199.98
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 196.19,
+ "High": 198.79,
+ "Low": 192.44,
+ "Close": 193.75
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 190.71,
+ "High": 192.19,
+ "Low": 189.7,
+ "Close": 192.02
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 188.55,
+ "High": 189.71,
+ "Low": 185.24,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 188.34,
+ "High": 191.18,
+ "Low": 185.09,
+ "Close": 186.68
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 188.94,
+ "High": 191.64,
+ "Low": 186.93,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 186.96,
+ "High": 189.67,
+ "Low": 186.35,
+ "Close": 188.76
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 188.08,
+ "High": 190.01,
+ "Low": 184.45,
+ "Close": 188.09
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 184.38,
+ "High": 187.34,
+ "Low": 181.96,
+ "Close": 186.02
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 188.31,
+ "High": 190.35,
+ "Low": 187.27,
+ "Close": 189.34
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 187.9,
+ "High": 191.49,
+ "Low": 186.94,
+ "Close": 191.21
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 194.0,
+ "High": 194.05,
+ "Low": 191.15,
+ "Close": 191.25
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 190.23,
+ "High": 192.58,
+ "Low": 187.41,
+ "Close": 189.36
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 187.86,
+ "High": 190.87,
+ "Low": 184.83,
+ "Close": 186.75
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 188.11,
+ "High": 189.74,
+ "Low": 187.99,
+ "Close": 188.33
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 189.83,
+ "High": 191.59,
+ "Low": 187.47,
+ "Close": 189.65
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 189.5,
+ "High": 191.04,
+ "Low": 188.55,
+ "Close": 190.91
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 187.76,
+ "High": 187.87,
+ "Low": 186.22,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 185.86,
+ "High": 188.35,
+ "Low": 184.76,
+ "Close": 186.33
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 188.92,
+ "High": 192.13,
+ "Low": 187.26,
+ "Close": 190.52
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 187.73,
+ "High": 190.94,
+ "Low": 184.35,
+ "Close": 188.07
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 190.09,
+ "High": 191.87,
+ "Low": 189.81,
+ "Close": 190.76
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 191.16,
+ "High": 194.32,
+ "Low": 189.5,
+ "Close": 192.15
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 191.3,
+ "High": 193.89,
+ "Low": 189.82,
+ "Close": 190.23
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 189.23,
+ "High": 191.67,
+ "Low": 185.46,
+ "Close": 188.48
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 188.84,
+ "High": 189.28,
+ "Low": 185.68,
+ "Close": 188.02
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 190.86,
+ "High": 191.66,
+ "Low": 187.81,
+ "Close": 188.6
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 192.34,
+ "High": 192.76,
+ "Low": 189.23,
+ "Close": 189.28
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 189.05,
+ "High": 189.96,
+ "Low": 185.34,
+ "Close": 185.78
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 185.49,
+ "High": 186.5,
+ "Low": 184.83,
+ "Close": 185.56
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 183.37,
+ "High": 184.43,
+ "Low": 181.95,
+ "Close": 183.73
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 185.13,
+ "High": 187.46,
+ "Low": 181.93,
+ "Close": 185.33
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 187.6,
+ "High": 190.27,
+ "Low": 185.51,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 190.88,
+ "High": 192.97,
+ "Low": 189.63,
+ "Close": 189.77
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 188.61,
+ "High": 190.9,
+ "Low": 184.9,
+ "Close": 189.62
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 186.83,
+ "High": 188.31,
+ "Low": 185.75,
+ "Close": 188.21
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 186.04,
+ "High": 187.81,
+ "Low": 184.15,
+ "Close": 186.6
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 189.18,
+ "High": 192.56,
+ "Low": 187.6,
+ "Close": 188.35
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 187.13,
+ "High": 190.76,
+ "Low": 184.98,
+ "Close": 185.83
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 186.47,
+ "High": 188.85,
+ "Low": 183.38,
+ "Close": 187.23
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 185.73,
+ "High": 187.7,
+ "Low": 183.64,
+ "Close": 187.69
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 189.65,
+ "High": 192.07,
+ "Low": 187.21,
+ "Close": 189.75
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 193.47,
+ "High": 193.87,
+ "Low": 193.21,
+ "Close": 193.78
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 193.54,
+ "High": 195.51,
+ "Low": 192.22,
+ "Close": 193.62
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 191.5,
+ "High": 192.72,
+ "Low": 190.41,
+ "Close": 190.9
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 192.24,
+ "High": 193.01,
+ "Low": 190.3,
+ "Close": 191.79
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 194.01,
+ "High": 196.64,
+ "Low": 192.33,
+ "Close": 195.35
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 197.69,
+ "High": 199.7,
+ "Low": 195.4,
+ "Close": 197.83
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 199.14,
+ "High": 202.89,
+ "Low": 198.53,
+ "Close": 201.23
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 198.75,
+ "High": 200.37,
+ "Low": 197.53,
+ "Close": 197.61
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 197.85,
+ "High": 199.24,
+ "Low": 197.76,
+ "Close": 198.39
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 201.13,
+ "High": 201.43,
+ "Low": 197.67,
+ "Close": 200.76
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 204.11,
+ "High": 205.45,
+ "Low": 201.65,
+ "Close": 203.74
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 199.88,
+ "High": 203.56,
+ "Low": 199.68,
+ "Close": 203.56
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 201.28,
+ "High": 201.93,
+ "Low": 199.91,
+ "Close": 201.15
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 202.73,
+ "High": 202.81,
+ "Low": 199.58,
+ "Close": 202.36
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 199.21,
+ "High": 200.9,
+ "Low": 198.57,
+ "Close": 198.67
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 200.23,
+ "High": 202.05,
+ "Low": 199.73,
+ "Close": 201.91
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 197.93,
+ "High": 201.53,
+ "Low": 194.8,
+ "Close": 198.84
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 202.61,
+ "High": 202.75,
+ "Low": 199.63,
+ "Close": 199.92
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 197.65,
+ "High": 199.18,
+ "Low": 195.77,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 196.25,
+ "High": 200.11,
+ "Low": 194.25,
+ "Close": 198.89
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 198.76,
+ "High": 201.5,
+ "Low": 195.7,
+ "Close": 200.12
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 203.56,
+ "High": 205.91,
+ "Low": 201.23,
+ "Close": 205.48
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 205.67,
+ "High": 206.43,
+ "Low": 201.91,
+ "Close": 204.41
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 206.86,
+ "High": 207.2,
+ "Low": 204.17,
+ "Close": 207.08
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 210.74,
+ "High": 213.69,
+ "Low": 207.95,
+ "Close": 210.41
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 206.73,
+ "High": 208.0,
+ "Low": 206.48,
+ "Close": 207.99
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 208.64,
+ "High": 209.48,
+ "Low": 207.25,
+ "Close": 208.92
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 210.59,
+ "High": 214.67,
+ "Low": 209.45,
+ "Close": 212.58
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 213.38,
+ "High": 215.6,
+ "Low": 211.92,
+ "Close": 215.17
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 219.46,
+ "High": 223.49,
+ "Low": 217.62,
+ "Close": 219.74
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 221.38,
+ "High": 224.98,
+ "Low": 219.12,
+ "Close": 221.56
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 223.59,
+ "High": 224.61,
+ "Low": 221.75,
+ "Close": 222.67
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 225.79,
+ "High": 228.61,
+ "Low": 222.57,
+ "Close": 225.86
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 225.06,
+ "High": 228.81,
+ "Low": 224.42,
+ "Close": 224.88
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 222.65,
+ "High": 223.66,
+ "Low": 221.0,
+ "Close": 221.64
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 220.44,
+ "High": 224.6,
+ "Low": 217.53,
+ "Close": 221.15
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 223.78,
+ "High": 224.78,
+ "Low": 219.9,
+ "Close": 220.36
+ },
+ {
+ "Date": "2025-06-18",
+ "Open": 220.9,
+ "High": 224.65,
+ "Low": 220.56,
+ "Close": 220.67
+ },
+ {
+ "Date": "2025-06-19",
+ "Open": 222.72,
+ "High": 226.72,
+ "Low": 222.49,
+ "Close": 224.24
+ },
+ {
+ "Date": "2025-06-20",
+ "Open": 227.64,
+ "High": 231.94,
+ "Low": 223.7,
+ "Close": 228.93
+ },
+ {
+ "Date": "2025-06-23",
+ "Open": 224.53,
+ "High": 226.19,
+ "Low": 220.62,
+ "Close": 220.96
+ },
+ {
+ "Date": "2025-06-24",
+ "Open": 223.74,
+ "High": 228.12,
+ "Low": 222.5,
+ "Close": 222.54
+ },
+ {
+ "Date": "2025-06-25",
+ "Open": 221.04,
+ "High": 221.12,
+ "Low": 219.05,
+ "Close": 219.11
+ },
+ {
+ "Date": "2025-06-26",
+ "Open": 219.3,
+ "High": 223.46,
+ "Low": 217.06,
+ "Close": 217.25
+ },
+ {
+ "Date": "2025-06-27",
+ "Open": 219.77,
+ "High": 221.14,
+ "Low": 216.28,
+ "Close": 218.01
+ },
+ {
+ "Date": "2025-06-30",
+ "Open": 222.01,
+ "High": 223.18,
+ "Low": 217.87,
+ "Close": 222.27
+ }
+]
\ No newline at end of file
diff --git a/typescript/src/app/chart/data/goog-data.json b/typescript/src/app/chart/data/goog-data.json
new file mode 100644
index 0000000..8020787
--- /dev/null
+++ b/typescript/src/app/chart/data/goog-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 182.76,
+ "High": 182.93,
+ "Low": 180.89,
+ "Close": 181.03
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 181.55,
+ "High": 183.05,
+ "Low": 180.46,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 183.21,
+ "High": 184.23,
+ "Low": 182.08,
+ "Close": 182.48
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 181.46,
+ "High": 182.33,
+ "Low": 181.17,
+ "Close": 182.01
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 182.45,
+ "High": 182.62,
+ "Low": 181.51,
+ "Close": 182.3
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 182.28,
+ "High": 183.21,
+ "Low": 180.64,
+ "Close": 183.18
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 183.77,
+ "High": 185.5,
+ "Low": 183.27,
+ "Close": 184.72
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 183.81,
+ "High": 184.51,
+ "Low": 183.24,
+ "Close": 183.37
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 182.33,
+ "High": 183.18,
+ "Low": 181.1,
+ "Close": 182.08
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 182.46,
+ "High": 183.11,
+ "Low": 182.01,
+ "Close": 182.93
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 181.92,
+ "High": 182.7,
+ "Low": 181.0,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 179.87,
+ "High": 181.27,
+ "Low": 178.86,
+ "Close": 180.89
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 180.69,
+ "High": 181.92,
+ "Low": 180.57,
+ "Close": 181.31
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 180.07,
+ "High": 181.29,
+ "Low": 178.68,
+ "Close": 179.83
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 179.95,
+ "High": 181.33,
+ "Low": 179.41,
+ "Close": 181.06
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 181.66,
+ "High": 183.16,
+ "Low": 180.45,
+ "Close": 180.69
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 179.54,
+ "High": 180.07,
+ "Low": 179.19,
+ "Close": 179.94
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 180.77,
+ "High": 180.95,
+ "Low": 179.69,
+ "Close": 180.68
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 182.07,
+ "High": 182.42,
+ "Low": 180.36,
+ "Close": 181.19
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 181.49,
+ "High": 182.47,
+ "Low": 180.38,
+ "Close": 180.55
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 179.17,
+ "High": 179.44,
+ "Low": 178.41,
+ "Close": 178.48
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 178.4,
+ "High": 178.58,
+ "Low": 177.48,
+ "Close": 178.49
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 179.36,
+ "High": 181.33,
+ "Low": 179.25,
+ "Close": 180.07
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 179.38,
+ "High": 179.68,
+ "Low": 177.78,
+ "Close": 178.19
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 179.54,
+ "High": 180.55,
+ "Low": 179.24,
+ "Close": 180.54
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 179.56,
+ "High": 179.71,
+ "Low": 179.21,
+ "Close": 179.48
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 180.14,
+ "High": 181.08,
+ "Low": 178.94,
+ "Close": 180.78
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 179.8,
+ "High": 181.44,
+ "Low": 177.88,
+ "Close": 180.21
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 178.72,
+ "High": 179.69,
+ "Low": 177.55,
+ "Close": 179.18
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 179.32,
+ "High": 180.65,
+ "Low": 179.02,
+ "Close": 180.6
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 181.35,
+ "High": 182.2,
+ "Low": 180.41,
+ "Close": 180.84
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 182.31,
+ "High": 184.13,
+ "Low": 180.81,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 181.88,
+ "High": 183.16,
+ "Low": 181.46,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 180.82,
+ "High": 182.16,
+ "Low": 179.01,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 182.04,
+ "High": 182.76,
+ "Low": 180.81,
+ "Close": 182.45
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 182.32,
+ "High": 184.01,
+ "Low": 181.31,
+ "Close": 182.04
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 181.98,
+ "High": 183.81,
+ "Low": 181.47,
+ "Close": 182.61
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 182.5,
+ "High": 184.25,
+ "Low": 181.96,
+ "Close": 182.09
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 182.61,
+ "High": 184.05,
+ "Low": 181.94,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 182.66,
+ "High": 182.88,
+ "Low": 182.39,
+ "Close": 182.7
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 183.55,
+ "High": 185.32,
+ "Low": 181.74,
+ "Close": 181.86
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 183.25,
+ "High": 184.56,
+ "Low": 181.28,
+ "Close": 183.05
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 181.75,
+ "High": 183.67,
+ "Low": 181.12,
+ "Close": 182.28
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 183.4,
+ "High": 184.53,
+ "Low": 181.8,
+ "Close": 182.69
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 183.24,
+ "High": 184.61,
+ "Low": 181.85,
+ "Close": 182.99
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 183.46,
+ "High": 185.46,
+ "Low": 182.49,
+ "Close": 183.47
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 182.47,
+ "High": 183.49,
+ "Low": 181.06,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 180.39,
+ "High": 181.93,
+ "Low": 179.37,
+ "Close": 181.74
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 182.33,
+ "High": 182.55,
+ "Low": 180.7,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 181.43,
+ "High": 182.24,
+ "Low": 179.63,
+ "Close": 179.85
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 180.11,
+ "High": 181.7,
+ "Low": 179.89,
+ "Close": 180.82
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 180.89,
+ "High": 181.72,
+ "Low": 179.72,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 179.11,
+ "High": 180.67,
+ "Low": 177.61,
+ "Close": 179.79
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 180.47,
+ "High": 181.77,
+ "Low": 179.81,
+ "Close": 181.56
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 180.58,
+ "High": 181.82,
+ "Low": 179.17,
+ "Close": 180.64
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 180.39,
+ "High": 182.2,
+ "Low": 179.07,
+ "Close": 180.01
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 180.64,
+ "High": 182.37,
+ "Low": 178.85,
+ "Close": 179.66
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 178.25,
+ "High": 179.98,
+ "Low": 176.72,
+ "Close": 178.9
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 177.58,
+ "High": 178.15,
+ "Low": 176.06,
+ "Close": 177.66
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 177.31,
+ "High": 178.49,
+ "Low": 176.84,
+ "Close": 177.81
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 178.8,
+ "High": 180.77,
+ "Low": 177.04,
+ "Close": 179.58
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 180.48,
+ "High": 182.28,
+ "Low": 179.7,
+ "Close": 181.32
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 182.04,
+ "High": 183.17,
+ "Low": 181.17,
+ "Close": 182.66
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 181.66,
+ "High": 182.08,
+ "Low": 180.64,
+ "Close": 181.79
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 181.88,
+ "High": 183.8,
+ "Low": 179.93,
+ "Close": 180.1
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 179.87,
+ "High": 180.15,
+ "Low": 178.31,
+ "Close": 179.02
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 178.74,
+ "High": 179.04,
+ "Low": 177.16,
+ "Close": 178.06
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 176.6,
+ "High": 177.13,
+ "Low": 175.72,
+ "Close": 176.24
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 176.42,
+ "High": 177.53,
+ "Low": 175.13,
+ "Close": 176.82
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 176.11,
+ "High": 176.24,
+ "Low": 174.34,
+ "Close": 175.98
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 176.93,
+ "High": 177.52,
+ "Low": 176.24,
+ "Close": 176.6
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 177.06,
+ "High": 178.91,
+ "Low": 176.88,
+ "Close": 178.1
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 177.53,
+ "High": 177.69,
+ "Low": 177.23,
+ "Close": 177.47
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 178.81,
+ "High": 179.42,
+ "Low": 177.33,
+ "Close": 178.27
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 178.7,
+ "High": 180.63,
+ "Low": 177.07,
+ "Close": 180.04
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 181.24,
+ "High": 182.38,
+ "Low": 179.84,
+ "Close": 180.09
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 181.43,
+ "High": 181.95,
+ "Low": 180.64,
+ "Close": 181.36
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 182.64,
+ "High": 183.53,
+ "Low": 181.74,
+ "Close": 183.03
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 183.87,
+ "High": 184.1,
+ "Low": 183.64,
+ "Close": 183.67
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 184.55,
+ "High": 185.66,
+ "Low": 183.57,
+ "Close": 184.99
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 184.97,
+ "High": 186.91,
+ "Low": 184.38,
+ "Close": 184.87
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 185.59,
+ "High": 187.25,
+ "Low": 185.11,
+ "Close": 187.13
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 188.39,
+ "High": 189.05,
+ "Low": 187.91,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.99,
+ "High": 188.52,
+ "Low": 185.59,
+ "Close": 186.56
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 185.86,
+ "High": 186.6,
+ "Low": 184.37,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 184.55,
+ "High": 185.28,
+ "Low": 184.36,
+ "Close": 185.15
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.11,
+ "High": 186.6,
+ "Low": 185.37,
+ "Close": 186.26
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 187.5,
+ "High": 188.25,
+ "Low": 186.65,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 186.58,
+ "High": 187.79,
+ "Low": 185.11,
+ "Close": 186.28
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 187.29,
+ "High": 188.14,
+ "Low": 185.36,
+ "Close": 186.37
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 185.49,
+ "High": 186.18,
+ "Low": 183.88,
+ "Close": 185.86
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 186.0,
+ "High": 187.18,
+ "Low": 185.75,
+ "Close": 186.18
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 186.47,
+ "High": 188.35,
+ "Low": 185.97,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 185.9,
+ "High": 187.46,
+ "Low": 184.28,
+ "Close": 186.14
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 185.14,
+ "High": 185.58,
+ "Low": 184.41,
+ "Close": 185.02
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 183.57,
+ "High": 184.98,
+ "Low": 183.22,
+ "Close": 184.67
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 185.93,
+ "High": 186.79,
+ "Low": 184.41,
+ "Close": 185.88
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 187.22,
+ "High": 187.72,
+ "Low": 187.02,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 187.66,
+ "High": 189.41,
+ "Low": 185.97,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 185.0,
+ "High": 186.21,
+ "Low": 184.75,
+ "Close": 185.03
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 184.09,
+ "High": 184.97,
+ "Low": 182.75,
+ "Close": 183.55
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 182.84,
+ "High": 183.95,
+ "Low": 181.32,
+ "Close": 183.38
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 182.19,
+ "High": 183.31,
+ "Low": 182.06,
+ "Close": 183.16
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 183.52,
+ "High": 184.02,
+ "Low": 181.93,
+ "Close": 183.31
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 184.65,
+ "High": 186.2,
+ "Low": 183.88,
+ "Close": 184.26
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 184.54,
+ "High": 184.94,
+ "Low": 184.42,
+ "Close": 184.86
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 185.82,
+ "High": 187.13,
+ "Low": 184.93,
+ "Close": 186.04
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 186.59,
+ "High": 188.51,
+ "Low": 184.65,
+ "Close": 187.8
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 187.69,
+ "High": 189.66,
+ "Low": 186.96,
+ "Close": 188.79
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 190.0,
+ "High": 190.96,
+ "Low": 188.47,
+ "Close": 189.71
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 188.23,
+ "High": 189.55,
+ "Low": 187.21,
+ "Close": 187.87
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 187.11,
+ "High": 188.3,
+ "Low": 185.48,
+ "Close": 188.18
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 188.78,
+ "High": 189.88,
+ "Low": 187.21,
+ "Close": 189.69
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 190.77,
+ "High": 192.17,
+ "Low": 189.11,
+ "Close": 191.24
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 190.11,
+ "High": 190.81,
+ "Low": 188.68,
+ "Close": 189.15
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.16,
+ "High": 189.48,
+ "Low": 188.61,
+ "Close": 189.31
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 189.42,
+ "High": 190.84,
+ "Low": 187.53,
+ "Close": 188.73
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 188.93,
+ "High": 190.37,
+ "Low": 187.84,
+ "Close": 188.13
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 187.05,
+ "High": 188.09,
+ "Low": 185.88,
+ "Close": 186.9
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 185.67,
+ "High": 186.75,
+ "Low": 184.62,
+ "Close": 186.64
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 186.76,
+ "High": 187.47,
+ "Low": 185.74,
+ "Close": 187.11
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 186.07,
+ "High": 187.55,
+ "Low": 184.12,
+ "Close": 187.52
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 187.59,
+ "High": 188.3,
+ "Low": 186.18,
+ "Close": 188.09
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 189.25,
+ "High": 190.13,
+ "Low": 188.69,
+ "Close": 189.03
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 187.91,
+ "High": 188.24,
+ "Low": 186.3,
+ "Close": 186.5
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 185.52,
+ "High": 187.42,
+ "Low": 184.88,
+ "Close": 186.85
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 185.49,
+ "High": 186.04,
+ "Low": 184.3,
+ "Close": 184.78
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 184.98,
+ "High": 186.0,
+ "Low": 183.72,
+ "Close": 184.27
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 185.23,
+ "High": 185.76,
+ "Low": 184.48,
+ "Close": 185.58
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 184.76,
+ "High": 185.69,
+ "Low": 183.19,
+ "Close": 183.96
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 183.31,
+ "High": 184.85,
+ "Low": 182.97,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 185.14,
+ "High": 186.61,
+ "Low": 184.77,
+ "Close": 185.68
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 184.42,
+ "High": 185.4,
+ "Low": 182.54,
+ "Close": 183.3
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 182.67,
+ "High": 184.46,
+ "Low": 181.97,
+ "Close": 183.53
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 184.96,
+ "High": 185.16,
+ "Low": 184.64,
+ "Close": 185.14
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 184.6,
+ "High": 185.47,
+ "Low": 183.36,
+ "Close": 185.45
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 184.05,
+ "High": 184.63,
+ "Low": 182.7,
+ "Close": 184.07
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 184.48,
+ "High": 184.68,
+ "Low": 183.96,
+ "Close": 184.03
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 185.22,
+ "High": 185.44,
+ "Low": 183.62,
+ "Close": 184.39
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 183.46,
+ "High": 183.62,
+ "Low": 182.59,
+ "Close": 182.87
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 183.98,
+ "High": 184.83,
+ "Low": 183.06,
+ "Close": 184.5
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 183.93,
+ "High": 184.31,
+ "Low": 183.74,
+ "Close": 184.14
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 182.97,
+ "High": 184.23,
+ "Low": 182.03,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 183.7,
+ "High": 184.46,
+ "Low": 183.5,
+ "Close": 183.57
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 182.76,
+ "High": 184.69,
+ "Low": 182.0,
+ "Close": 184.4
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 184.63,
+ "High": 186.41,
+ "Low": 183.01,
+ "Close": 183.91
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 184.32,
+ "High": 185.36,
+ "Low": 182.86,
+ "Close": 183.6
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 182.94,
+ "High": 184.4,
+ "Low": 182.79,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 184.13,
+ "High": 186.0,
+ "Low": 182.77,
+ "Close": 183.77
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 182.45,
+ "High": 183.33,
+ "Low": 181.75,
+ "Close": 183.05
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 182.14,
+ "High": 183.1,
+ "Low": 181.75,
+ "Close": 182.49
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 181.43,
+ "High": 182.17,
+ "Low": 181.1,
+ "Close": 181.17
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 180.34,
+ "High": 181.02,
+ "Low": 179.78,
+ "Close": 180.87
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 180.27,
+ "High": 181.21,
+ "Low": 178.44,
+ "Close": 180.24
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 180.62,
+ "High": 182.53,
+ "Low": 179.72,
+ "Close": 181.02
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 180.48,
+ "High": 182.1,
+ "Low": 178.82,
+ "Close": 179.33
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 180.41,
+ "High": 180.6,
+ "Low": 179.28,
+ "Close": 179.8
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 180.85,
+ "High": 182.13,
+ "Low": 179.1,
+ "Close": 181.27
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 180.22,
+ "High": 181.29,
+ "Low": 178.28,
+ "Close": 178.73
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 178.17,
+ "High": 178.62,
+ "Low": 176.75,
+ "Close": 177.76
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 178.0,
+ "High": 178.79,
+ "Low": 176.36,
+ "Close": 178.58
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 177.4,
+ "High": 177.75,
+ "Low": 175.89,
+ "Close": 177.55
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 176.08,
+ "High": 176.38,
+ "Low": 174.73,
+ "Close": 174.94
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 176.36,
+ "High": 176.88,
+ "Low": 174.88,
+ "Close": 175.86
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 175.05,
+ "High": 176.79,
+ "Low": 174.39,
+ "Close": 175.81
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 174.91,
+ "High": 176.7,
+ "Low": 174.28,
+ "Close": 175.54
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 175.38,
+ "High": 176.73,
+ "Low": 174.44,
+ "Close": 174.73
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 174.36,
+ "High": 175.48,
+ "Low": 172.79,
+ "Close": 174.17
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 173.46,
+ "High": 173.83,
+ "Low": 172.1,
+ "Close": 172.75
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 172.46,
+ "High": 173.11,
+ "Low": 171.23,
+ "Close": 172.68
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 171.42,
+ "High": 171.87,
+ "Low": 169.51,
+ "Close": 170.55
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 169.72,
+ "High": 171.57,
+ "Low": 168.09,
+ "Close": 170.72
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 171.15,
+ "High": 172.25,
+ "Low": 169.73,
+ "Close": 172.19
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 171.46,
+ "High": 173.1,
+ "Low": 170.34,
+ "Close": 170.54
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 169.55,
+ "High": 169.82,
+ "Low": 167.91,
+ "Close": 168.12
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 167.68,
+ "High": 168.04,
+ "Low": 166.8,
+ "Close": 167.91
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 168.45,
+ "High": 168.94,
+ "Low": 168.28,
+ "Close": 168.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 169.21,
+ "High": 170.15,
+ "Low": 168.76,
+ "Close": 168.99
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 167.65,
+ "High": 167.76,
+ "Low": 166.61,
+ "Close": 167.06
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 166.73,
+ "High": 167.7,
+ "Low": 165.43,
+ "Close": 166.0
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 165.87,
+ "High": 167.24,
+ "Low": 165.39,
+ "Close": 167.12
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 168.44,
+ "High": 170.25,
+ "Low": 166.69,
+ "Close": 167.19
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 168.52,
+ "High": 169.66,
+ "Low": 167.15,
+ "Close": 168.58
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 168.74,
+ "High": 170.55,
+ "Low": 168.1,
+ "Close": 168.54
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 168.37,
+ "High": 169.58,
+ "Low": 167.88,
+ "Close": 168.97
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 170.32,
+ "High": 171.27,
+ "Low": 169.63,
+ "Close": 170.58
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 169.88,
+ "High": 170.62,
+ "Low": 169.23,
+ "Close": 169.37
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 170.32,
+ "High": 170.62,
+ "Low": 169.27,
+ "Close": 169.43
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 170.76,
+ "High": 171.12,
+ "Low": 169.08,
+ "Close": 170.27
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 171.13,
+ "High": 171.41,
+ "Low": 169.93,
+ "Close": 171.19
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 170.54,
+ "High": 171.13,
+ "Low": 169.5,
+ "Close": 170.76
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 169.98,
+ "High": 171.84,
+ "Low": 169.68,
+ "Close": 170.44
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 169.27,
+ "High": 170.28,
+ "Low": 168.47,
+ "Close": 170.02
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 170.6,
+ "High": 171.65,
+ "Low": 168.82,
+ "Close": 169.69
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 169.68,
+ "High": 171.36,
+ "Low": 167.75,
+ "Close": 169.72
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 168.65,
+ "High": 170.29,
+ "Low": 167.51,
+ "Close": 168.64
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 170.01,
+ "High": 170.38,
+ "Low": 169.9,
+ "Close": 170.29
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 171.5,
+ "High": 172.67,
+ "Low": 169.56,
+ "Close": 169.76
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 170.16,
+ "High": 170.69,
+ "Low": 168.29,
+ "Close": 170.5
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 170.25,
+ "High": 170.66,
+ "Low": 168.44,
+ "Close": 169.83
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 168.54,
+ "High": 169.76,
+ "Low": 166.66,
+ "Close": 167.64
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 167.16,
+ "High": 168.22,
+ "Low": 166.25,
+ "Close": 167.83
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 168.03,
+ "High": 168.33,
+ "Low": 167.79,
+ "Close": 167.94
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 169.09,
+ "High": 169.48,
+ "Low": 168.1,
+ "Close": 168.37
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 168.61,
+ "High": 168.97,
+ "Low": 167.83,
+ "Close": 168.61
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 169.97,
+ "High": 171.12,
+ "Low": 169.49,
+ "Close": 169.86
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 169.2,
+ "High": 170.0,
+ "Low": 167.33,
+ "Close": 168.28
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 168.12,
+ "High": 170.12,
+ "Low": 167.23,
+ "Close": 169.19
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 168.6,
+ "High": 169.43,
+ "Low": 167.44,
+ "Close": 168.29
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 168.94,
+ "High": 170.82,
+ "Low": 167.65,
+ "Close": 169.73
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 169.61,
+ "High": 170.29,
+ "Low": 168.66,
+ "Close": 169.85
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 170.37,
+ "High": 170.86,
+ "Low": 170.09,
+ "Close": 170.32
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 170.64,
+ "High": 170.96,
+ "Low": 169.44,
+ "Close": 169.65
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 168.62,
+ "High": 169.46,
+ "Low": 168.34,
+ "Close": 168.8
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 167.44,
+ "High": 167.82,
+ "Low": 165.81,
+ "Close": 166.25
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 165.72,
+ "High": 166.3,
+ "Low": 164.27,
+ "Close": 165.25
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 166.09,
+ "High": 167.47,
+ "Low": 164.77,
+ "Close": 166.96
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 166.06,
+ "High": 166.82,
+ "Low": 164.11,
+ "Close": 166.76
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 166.67,
+ "High": 168.42,
+ "Low": 164.95,
+ "Close": 165.04
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 163.83,
+ "High": 165.01,
+ "Low": 163.58,
+ "Close": 164.78
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 165.68,
+ "High": 166.42,
+ "Low": 164.25,
+ "Close": 166.03
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 164.97,
+ "High": 166.45,
+ "Low": 164.22,
+ "Close": 165.75
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 166.37,
+ "High": 167.26,
+ "Low": 165.77,
+ "Close": 166.69
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 165.5,
+ "High": 166.22,
+ "Low": 165.03,
+ "Close": 165.03
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 163.6,
+ "High": 163.74,
+ "Low": 162.1,
+ "Close": 162.41
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 161.51,
+ "High": 161.87,
+ "Low": 160.77,
+ "Close": 161.12
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 160.2,
+ "High": 160.65,
+ "Low": 159.1,
+ "Close": 160.22
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 161.25,
+ "High": 162.03,
+ "Low": 159.96,
+ "Close": 160.24
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 160.22,
+ "High": 160.62,
+ "Low": 158.41,
+ "Close": 160.23
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 159.65,
+ "High": 159.81,
+ "Low": 158.72,
+ "Close": 159.06
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 159.21,
+ "High": 159.8,
+ "Low": 159.03,
+ "Close": 159.59
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 159.37,
+ "High": 160.79,
+ "Low": 158.58,
+ "Close": 159.82
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 161.05,
+ "High": 162.95,
+ "Low": 159.44,
+ "Close": 161.81
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 162.62,
+ "High": 163.48,
+ "Low": 161.0,
+ "Close": 161.56
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 160.74,
+ "High": 161.34,
+ "Low": 160.34,
+ "Close": 160.58
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 160.4,
+ "High": 161.4,
+ "Low": 159.11,
+ "Close": 159.51
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 158.12,
+ "High": 159.57,
+ "Low": 156.54,
+ "Close": 157.8
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 158.21,
+ "High": 158.4,
+ "Low": 157.2,
+ "Close": 157.28
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 157.63,
+ "High": 158.39,
+ "Low": 157.0,
+ "Close": 158.02
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 158.64,
+ "High": 158.88,
+ "Low": 158.23,
+ "Close": 158.32
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 157.06,
+ "High": 158.06,
+ "Low": 155.14,
+ "Close": 155.46
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 154.59,
+ "High": 154.8,
+ "Low": 153.1,
+ "Close": 154.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 153.0,
+ "High": 154.63,
+ "Low": 152.45,
+ "Close": 153.32
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 153.08,
+ "High": 154.63,
+ "Low": 151.71,
+ "Close": 153.65
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 154.77,
+ "High": 155.87,
+ "Low": 152.78,
+ "Close": 155.64
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 156.92,
+ "High": 157.31,
+ "Low": 154.93,
+ "Close": 154.93
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 155.23,
+ "High": 155.88,
+ "Low": 155.11,
+ "Close": 155.14
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 155.76,
+ "High": 156.46,
+ "Low": 155.26,
+ "Close": 156.04
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 154.9,
+ "High": 156.28,
+ "Low": 154.31,
+ "Close": 154.74
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 153.53,
+ "High": 155.1,
+ "Low": 151.9,
+ "Close": 152.24
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 153.29,
+ "High": 155.19,
+ "Low": 151.43,
+ "Close": 154.65
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 154.22,
+ "High": 155.39,
+ "Low": 152.76,
+ "Close": 152.83
+ }
+]
\ No newline at end of file
diff --git a/typescript/src/app/chart/data/msft-data.json b/typescript/src/app/chart/data/msft-data.json
new file mode 100644
index 0000000..df9e7d5
--- /dev/null
+++ b/typescript/src/app/chart/data/msft-data.json
@@ -0,0 +1,2250 @@
+[
+ {
+ "date": "2024-06-03",
+ "open": 128.65,
+ "high": 129.66,
+ "low": 128.35,
+ "close": 129.24,
+ "volume": 17862294
+ },
+ {
+ "date": "2024-06-04",
+ "open": 130.53,
+ "high": 131.76,
+ "low": 129.24,
+ "close": 129.83,
+ "volume": 24622730
+ },
+ {
+ "date": "2024-06-05",
+ "open": 130.91,
+ "high": 132.21,
+ "low": 130.08,
+ "close": 130.74,
+ "volume": 25324954
+ },
+ {
+ "date": "2024-06-06",
+ "open": 131.34,
+ "high": 132.23,
+ "low": 128.97,
+ "close": 130.0,
+ "volume": 23487603
+ },
+ {
+ "date": "2024-06-07",
+ "open": 130.56,
+ "high": 131.17,
+ "low": 128.8,
+ "close": 129.5,
+ "volume": 34692706
+ },
+ {
+ "date": "2024-06-10",
+ "open": 128.47,
+ "high": 129.87,
+ "low": 127.16,
+ "close": 127.4,
+ "volume": 32653028
+ },
+ {
+ "date": "2024-06-11",
+ "open": 128.07,
+ "high": 129.44,
+ "low": 126.32,
+ "close": 126.32,
+ "volume": 32027251
+ },
+ {
+ "date": "2024-06-12",
+ "open": 124.48,
+ "high": 124.66,
+ "low": 123.33,
+ "close": 123.67,
+ "volume": 34268108
+ },
+ {
+ "date": "2024-06-13",
+ "open": 123.91,
+ "high": 125.58,
+ "low": 123.75,
+ "close": 124.29,
+ "volume": 23048223
+ },
+ {
+ "date": "2024-06-14",
+ "open": 124.78,
+ "high": 126.13,
+ "low": 123.45,
+ "close": 125.31,
+ "volume": 23055870
+ },
+ {
+ "date": "2024-06-17",
+ "open": 124.45,
+ "high": 125.68,
+ "low": 123.59,
+ "close": 124.71,
+ "volume": 29045496
+ },
+ {
+ "date": "2024-06-18",
+ "open": 126.08,
+ "high": 127.11,
+ "low": 125.33,
+ "close": 126.28,
+ "volume": 26792047
+ },
+ {
+ "date": "2024-06-19",
+ "open": 125.73,
+ "high": 126.56,
+ "low": 124.7,
+ "close": 124.85,
+ "volume": 21305157
+ },
+ {
+ "date": "2024-06-20",
+ "open": 123.77,
+ "high": 125.62,
+ "low": 122.49,
+ "close": 124.35,
+ "volume": 19580719
+ },
+ {
+ "date": "2024-06-21",
+ "open": 125.51,
+ "high": 126.96,
+ "low": 125.01,
+ "close": 125.75,
+ "volume": 24613573
+ },
+ {
+ "date": "2024-06-24",
+ "open": 125.12,
+ "high": 127.23,
+ "low": 123.74,
+ "close": 127.04,
+ "volume": 32520284
+ },
+ {
+ "date": "2024-06-25",
+ "open": 128.39,
+ "high": 129.29,
+ "low": 127.41,
+ "close": 128.85,
+ "volume": 18300998
+ },
+ {
+ "date": "2024-06-26",
+ "open": 129.78,
+ "high": 132.32,
+ "low": 128.59,
+ "close": 131.14,
+ "volume": 26021558
+ },
+ {
+ "date": "2024-06-27",
+ "open": 132.42,
+ "high": 134.6,
+ "low": 131.22,
+ "close": 134.17,
+ "volume": 33118380
+ },
+ {
+ "date": "2024-06-28",
+ "open": 135.82,
+ "high": 135.95,
+ "low": 134.44,
+ "close": 135.04,
+ "volume": 20578150
+ },
+ {
+ "date": "2024-07-01",
+ "open": 134.78,
+ "high": 135.83,
+ "low": 134.04,
+ "close": 135.33,
+ "volume": 29493376
+ },
+ {
+ "date": "2024-07-02",
+ "open": 135.09,
+ "high": 136.51,
+ "low": 134.41,
+ "close": 136.39,
+ "volume": 33915486
+ },
+ {
+ "date": "2024-07-03",
+ "open": 136.24,
+ "high": 137.11,
+ "low": 134.64,
+ "close": 135.68,
+ "volume": 15498134
+ },
+ {
+ "date": "2024-07-04",
+ "open": 135.49,
+ "high": 137.8,
+ "low": 134.09,
+ "close": 136.7,
+ "volume": 33539877
+ },
+ {
+ "date": "2024-07-05",
+ "open": 137.13,
+ "high": 138.05,
+ "low": 135.93,
+ "close": 136.53,
+ "volume": 33779876
+ },
+ {
+ "date": "2024-07-08",
+ "open": 135.49,
+ "high": 137.61,
+ "low": 134.21,
+ "close": 136.26,
+ "volume": 23678455
+ },
+ {
+ "date": "2024-07-09",
+ "open": 135.48,
+ "high": 136.69,
+ "low": 135.35,
+ "close": 136.05,
+ "volume": 21438913
+ },
+ {
+ "date": "2024-07-10",
+ "open": 136.39,
+ "high": 137.98,
+ "low": 135.28,
+ "close": 137.87,
+ "volume": 31211658
+ },
+ {
+ "date": "2024-07-11",
+ "open": 137.74,
+ "high": 140.42,
+ "low": 137.3,
+ "close": 139.13,
+ "volume": 24963524
+ },
+ {
+ "date": "2024-07-12",
+ "open": 139.14,
+ "high": 140.05,
+ "low": 136.58,
+ "close": 137.73,
+ "volume": 25765620
+ },
+ {
+ "date": "2024-07-15",
+ "open": 137.12,
+ "high": 137.81,
+ "low": 135.58,
+ "close": 135.96,
+ "volume": 15243350
+ },
+ {
+ "date": "2024-07-16",
+ "open": 137.53,
+ "high": 137.96,
+ "low": 134.8,
+ "close": 135.81,
+ "volume": 25110655
+ },
+ {
+ "date": "2024-07-17",
+ "open": 135.83,
+ "high": 138.44,
+ "low": 134.58,
+ "close": 137.81,
+ "volume": 15002463
+ },
+ {
+ "date": "2024-07-18",
+ "open": 139.28,
+ "high": 140.36,
+ "low": 137.94,
+ "close": 139.22,
+ "volume": 30749505
+ },
+ {
+ "date": "2024-07-19",
+ "open": 139.27,
+ "high": 140.22,
+ "low": 137.99,
+ "close": 139.55,
+ "volume": 34672175
+ },
+ {
+ "date": "2024-07-22",
+ "open": 138.07,
+ "high": 138.74,
+ "low": 135.44,
+ "close": 136.94,
+ "volume": 17070231
+ },
+ {
+ "date": "2024-07-23",
+ "open": 137.43,
+ "high": 138.4,
+ "low": 136.15,
+ "close": 138.22,
+ "volume": 21556726
+ },
+ {
+ "date": "2024-07-24",
+ "open": 138.36,
+ "high": 139.84,
+ "low": 136.77,
+ "close": 137.04,
+ "volume": 30374245
+ },
+ {
+ "date": "2024-07-25",
+ "open": 138.54,
+ "high": 141.77,
+ "low": 137.14,
+ "close": 140.43,
+ "volume": 27146889
+ },
+ {
+ "date": "2024-07-26",
+ "open": 141.2,
+ "high": 143.4,
+ "low": 140.96,
+ "close": 142.61,
+ "volume": 29767082
+ },
+ {
+ "date": "2024-07-29",
+ "open": 140.98,
+ "high": 142.11,
+ "low": 139.93,
+ "close": 141.84,
+ "volume": 28548940
+ },
+ {
+ "date": "2024-07-30",
+ "open": 140.09,
+ "high": 141.54,
+ "low": 137.37,
+ "close": 138.83,
+ "volume": 19603793
+ },
+ {
+ "date": "2024-07-31",
+ "open": 138.79,
+ "high": 142.01,
+ "low": 137.49,
+ "close": 140.58,
+ "volume": 32595609
+ },
+ {
+ "date": "2024-08-01",
+ "open": 140.12,
+ "high": 140.35,
+ "low": 139.36,
+ "close": 139.82,
+ "volume": 30833184
+ },
+ {
+ "date": "2024-08-02",
+ "open": 138.98,
+ "high": 139.61,
+ "low": 138.14,
+ "close": 138.7,
+ "volume": 34637773
+ },
+ {
+ "date": "2024-08-05",
+ "open": 137.61,
+ "high": 138.24,
+ "low": 136.56,
+ "close": 137.84,
+ "volume": 20616414
+ },
+ {
+ "date": "2024-08-06",
+ "open": 136.82,
+ "high": 138.22,
+ "low": 135.37,
+ "close": 138.14,
+ "volume": 26759990
+ },
+ {
+ "date": "2024-08-07",
+ "open": 137.44,
+ "high": 139.99,
+ "low": 136.35,
+ "close": 139.1,
+ "volume": 31323601
+ },
+ {
+ "date": "2024-08-08",
+ "open": 139.76,
+ "high": 141.58,
+ "low": 138.38,
+ "close": 140.27,
+ "volume": 17379822
+ },
+ {
+ "date": "2024-08-09",
+ "open": 141.32,
+ "high": 144.67,
+ "low": 139.83,
+ "close": 143.2,
+ "volume": 24804819
+ },
+ {
+ "date": "2024-08-12",
+ "open": 142.24,
+ "high": 145.09,
+ "low": 141.74,
+ "close": 144.16,
+ "volume": 26169440
+ },
+ {
+ "date": "2024-08-13",
+ "open": 142.75,
+ "high": 143.45,
+ "low": 142.5,
+ "close": 142.78,
+ "volume": 21468022
+ },
+ {
+ "date": "2024-08-14",
+ "open": 142.17,
+ "high": 142.58,
+ "low": 141.09,
+ "close": 141.42,
+ "volume": 20561453
+ },
+ {
+ "date": "2024-08-15",
+ "open": 140.54,
+ "high": 140.85,
+ "low": 138.74,
+ "close": 139.35,
+ "volume": 20312759
+ },
+ {
+ "date": "2024-08-16",
+ "open": 140.28,
+ "high": 140.94,
+ "low": 139.13,
+ "close": 140.36,
+ "volume": 29188629
+ },
+ {
+ "date": "2024-08-19",
+ "open": 141.79,
+ "high": 142.96,
+ "low": 141.19,
+ "close": 142.33,
+ "volume": 17162676
+ },
+ {
+ "date": "2024-08-20",
+ "open": 141.37,
+ "high": 142.64,
+ "low": 140.15,
+ "close": 141.8,
+ "volume": 21685590
+ },
+ {
+ "date": "2024-08-21",
+ "open": 143.3,
+ "high": 143.93,
+ "low": 140.13,
+ "close": 141.51,
+ "volume": 34902453
+ },
+ {
+ "date": "2024-08-22",
+ "open": 140.72,
+ "high": 143.22,
+ "low": 139.63,
+ "close": 142.52,
+ "volume": 20215861
+ },
+ {
+ "date": "2024-08-23",
+ "open": 140.87,
+ "high": 142.2,
+ "low": 139.23,
+ "close": 140.42,
+ "volume": 16901066
+ },
+ {
+ "date": "2024-08-26",
+ "open": 142.05,
+ "high": 143.41,
+ "low": 139.14,
+ "close": 140.36,
+ "volume": 15455830
+ },
+ {
+ "date": "2024-08-27",
+ "open": 141.93,
+ "high": 143.02,
+ "low": 139.44,
+ "close": 140.82,
+ "volume": 29134729
+ },
+ {
+ "date": "2024-08-28",
+ "open": 141.0,
+ "high": 142.24,
+ "low": 139.81,
+ "close": 141.37,
+ "volume": 18931084
+ },
+ {
+ "date": "2024-08-29",
+ "open": 143.15,
+ "high": 143.97,
+ "low": 142.06,
+ "close": 143.67,
+ "volume": 26983909
+ },
+ {
+ "date": "2024-08-30",
+ "open": 143.51,
+ "high": 144.39,
+ "low": 142.17,
+ "close": 143.85,
+ "volume": 27470681
+ },
+ {
+ "date": "2024-09-02",
+ "open": 143.95,
+ "high": 145.3,
+ "low": 143.21,
+ "close": 144.99,
+ "volume": 16377021
+ },
+ {
+ "date": "2024-09-03",
+ "open": 143.48,
+ "high": 144.1,
+ "low": 143.21,
+ "close": 143.48,
+ "volume": 30114642
+ },
+ {
+ "date": "2024-09-04",
+ "open": 143.24,
+ "high": 143.89,
+ "low": 141.98,
+ "close": 143.08,
+ "volume": 15951636
+ },
+ {
+ "date": "2024-09-05",
+ "open": 143.07,
+ "high": 143.68,
+ "low": 140.68,
+ "close": 141.52,
+ "volume": 18956749
+ },
+ {
+ "date": "2024-09-06",
+ "open": 139.95,
+ "high": 141.71,
+ "low": 138.73,
+ "close": 141.05,
+ "volume": 20778573
+ },
+ {
+ "date": "2024-09-09",
+ "open": 140.99,
+ "high": 142.3,
+ "low": 139.66,
+ "close": 141.29,
+ "volume": 18880515
+ },
+ {
+ "date": "2024-09-10",
+ "open": 139.86,
+ "high": 141.22,
+ "low": 136.91,
+ "close": 138.09,
+ "volume": 33889288
+ },
+ {
+ "date": "2024-09-11",
+ "open": 137.93,
+ "high": 139.25,
+ "low": 137.0,
+ "close": 138.25,
+ "volume": 34617435
+ },
+ {
+ "date": "2024-09-12",
+ "open": 139.23,
+ "high": 140.95,
+ "low": 139.21,
+ "close": 140.26,
+ "volume": 32973215
+ },
+ {
+ "date": "2024-09-13",
+ "open": 139.43,
+ "high": 140.79,
+ "low": 136.74,
+ "close": 137.8,
+ "volume": 17343332
+ },
+ {
+ "date": "2024-09-16",
+ "open": 136.03,
+ "high": 136.07,
+ "low": 134.4,
+ "close": 134.99,
+ "volume": 26515100
+ },
+ {
+ "date": "2024-09-17",
+ "open": 136.44,
+ "high": 138.29,
+ "low": 135.44,
+ "close": 137.46,
+ "volume": 21305151
+ },
+ {
+ "date": "2024-09-18",
+ "open": 136.14,
+ "high": 137.11,
+ "low": 132.92,
+ "close": 134.17,
+ "volume": 34234417
+ },
+ {
+ "date": "2024-09-19",
+ "open": 132.33,
+ "high": 132.57,
+ "low": 130.64,
+ "close": 131.12,
+ "volume": 31105943
+ },
+ {
+ "date": "2024-09-20",
+ "open": 132.78,
+ "high": 133.87,
+ "low": 130.04,
+ "close": 131.1,
+ "volume": 30303814
+ },
+ {
+ "date": "2024-09-23",
+ "open": 132.95,
+ "high": 134.64,
+ "low": 131.76,
+ "close": 134.11,
+ "volume": 30133341
+ },
+ {
+ "date": "2024-09-24",
+ "open": 132.91,
+ "high": 133.14,
+ "low": 131.47,
+ "close": 131.57,
+ "volume": 34349363
+ },
+ {
+ "date": "2024-09-25",
+ "open": 130.61,
+ "high": 131.16,
+ "low": 130.34,
+ "close": 130.48,
+ "volume": 19155772
+ },
+ {
+ "date": "2024-09-26",
+ "open": 132.21,
+ "high": 133.65,
+ "low": 129.15,
+ "close": 130.6,
+ "volume": 30895866
+ },
+ {
+ "date": "2024-09-27",
+ "open": 128.96,
+ "high": 129.98,
+ "low": 127.64,
+ "close": 129.49,
+ "volume": 18776052
+ },
+ {
+ "date": "2024-09-30",
+ "open": 127.69,
+ "high": 128.0,
+ "low": 127.05,
+ "close": 127.19,
+ "volume": 29103808
+ },
+ {
+ "date": "2024-10-01",
+ "open": 126.57,
+ "high": 129.71,
+ "low": 126.03,
+ "close": 128.32,
+ "volume": 28980142
+ },
+ {
+ "date": "2024-10-02",
+ "open": 130.07,
+ "high": 132.02,
+ "low": 129.51,
+ "close": 131.88,
+ "volume": 27641199
+ },
+ {
+ "date": "2024-10-03",
+ "open": 131.63,
+ "high": 134.0,
+ "low": 130.48,
+ "close": 132.64,
+ "volume": 32079114
+ },
+ {
+ "date": "2024-10-04",
+ "open": 131.17,
+ "high": 131.27,
+ "low": 129.23,
+ "close": 130.66,
+ "volume": 30712620
+ },
+ {
+ "date": "2024-10-07",
+ "open": 132.49,
+ "high": 133.04,
+ "low": 132.15,
+ "close": 132.89,
+ "volume": 20238644
+ },
+ {
+ "date": "2024-10-08",
+ "open": 132.49,
+ "high": 132.95,
+ "low": 130.17,
+ "close": 130.79,
+ "volume": 32171498
+ },
+ {
+ "date": "2024-10-09",
+ "open": 129.22,
+ "high": 130.32,
+ "low": 128.28,
+ "close": 129.43,
+ "volume": 15898294
+ },
+ {
+ "date": "2024-10-10",
+ "open": 127.68,
+ "high": 129.98,
+ "low": 126.58,
+ "close": 129.56,
+ "volume": 19550544
+ },
+ {
+ "date": "2024-10-11",
+ "open": 131.29,
+ "high": 132.09,
+ "low": 130.14,
+ "close": 132.08,
+ "volume": 26428099
+ },
+ {
+ "date": "2024-10-14",
+ "open": 131.51,
+ "high": 132.85,
+ "low": 131.08,
+ "close": 131.15,
+ "volume": 34213903
+ },
+ {
+ "date": "2024-10-15",
+ "open": 132.0,
+ "high": 132.87,
+ "low": 129.91,
+ "close": 130.39,
+ "volume": 30702138
+ },
+ {
+ "date": "2024-10-16",
+ "open": 130.0,
+ "high": 130.54,
+ "low": 128.85,
+ "close": 130.16,
+ "volume": 32559064
+ },
+ {
+ "date": "2024-10-17",
+ "open": 132.0,
+ "high": 132.13,
+ "low": 129.23,
+ "close": 130.03,
+ "volume": 31203347
+ },
+ {
+ "date": "2024-10-18",
+ "open": 131.01,
+ "high": 131.41,
+ "low": 130.62,
+ "close": 131.21,
+ "volume": 22481402
+ },
+ {
+ "date": "2024-10-21",
+ "open": 129.46,
+ "high": 130.69,
+ "low": 127.1,
+ "close": 128.22,
+ "volume": 29324309
+ },
+ {
+ "date": "2024-10-22",
+ "open": 127.02,
+ "high": 127.79,
+ "low": 125.67,
+ "close": 127.53,
+ "volume": 16812712
+ },
+ {
+ "date": "2024-10-23",
+ "open": 127.28,
+ "high": 128.61,
+ "low": 124.86,
+ "close": 125.56,
+ "volume": 34819235
+ },
+ {
+ "date": "2024-10-24",
+ "open": 125.65,
+ "high": 126.87,
+ "low": 125.08,
+ "close": 125.21,
+ "volume": 19219721
+ },
+ {
+ "date": "2024-10-25",
+ "open": 124.14,
+ "high": 124.89,
+ "low": 122.51,
+ "close": 123.02,
+ "volume": 19110801
+ },
+ {
+ "date": "2024-10-28",
+ "open": 121.34,
+ "high": 124.77,
+ "low": 120.15,
+ "close": 123.31,
+ "volume": 15839672
+ },
+ {
+ "date": "2024-10-29",
+ "open": 123.22,
+ "high": 125.14,
+ "low": 122.85,
+ "close": 124.96,
+ "volume": 16661740
+ },
+ {
+ "date": "2024-10-30",
+ "open": 126.81,
+ "high": 127.53,
+ "low": 126.29,
+ "close": 127.06,
+ "volume": 25666222
+ },
+ {
+ "date": "2024-10-31",
+ "open": 125.72,
+ "high": 126.55,
+ "low": 124.46,
+ "close": 125.43,
+ "volume": 18798381
+ },
+ {
+ "date": "2024-11-01",
+ "open": 124.96,
+ "high": 126.09,
+ "low": 123.14,
+ "close": 123.22,
+ "volume": 27325862
+ },
+ {
+ "date": "2024-11-04",
+ "open": 123.09,
+ "high": 124.27,
+ "low": 121.85,
+ "close": 122.57,
+ "volume": 20260264
+ },
+ {
+ "date": "2024-11-05",
+ "open": 124.39,
+ "high": 124.87,
+ "low": 123.4,
+ "close": 124.03,
+ "volume": 22875328
+ },
+ {
+ "date": "2024-11-06",
+ "open": 122.5,
+ "high": 123.97,
+ "low": 121.78,
+ "close": 121.82,
+ "volume": 21024422
+ },
+ {
+ "date": "2024-11-07",
+ "open": 122.17,
+ "high": 123.51,
+ "low": 121.02,
+ "close": 122.76,
+ "volume": 30914942
+ },
+ {
+ "date": "2024-11-08",
+ "open": 123.24,
+ "high": 124.41,
+ "low": 121.99,
+ "close": 123.67,
+ "volume": 16433080
+ },
+ {
+ "date": "2024-11-11",
+ "open": 125.63,
+ "high": 125.96,
+ "low": 123.51,
+ "close": 124.38,
+ "volume": 24848264
+ },
+ {
+ "date": "2024-11-12",
+ "open": 125.07,
+ "high": 125.1,
+ "low": 123.33,
+ "close": 123.87,
+ "volume": 21430428
+ },
+ {
+ "date": "2024-11-13",
+ "open": 124.17,
+ "high": 126.79,
+ "low": 122.85,
+ "close": 125.93,
+ "volume": 28435747
+ },
+ {
+ "date": "2024-11-14",
+ "open": 126.25,
+ "high": 126.57,
+ "low": 125.71,
+ "close": 126.47,
+ "volume": 27477476
+ },
+ {
+ "date": "2024-11-15",
+ "open": 126.07,
+ "high": 127.46,
+ "low": 125.97,
+ "close": 127.02,
+ "volume": 27868832
+ },
+ {
+ "date": "2024-11-18",
+ "open": 128.12,
+ "high": 128.17,
+ "low": 126.71,
+ "close": 127.09,
+ "volume": 31143198
+ },
+ {
+ "date": "2024-11-19",
+ "open": 125.91,
+ "high": 126.05,
+ "low": 123.34,
+ "close": 124.28,
+ "volume": 31226660
+ },
+ {
+ "date": "2024-11-20",
+ "open": 124.96,
+ "high": 126.33,
+ "low": 123.32,
+ "close": 124.44,
+ "volume": 30722838
+ },
+ {
+ "date": "2024-11-21",
+ "open": 124.02,
+ "high": 126.31,
+ "low": 123.51,
+ "close": 125.56,
+ "volume": 33490495
+ },
+ {
+ "date": "2024-11-22",
+ "open": 125.83,
+ "high": 127.07,
+ "low": 123.64,
+ "close": 125.03,
+ "volume": 16158385
+ },
+ {
+ "date": "2024-11-25",
+ "open": 125.75,
+ "high": 126.3,
+ "low": 124.4,
+ "close": 126.02,
+ "volume": 21994792
+ },
+ {
+ "date": "2024-11-26",
+ "open": 126.31,
+ "high": 127.46,
+ "low": 125.88,
+ "close": 126.49,
+ "volume": 26482684
+ },
+ {
+ "date": "2024-11-27",
+ "open": 125.06,
+ "high": 126.42,
+ "low": 123.43,
+ "close": 124.18,
+ "volume": 24555794
+ },
+ {
+ "date": "2024-11-28",
+ "open": 125.52,
+ "high": 125.74,
+ "low": 124.3,
+ "close": 124.89,
+ "volume": 27312658
+ },
+ {
+ "date": "2024-11-29",
+ "open": 123.83,
+ "high": 125.61,
+ "low": 122.58,
+ "close": 124.67,
+ "volume": 22902138
+ },
+ {
+ "date": "2024-12-02",
+ "open": 124.72,
+ "high": 126.31,
+ "low": 124.55,
+ "close": 124.99,
+ "volume": 15373263
+ },
+ {
+ "date": "2024-12-03",
+ "open": 125.71,
+ "high": 125.98,
+ "low": 124.64,
+ "close": 125.66,
+ "volume": 23915293
+ },
+ {
+ "date": "2024-12-04",
+ "open": 125.22,
+ "high": 125.74,
+ "low": 122.63,
+ "close": 123.42,
+ "volume": 18333714
+ },
+ {
+ "date": "2024-12-05",
+ "open": 123.71,
+ "high": 124.6,
+ "low": 123.58,
+ "close": 124.27,
+ "volume": 33604827
+ },
+ {
+ "date": "2024-12-06",
+ "open": 122.57,
+ "high": 123.69,
+ "low": 120.67,
+ "close": 121.77,
+ "volume": 30695264
+ },
+ {
+ "date": "2024-12-09",
+ "open": 122.31,
+ "high": 123.6,
+ "low": 120.81,
+ "close": 122.04,
+ "volume": 31939910
+ },
+ {
+ "date": "2024-12-10",
+ "open": 122.95,
+ "high": 124.32,
+ "low": 122.7,
+ "close": 123.63,
+ "volume": 23256643
+ },
+ {
+ "date": "2024-12-11",
+ "open": 122.75,
+ "high": 124.29,
+ "low": 122.31,
+ "close": 123.48,
+ "volume": 32533280
+ },
+ {
+ "date": "2024-12-12",
+ "open": 121.98,
+ "high": 123.26,
+ "low": 121.39,
+ "close": 122.77,
+ "volume": 18394506
+ },
+ {
+ "date": "2024-12-13",
+ "open": 121.45,
+ "high": 121.89,
+ "low": 118.53,
+ "close": 119.52,
+ "volume": 33419620
+ },
+ {
+ "date": "2024-12-16",
+ "open": 117.72,
+ "high": 118.72,
+ "low": 117.5,
+ "close": 118.19,
+ "volume": 25110812
+ },
+ {
+ "date": "2024-12-17",
+ "open": 116.51,
+ "high": 117.86,
+ "low": 115.45,
+ "close": 117.25,
+ "volume": 30124815
+ },
+ {
+ "date": "2024-12-18",
+ "open": 119.0,
+ "high": 119.58,
+ "low": 118.28,
+ "close": 119.33,
+ "volume": 20620680
+ },
+ {
+ "date": "2024-12-19",
+ "open": 117.99,
+ "high": 119.01,
+ "low": 115.48,
+ "close": 116.01,
+ "volume": 16988674
+ },
+ {
+ "date": "2024-12-20",
+ "open": 117.52,
+ "high": 120.61,
+ "low": 116.97,
+ "close": 119.21,
+ "volume": 34735302
+ },
+ {
+ "date": "2024-12-23",
+ "open": 117.22,
+ "high": 119.03,
+ "low": 116.42,
+ "close": 118.29,
+ "volume": 24797175
+ },
+ {
+ "date": "2024-12-24",
+ "open": 117.32,
+ "high": 118.19,
+ "low": 116.63,
+ "close": 117.71,
+ "volume": 18514639
+ },
+ {
+ "date": "2024-12-25",
+ "open": 116.69,
+ "high": 118.35,
+ "low": 115.45,
+ "close": 117.01,
+ "volume": 33423232
+ },
+ {
+ "date": "2024-12-26",
+ "open": 117.47,
+ "high": 118.26,
+ "low": 115.86,
+ "close": 116.88,
+ "volume": 15578643
+ },
+ {
+ "date": "2024-12-27",
+ "open": 118.43,
+ "high": 119.55,
+ "low": 118.03,
+ "close": 118.6,
+ "volume": 24026144
+ },
+ {
+ "date": "2024-12-30",
+ "open": 120.56,
+ "high": 120.79,
+ "low": 119.94,
+ "close": 120.43,
+ "volume": 25248054
+ },
+ {
+ "date": "2024-12-31",
+ "open": 118.9,
+ "high": 119.77,
+ "low": 117.47,
+ "close": 119.24,
+ "volume": 21552040
+ },
+ {
+ "date": "2025-01-01",
+ "open": 117.83,
+ "high": 119.25,
+ "low": 116.28,
+ "close": 117.2,
+ "volume": 25540411
+ },
+ {
+ "date": "2025-01-02",
+ "open": 118.54,
+ "high": 119.92,
+ "low": 116.55,
+ "close": 117.85,
+ "volume": 22357156
+ },
+ {
+ "date": "2025-01-03",
+ "open": 117.05,
+ "high": 117.08,
+ "low": 115.06,
+ "close": 115.3,
+ "volume": 24344019
+ },
+ {
+ "date": "2025-01-06",
+ "open": 115.6,
+ "high": 117.13,
+ "low": 114.91,
+ "close": 115.81,
+ "volume": 27198651
+ },
+ {
+ "date": "2025-01-07",
+ "open": 117.38,
+ "high": 118.66,
+ "low": 116.31,
+ "close": 118.47,
+ "volume": 29987976
+ },
+ {
+ "date": "2025-01-08",
+ "open": 117.57,
+ "high": 119.77,
+ "low": 117.4,
+ "close": 118.79,
+ "volume": 16296644
+ },
+ {
+ "date": "2025-01-09",
+ "open": 117.79,
+ "high": 120.05,
+ "low": 117.47,
+ "close": 119.48,
+ "volume": 26732931
+ },
+ {
+ "date": "2025-01-10",
+ "open": 119.9,
+ "high": 121.38,
+ "low": 118.2,
+ "close": 118.4,
+ "volume": 17515705
+ },
+ {
+ "date": "2025-01-13",
+ "open": 118.78,
+ "high": 119.28,
+ "low": 116.24,
+ "close": 117.17,
+ "volume": 32705979
+ },
+ {
+ "date": "2025-01-14",
+ "open": 118.99,
+ "high": 119.92,
+ "low": 117.79,
+ "close": 117.84,
+ "volume": 31338194
+ },
+ {
+ "date": "2025-01-15",
+ "open": 119.28,
+ "high": 120.83,
+ "low": 118.16,
+ "close": 120.19,
+ "volume": 18295452
+ },
+ {
+ "date": "2025-01-16",
+ "open": 121.19,
+ "high": 122.69,
+ "low": 120.15,
+ "close": 120.31,
+ "volume": 27969858
+ },
+ {
+ "date": "2025-01-17",
+ "open": 118.65,
+ "high": 121.0,
+ "low": 117.61,
+ "close": 120.53,
+ "volume": 24063647
+ },
+ {
+ "date": "2025-01-20",
+ "open": 119.83,
+ "high": 121.39,
+ "low": 118.88,
+ "close": 121.1,
+ "volume": 16540061
+ },
+ {
+ "date": "2025-01-21",
+ "open": 121.25,
+ "high": 122.18,
+ "low": 120.6,
+ "close": 120.91,
+ "volume": 32147496
+ },
+ {
+ "date": "2025-01-22",
+ "open": 119.58,
+ "high": 120.32,
+ "low": 118.95,
+ "close": 119.21,
+ "volume": 28053255
+ },
+ {
+ "date": "2025-01-23",
+ "open": 118.71,
+ "high": 119.74,
+ "low": 118.63,
+ "close": 119.56,
+ "volume": 21001764
+ },
+ {
+ "date": "2025-01-24",
+ "open": 118.3,
+ "high": 119.27,
+ "low": 116.35,
+ "close": 117.23,
+ "volume": 15914851
+ },
+ {
+ "date": "2025-01-27",
+ "open": 118.49,
+ "high": 120.21,
+ "low": 117.15,
+ "close": 119.07,
+ "volume": 21419389
+ },
+ {
+ "date": "2025-01-28",
+ "open": 120.55,
+ "high": 122.16,
+ "low": 119.25,
+ "close": 121.31,
+ "volume": 25124665
+ },
+ {
+ "date": "2025-01-29",
+ "open": 120.51,
+ "high": 120.99,
+ "low": 119.19,
+ "close": 119.23,
+ "volume": 17414723
+ },
+ {
+ "date": "2025-01-30",
+ "open": 118.6,
+ "high": 120.26,
+ "low": 118.17,
+ "close": 120.06,
+ "volume": 19711866
+ },
+ {
+ "date": "2025-01-31",
+ "open": 121.97,
+ "high": 123.33,
+ "low": 119.79,
+ "close": 120.64,
+ "volume": 18757027
+ },
+ {
+ "date": "2025-02-03",
+ "open": 122.27,
+ "high": 125.04,
+ "low": 121.53,
+ "close": 124.0,
+ "volume": 31642702
+ },
+ {
+ "date": "2025-02-04",
+ "open": 122.5,
+ "high": 123.89,
+ "low": 121.72,
+ "close": 123.85,
+ "volume": 33864097
+ },
+ {
+ "date": "2025-02-05",
+ "open": 124.34,
+ "high": 125.77,
+ "low": 123.52,
+ "close": 124.79,
+ "volume": 25819707
+ },
+ {
+ "date": "2025-02-06",
+ "open": 123.37,
+ "high": 125.77,
+ "low": 122.65,
+ "close": 124.75,
+ "volume": 28098738
+ },
+ {
+ "date": "2025-02-07",
+ "open": 123.02,
+ "high": 123.97,
+ "low": 121.35,
+ "close": 122.45,
+ "volume": 29040373
+ },
+ {
+ "date": "2025-02-10",
+ "open": 123.19,
+ "high": 124.29,
+ "low": 121.74,
+ "close": 123.75,
+ "volume": 34942081
+ },
+ {
+ "date": "2025-02-11",
+ "open": 123.74,
+ "high": 126.51,
+ "low": 122.45,
+ "close": 125.62,
+ "volume": 33081888
+ },
+ {
+ "date": "2025-02-12",
+ "open": 124.17,
+ "high": 125.4,
+ "low": 123.29,
+ "close": 123.57,
+ "volume": 25853072
+ },
+ {
+ "date": "2025-02-13",
+ "open": 123.65,
+ "high": 125.35,
+ "low": 122.28,
+ "close": 124.28,
+ "volume": 23729724
+ },
+ {
+ "date": "2025-02-14",
+ "open": 125.34,
+ "high": 127.42,
+ "low": 124.64,
+ "close": 126.5,
+ "volume": 30837487
+ },
+ {
+ "date": "2025-02-17",
+ "open": 125.36,
+ "high": 127.28,
+ "low": 124.44,
+ "close": 126.5,
+ "volume": 26351503
+ },
+ {
+ "date": "2025-02-18",
+ "open": 126.49,
+ "high": 127.22,
+ "low": 125.02,
+ "close": 126.53,
+ "volume": 17992270
+ },
+ {
+ "date": "2025-02-19",
+ "open": 126.09,
+ "high": 129.13,
+ "low": 126.06,
+ "close": 127.74,
+ "volume": 21889982
+ },
+ {
+ "date": "2025-02-20",
+ "open": 127.52,
+ "high": 129.59,
+ "low": 126.63,
+ "close": 128.3,
+ "volume": 24890884
+ },
+ {
+ "date": "2025-02-21",
+ "open": 128.01,
+ "high": 130.58,
+ "low": 127.88,
+ "close": 129.81,
+ "volume": 34498420
+ },
+ {
+ "date": "2025-02-24",
+ "open": 130.15,
+ "high": 132.39,
+ "low": 129.88,
+ "close": 131.42,
+ "volume": 34777473
+ },
+ {
+ "date": "2025-02-25",
+ "open": 130.44,
+ "high": 131.62,
+ "low": 129.83,
+ "close": 129.99,
+ "volume": 15850199
+ },
+ {
+ "date": "2025-02-26",
+ "open": 131.73,
+ "high": 134.16,
+ "low": 130.29,
+ "close": 133.73,
+ "volume": 18135695
+ },
+ {
+ "date": "2025-02-27",
+ "open": 135.6,
+ "high": 135.92,
+ "low": 132.34,
+ "close": 133.76,
+ "volume": 28513643
+ },
+ {
+ "date": "2025-02-28",
+ "open": 134.43,
+ "high": 134.8,
+ "low": 133.56,
+ "close": 134.68,
+ "volume": 25118050
+ },
+ {
+ "date": "2025-03-03",
+ "open": 133.2,
+ "high": 134.82,
+ "low": 132.2,
+ "close": 133.88,
+ "volume": 32773249
+ },
+ {
+ "date": "2025-03-04",
+ "open": 135.74,
+ "high": 136.29,
+ "low": 133.53,
+ "close": 134.29,
+ "volume": 22180371
+ },
+ {
+ "date": "2025-03-05",
+ "open": 134.92,
+ "high": 135.26,
+ "low": 133.05,
+ "close": 133.91,
+ "volume": 26386495
+ },
+ {
+ "date": "2025-03-06",
+ "open": 131.96,
+ "high": 134.12,
+ "low": 130.78,
+ "close": 133.28,
+ "volume": 32350290
+ },
+ {
+ "date": "2025-03-07",
+ "open": 134.05,
+ "high": 135.29,
+ "low": 133.51,
+ "close": 133.6,
+ "volume": 21341470
+ },
+ {
+ "date": "2025-03-10",
+ "open": 134.46,
+ "high": 134.7,
+ "low": 132.69,
+ "close": 133.8,
+ "volume": 27793008
+ },
+ {
+ "date": "2025-03-11",
+ "open": 131.84,
+ "high": 132.8,
+ "low": 130.9,
+ "close": 131.78,
+ "volume": 27094177
+ },
+ {
+ "date": "2025-03-12",
+ "open": 131.21,
+ "high": 132.5,
+ "low": 130.23,
+ "close": 131.39,
+ "volume": 30366000
+ },
+ {
+ "date": "2025-03-13",
+ "open": 131.87,
+ "high": 133.48,
+ "low": 131.6,
+ "close": 133.23,
+ "volume": 20062512
+ },
+ {
+ "date": "2025-03-14",
+ "open": 134.19,
+ "high": 135.96,
+ "low": 133.97,
+ "close": 135.67,
+ "volume": 34683657
+ },
+ {
+ "date": "2025-03-17",
+ "open": 135.59,
+ "high": 135.6,
+ "low": 133.04,
+ "close": 134.28,
+ "volume": 34228107
+ },
+ {
+ "date": "2025-03-18",
+ "open": 133.43,
+ "high": 134.77,
+ "low": 133.28,
+ "close": 134.09,
+ "volume": 24265877
+ },
+ {
+ "date": "2025-03-19",
+ "open": 133.14,
+ "high": 133.74,
+ "low": 130.39,
+ "close": 131.53,
+ "volume": 25200210
+ },
+ {
+ "date": "2025-03-20",
+ "open": 132.41,
+ "high": 133.22,
+ "low": 130.97,
+ "close": 131.68,
+ "volume": 18361166
+ },
+ {
+ "date": "2025-03-21",
+ "open": 130.08,
+ "high": 130.88,
+ "low": 128.94,
+ "close": 129.87,
+ "volume": 16009961
+ },
+ {
+ "date": "2025-03-24",
+ "open": 129.91,
+ "high": 130.25,
+ "low": 127.95,
+ "close": 127.99,
+ "volume": 19206392
+ },
+ {
+ "date": "2025-03-25",
+ "open": 128.58,
+ "high": 130.43,
+ "low": 127.89,
+ "close": 129.15,
+ "volume": 24449865
+ },
+ {
+ "date": "2025-03-26",
+ "open": 128.92,
+ "high": 129.39,
+ "low": 127.26,
+ "close": 128.71,
+ "volume": 33798767
+ },
+ {
+ "date": "2025-03-27",
+ "open": 128.81,
+ "high": 131.19,
+ "low": 127.7,
+ "close": 129.71,
+ "volume": 31923362
+ },
+ {
+ "date": "2025-03-28",
+ "open": 130.44,
+ "high": 131.93,
+ "low": 129.7,
+ "close": 130.06,
+ "volume": 34147897
+ },
+ {
+ "date": "2025-03-31",
+ "open": 129.84,
+ "high": 130.01,
+ "low": 128.36,
+ "close": 129.69,
+ "volume": 30723263
+ },
+ {
+ "date": "2025-04-01",
+ "open": 130.36,
+ "high": 130.57,
+ "low": 130.02,
+ "close": 130.26,
+ "volume": 27422992
+ },
+ {
+ "date": "2025-04-02",
+ "open": 128.92,
+ "high": 130.15,
+ "low": 126.0,
+ "close": 127.45,
+ "volume": 28908132
+ },
+ {
+ "date": "2025-04-03",
+ "open": 128.19,
+ "high": 130.72,
+ "low": 126.99,
+ "close": 130.16,
+ "volume": 19856065
+ },
+ {
+ "date": "2025-04-04",
+ "open": 128.22,
+ "high": 128.26,
+ "low": 127.02,
+ "close": 127.08,
+ "volume": 22714931
+ },
+ {
+ "date": "2025-04-07",
+ "open": 126.25,
+ "high": 129.46,
+ "low": 125.73,
+ "close": 128.15,
+ "volume": 19043909
+ },
+ {
+ "date": "2025-04-08",
+ "open": 129.79,
+ "high": 129.88,
+ "low": 127.36,
+ "close": 128.21,
+ "volume": 18290669
+ },
+ {
+ "date": "2025-04-09",
+ "open": 129.17,
+ "high": 131.34,
+ "low": 127.68,
+ "close": 129.9,
+ "volume": 21191582
+ },
+ {
+ "date": "2025-04-10",
+ "open": 128.5,
+ "high": 129.16,
+ "low": 126.57,
+ "close": 127.57,
+ "volume": 22916007
+ },
+ {
+ "date": "2025-04-11",
+ "open": 126.66,
+ "high": 129.95,
+ "low": 125.37,
+ "close": 128.55,
+ "volume": 20965788
+ },
+ {
+ "date": "2025-04-14",
+ "open": 128.97,
+ "high": 129.4,
+ "low": 127.46,
+ "close": 128.69,
+ "volume": 16902671
+ },
+ {
+ "date": "2025-04-15",
+ "open": 127.84,
+ "high": 129.26,
+ "low": 126.91,
+ "close": 128.55,
+ "volume": 24931434
+ },
+ {
+ "date": "2025-04-16",
+ "open": 126.59,
+ "high": 126.83,
+ "low": 124.69,
+ "close": 125.53,
+ "volume": 19214847
+ },
+ {
+ "date": "2025-04-17",
+ "open": 125.87,
+ "high": 126.46,
+ "low": 124.37,
+ "close": 124.71,
+ "volume": 27525252
+ },
+ {
+ "date": "2025-04-18",
+ "open": 123.47,
+ "high": 124.03,
+ "low": 122.99,
+ "close": 123.52,
+ "volume": 18070391
+ },
+ {
+ "date": "2025-04-21",
+ "open": 123.45,
+ "high": 125.75,
+ "low": 122.05,
+ "close": 124.54,
+ "volume": 24543657
+ },
+ {
+ "date": "2025-04-22",
+ "open": 124.06,
+ "high": 126.49,
+ "low": 123.6,
+ "close": 125.0,
+ "volume": 29288758
+ },
+ {
+ "date": "2025-04-23",
+ "open": 123.66,
+ "high": 125.8,
+ "low": 122.96,
+ "close": 125.36,
+ "volume": 19050845
+ },
+ {
+ "date": "2025-04-24",
+ "open": 127.07,
+ "high": 129.1,
+ "low": 126.83,
+ "close": 128.22,
+ "volume": 15953744
+ },
+ {
+ "date": "2025-04-25",
+ "open": 128.47,
+ "high": 129.05,
+ "low": 125.18,
+ "close": 126.54,
+ "volume": 22887813
+ },
+ {
+ "date": "2025-04-28",
+ "open": 127.62,
+ "high": 128.22,
+ "low": 125.62,
+ "close": 125.87,
+ "volume": 28251118
+ },
+ {
+ "date": "2025-04-29",
+ "open": 126.3,
+ "high": 128.96,
+ "low": 126.1,
+ "close": 127.83,
+ "volume": 32261419
+ },
+ {
+ "date": "2025-04-30",
+ "open": 127.36,
+ "high": 127.49,
+ "low": 126.93,
+ "close": 127.26,
+ "volume": 28377198
+ },
+ {
+ "date": "2025-05-01",
+ "open": 126.53,
+ "high": 127.49,
+ "low": 124.79,
+ "close": 124.91,
+ "volume": 20628182
+ },
+ {
+ "date": "2025-05-02",
+ "open": 125.96,
+ "high": 128.71,
+ "low": 124.76,
+ "close": 127.82,
+ "volume": 30787376
+ },
+ {
+ "date": "2025-05-05",
+ "open": 126.94,
+ "high": 127.66,
+ "low": 124.41,
+ "close": 125.74,
+ "volume": 32013880
+ },
+ {
+ "date": "2025-05-06",
+ "open": 124.48,
+ "high": 125.4,
+ "low": 122.86,
+ "close": 123.23,
+ "volume": 23927227
+ },
+ {
+ "date": "2025-05-07",
+ "open": 122.57,
+ "high": 124.98,
+ "low": 121.53,
+ "close": 124.23,
+ "volume": 28467879
+ },
+ {
+ "date": "2025-05-08",
+ "open": 125.03,
+ "high": 126.03,
+ "low": 123.96,
+ "close": 125.78,
+ "volume": 15388205
+ },
+ {
+ "date": "2025-05-09",
+ "open": 125.65,
+ "high": 127.27,
+ "low": 125.45,
+ "close": 126.43,
+ "volume": 32425175
+ },
+ {
+ "date": "2025-05-12",
+ "open": 126.97,
+ "high": 128.46,
+ "low": 125.85,
+ "close": 125.96,
+ "volume": 16928843
+ },
+ {
+ "date": "2025-05-13",
+ "open": 124.91,
+ "high": 126.72,
+ "low": 124.63,
+ "close": 126.51,
+ "volume": 15874631
+ },
+ {
+ "date": "2025-05-14",
+ "open": 126.26,
+ "high": 127.75,
+ "low": 125.65,
+ "close": 126.16,
+ "volume": 24607489
+ },
+ {
+ "date": "2025-05-15",
+ "open": 127.28,
+ "high": 127.44,
+ "low": 124.32,
+ "close": 125.81,
+ "volume": 24351526
+ },
+ {
+ "date": "2025-05-16",
+ "open": 126.24,
+ "high": 126.76,
+ "low": 125.0,
+ "close": 126.46,
+ "volume": 18640260
+ },
+ {
+ "date": "2025-05-19",
+ "open": 127.0,
+ "high": 127.82,
+ "low": 125.67,
+ "close": 127.18,
+ "volume": 26324200
+ },
+ {
+ "date": "2025-05-20",
+ "open": 128.42,
+ "high": 129.35,
+ "low": 127.53,
+ "close": 129.01,
+ "volume": 21845718
+ },
+ {
+ "date": "2025-05-21",
+ "open": 130.31,
+ "high": 131.56,
+ "low": 129.31,
+ "close": 131.45,
+ "volume": 26502001
+ },
+ {
+ "date": "2025-05-22",
+ "open": 132.9,
+ "high": 135.37,
+ "low": 132.48,
+ "close": 134.86,
+ "volume": 19986070
+ },
+ {
+ "date": "2025-05-23",
+ "open": 135.76,
+ "high": 136.85,
+ "low": 134.15,
+ "close": 135.61,
+ "volume": 25948691
+ },
+ {
+ "date": "2025-05-26",
+ "open": 134.19,
+ "high": 134.77,
+ "low": 132.95,
+ "close": 134.09,
+ "volume": 21914025
+ },
+ {
+ "date": "2025-05-27",
+ "open": 134.96,
+ "high": 136.43,
+ "low": 134.14,
+ "close": 135.86,
+ "volume": 34233432
+ },
+ {
+ "date": "2025-05-28",
+ "open": 137.44,
+ "high": 137.46,
+ "low": 134.11,
+ "close": 135.6,
+ "volume": 21915419
+ },
+ {
+ "date": "2025-05-29",
+ "open": 134.35,
+ "high": 135.1,
+ "low": 133.36,
+ "close": 134.4,
+ "volume": 20669194
+ },
+ {
+ "date": "2025-05-30",
+ "open": 132.62,
+ "high": 134.11,
+ "low": 131.28,
+ "close": 134.01,
+ "volume": 31117143
+ },
+ {
+ "date": "2025-06-02",
+ "open": 134.06,
+ "high": 135.37,
+ "low": 134.04,
+ "close": 134.91,
+ "volume": 25539340
+ },
+ {
+ "date": "2025-06-03",
+ "open": 136.79,
+ "high": 137.74,
+ "low": 135.18,
+ "close": 135.88,
+ "volume": 31287593
+ },
+ {
+ "date": "2025-06-04",
+ "open": 137.82,
+ "high": 139.98,
+ "low": 137.12,
+ "close": 139.7,
+ "volume": 26078491
+ },
+ {
+ "date": "2025-06-05",
+ "open": 141.08,
+ "high": 141.88,
+ "low": 140.49,
+ "close": 141.73,
+ "volume": 27840058
+ },
+ {
+ "date": "2025-06-06",
+ "open": 142.56,
+ "high": 144.41,
+ "low": 141.7,
+ "close": 144.2,
+ "volume": 24221004
+ },
+ {
+ "date": "2025-06-09",
+ "open": 143.06,
+ "high": 143.25,
+ "low": 141.59,
+ "close": 142.02,
+ "volume": 17342327
+ },
+ {
+ "date": "2025-06-10",
+ "open": 142.86,
+ "high": 145.44,
+ "low": 141.56,
+ "close": 144.81,
+ "volume": 34984655
+ },
+ {
+ "date": "2025-06-11",
+ "open": 144.3,
+ "high": 145.19,
+ "low": 143.44,
+ "close": 144.4,
+ "volume": 27617618
+ },
+ {
+ "date": "2025-06-12",
+ "open": 143.4,
+ "high": 144.74,
+ "low": 142.0,
+ "close": 144.49,
+ "volume": 34164315
+ },
+ {
+ "date": "2025-06-13",
+ "open": 143.25,
+ "high": 145.71,
+ "low": 143.2,
+ "close": 145.23,
+ "volume": 27528769
+ },
+ {
+ "date": "2025-06-16",
+ "open": 143.58,
+ "high": 145.03,
+ "low": 142.34,
+ "close": 142.97,
+ "volume": 34224718
+ },
+ {
+ "date": "2025-06-17",
+ "open": 143.9,
+ "high": 144.83,
+ "low": 143.78,
+ "close": 143.93,
+ "volume": 15350520
+ },
+ {
+ "date": "2025-06-18",
+ "open": 144.26,
+ "high": 145.8,
+ "low": 144.22,
+ "close": 145.31,
+ "volume": 27993603
+ },
+ {
+ "date": "2025-06-19",
+ "open": 144.22,
+ "high": 145.04,
+ "low": 143.67,
+ "close": 144.33,
+ "volume": 25138772
+ },
+ {
+ "date": "2025-06-20",
+ "open": 145.21,
+ "high": 145.53,
+ "low": 144.09,
+ "close": 144.84,
+ "volume": 23457398
+ },
+ {
+ "date": "2025-06-23",
+ "open": 143.01,
+ "high": 143.66,
+ "low": 142.95,
+ "close": 143.41,
+ "volume": 19753695
+ },
+ {
+ "date": "2025-06-24",
+ "open": 141.64,
+ "high": 143.19,
+ "low": 140.22,
+ "close": 142.03,
+ "volume": 25819750
+ },
+ {
+ "date": "2025-06-25",
+ "open": 141.73,
+ "high": 143.1,
+ "low": 140.34,
+ "close": 141.66,
+ "volume": 34193217
+ },
+ {
+ "date": "2025-06-26",
+ "open": 140.83,
+ "high": 140.87,
+ "low": 138.3,
+ "close": 139.6,
+ "volume": 18343664
+ },
+ {
+ "date": "2025-06-27",
+ "open": 137.89,
+ "high": 140.13,
+ "low": 136.83,
+ "close": 138.76,
+ "volume": 20323148
+ },
+ {
+ "date": "2025-06-30",
+ "open": 140.11,
+ "high": 140.57,
+ "low": 137.57,
+ "close": 138.35,
+ "volume": 25628026
+ }
+]
\ No newline at end of file
diff --git a/typescript/src/app/chart/data/tsla-data.json b/typescript/src/app/chart/data/tsla-data.json
new file mode 100644
index 0000000..b0da1fc
--- /dev/null
+++ b/typescript/src/app/chart/data/tsla-data.json
@@ -0,0 +1,1766 @@
+[
+ {
+ "Date": "2024-07-01",
+ "Open": 195.66,
+ "High": 195.82,
+ "Low": 193.84,
+ "Close": 193.86
+ },
+ {
+ "Date": "2024-07-02",
+ "Open": 193.54,
+ "High": 193.87,
+ "Low": 192.46,
+ "Close": 192.55
+ },
+ {
+ "Date": "2024-07-03",
+ "Open": 193.06,
+ "High": 193.17,
+ "Low": 192.71,
+ "Close": 192.81
+ },
+ {
+ "Date": "2024-07-04",
+ "Open": 194.47,
+ "High": 195.45,
+ "Low": 192.64,
+ "Close": 195.38
+ },
+ {
+ "Date": "2024-07-05",
+ "Open": 197.01,
+ "High": 197.21,
+ "Low": 195.16,
+ "Close": 195.7
+ },
+ {
+ "Date": "2024-07-08",
+ "Open": 194.47,
+ "High": 196.23,
+ "Low": 193.01,
+ "Close": 195.24
+ },
+ {
+ "Date": "2024-07-09",
+ "Open": 194.28,
+ "High": 194.8,
+ "Low": 192.46,
+ "Close": 193.87
+ },
+ {
+ "Date": "2024-07-10",
+ "Open": 192.4,
+ "High": 194.3,
+ "Low": 192.29,
+ "Close": 193.74
+ },
+ {
+ "Date": "2024-07-11",
+ "Open": 195.05,
+ "High": 196.03,
+ "Low": 193.28,
+ "Close": 193.54
+ },
+ {
+ "Date": "2024-07-12",
+ "Open": 192.99,
+ "High": 193.79,
+ "Low": 191.7,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-07-15",
+ "Open": 190.34,
+ "High": 190.51,
+ "Low": 188.47,
+ "Close": 189.21
+ },
+ {
+ "Date": "2024-07-16",
+ "Open": 189.93,
+ "High": 190.33,
+ "Low": 188.1,
+ "Close": 189.98
+ },
+ {
+ "Date": "2024-07-17",
+ "Open": 188.65,
+ "High": 188.92,
+ "Low": 187.77,
+ "Close": 188.45
+ },
+ {
+ "Date": "2024-07-18",
+ "Open": 188.27,
+ "High": 189.07,
+ "Low": 186.78,
+ "Close": 186.95
+ },
+ {
+ "Date": "2024-07-19",
+ "Open": 186.35,
+ "High": 188.13,
+ "Low": 184.46,
+ "Close": 186.47
+ },
+ {
+ "Date": "2024-07-22",
+ "Open": 185.91,
+ "High": 186.34,
+ "Low": 184.89,
+ "Close": 185.64
+ },
+ {
+ "Date": "2024-07-23",
+ "Open": 184.99,
+ "High": 185.48,
+ "Low": 183.15,
+ "Close": 184.34
+ },
+ {
+ "Date": "2024-07-24",
+ "Open": 183.49,
+ "High": 183.49,
+ "Low": 182.74,
+ "Close": 182.75
+ },
+ {
+ "Date": "2024-07-25",
+ "Open": 184.73,
+ "High": 185.05,
+ "Low": 183.16,
+ "Close": 183.41
+ },
+ {
+ "Date": "2024-07-26",
+ "Open": 184.89,
+ "High": 186.59,
+ "Low": 183.44,
+ "Close": 186.16
+ },
+ {
+ "Date": "2024-07-29",
+ "Open": 184.85,
+ "High": 186.63,
+ "Low": 184.52,
+ "Close": 185.09
+ },
+ {
+ "Date": "2024-07-30",
+ "Open": 183.31,
+ "High": 184.75,
+ "Low": 182.73,
+ "Close": 184.16
+ },
+ {
+ "Date": "2024-07-31",
+ "Open": 185.26,
+ "High": 185.75,
+ "Low": 184.33,
+ "Close": 185.42
+ },
+ {
+ "Date": "2024-08-01",
+ "Open": 184.56,
+ "High": 185.42,
+ "Low": 184.46,
+ "Close": 184.85
+ },
+ {
+ "Date": "2024-08-02",
+ "Open": 186.46,
+ "High": 188.11,
+ "Low": 185.82,
+ "Close": 187.76
+ },
+ {
+ "Date": "2024-08-05",
+ "Open": 188.43,
+ "High": 190.37,
+ "Low": 186.47,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-08-06",
+ "Open": 188.09,
+ "High": 189.71,
+ "Low": 186.7,
+ "Close": 188.21
+ },
+ {
+ "Date": "2024-08-07",
+ "Open": 189.42,
+ "High": 191.01,
+ "Low": 188.7,
+ "Close": 190.54
+ },
+ {
+ "Date": "2024-08-08",
+ "Open": 191.55,
+ "High": 191.8,
+ "Low": 191.17,
+ "Close": 191.74
+ },
+ {
+ "Date": "2024-08-09",
+ "Open": 191.07,
+ "High": 192.23,
+ "Low": 189.36,
+ "Close": 191.35
+ },
+ {
+ "Date": "2024-08-12",
+ "Open": 192.98,
+ "High": 194.2,
+ "Low": 191.88,
+ "Close": 192.1
+ },
+ {
+ "Date": "2024-08-13",
+ "Open": 191.4,
+ "High": 192.95,
+ "Low": 190.37,
+ "Close": 192.92
+ },
+ {
+ "Date": "2024-08-14",
+ "Open": 193.41,
+ "High": 194.71,
+ "Low": 193.24,
+ "Close": 194.66
+ },
+ {
+ "Date": "2024-08-15",
+ "Open": 192.87,
+ "High": 194.07,
+ "Low": 191.97,
+ "Close": 192.37
+ },
+ {
+ "Date": "2024-08-16",
+ "Open": 192.73,
+ "High": 194.0,
+ "Low": 191.06,
+ "Close": 191.11
+ },
+ {
+ "Date": "2024-08-19",
+ "Open": 189.48,
+ "High": 189.67,
+ "Low": 188.61,
+ "Close": 189.65
+ },
+ {
+ "Date": "2024-08-20",
+ "Open": 190.6,
+ "High": 191.19,
+ "Low": 189.29,
+ "Close": 190.11
+ },
+ {
+ "Date": "2024-08-21",
+ "Open": 191.5,
+ "High": 192.53,
+ "Low": 190.21,
+ "Close": 190.37
+ },
+ {
+ "Date": "2024-08-22",
+ "Open": 191.04,
+ "High": 191.5,
+ "Low": 189.48,
+ "Close": 191.33
+ },
+ {
+ "Date": "2024-08-23",
+ "Open": 191.47,
+ "High": 191.49,
+ "Low": 190.22,
+ "Close": 190.41
+ },
+ {
+ "Date": "2024-08-26",
+ "Open": 192.19,
+ "High": 193.05,
+ "Low": 190.63,
+ "Close": 191.18
+ },
+ {
+ "Date": "2024-08-27",
+ "Open": 189.78,
+ "High": 191.53,
+ "Low": 188.75,
+ "Close": 188.89
+ },
+ {
+ "Date": "2024-08-28",
+ "Open": 188.02,
+ "High": 189.69,
+ "Low": 186.35,
+ "Close": 187.56
+ },
+ {
+ "Date": "2024-08-29",
+ "Open": 185.82,
+ "High": 186.41,
+ "Low": 183.98,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-08-30",
+ "Open": 185.03,
+ "High": 185.53,
+ "Low": 184.58,
+ "Close": 185.2
+ },
+ {
+ "Date": "2024-09-02",
+ "Open": 184.49,
+ "High": 184.49,
+ "Low": 184.19,
+ "Close": 184.39
+ },
+ {
+ "Date": "2024-09-03",
+ "Open": 184.67,
+ "High": 185.21,
+ "Low": 184.02,
+ "Close": 184.21
+ },
+ {
+ "Date": "2024-09-04",
+ "Open": 185.63,
+ "High": 185.86,
+ "Low": 185.62,
+ "Close": 185.65
+ },
+ {
+ "Date": "2024-09-05",
+ "Open": 186.12,
+ "High": 187.17,
+ "Low": 185.38,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-09-06",
+ "Open": 187.26,
+ "High": 187.39,
+ "Low": 185.47,
+ "Close": 185.73
+ },
+ {
+ "Date": "2024-09-09",
+ "Open": 187.61,
+ "High": 189.53,
+ "Low": 186.6,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-09-10",
+ "Open": 185.28,
+ "High": 185.91,
+ "Low": 183.77,
+ "Close": 183.79
+ },
+ {
+ "Date": "2024-09-11",
+ "Open": 182.37,
+ "High": 182.42,
+ "Low": 182.05,
+ "Close": 182.32
+ },
+ {
+ "Date": "2024-09-12",
+ "Open": 182.2,
+ "High": 183.2,
+ "Low": 181.85,
+ "Close": 182.82
+ },
+ {
+ "Date": "2024-09-13",
+ "Open": 181.13,
+ "High": 181.47,
+ "Low": 180.91,
+ "Close": 181.38
+ },
+ {
+ "Date": "2024-09-16",
+ "Open": 181.95,
+ "High": 183.37,
+ "Low": 181.41,
+ "Close": 182.18
+ },
+ {
+ "Date": "2024-09-17",
+ "Open": 181.12,
+ "High": 182.67,
+ "Low": 179.76,
+ "Close": 180.47
+ },
+ {
+ "Date": "2024-09-18",
+ "Open": 179.96,
+ "High": 180.57,
+ "Low": 179.63,
+ "Close": 180.49
+ },
+ {
+ "Date": "2024-09-19",
+ "Open": 182.48,
+ "High": 184.27,
+ "Low": 181.04,
+ "Close": 181.67
+ },
+ {
+ "Date": "2024-09-20",
+ "Open": 183.14,
+ "High": 184.14,
+ "Low": 183.06,
+ "Close": 184.1
+ },
+ {
+ "Date": "2024-09-23",
+ "Open": 185.02,
+ "High": 185.51,
+ "Low": 183.19,
+ "Close": 185.18
+ },
+ {
+ "Date": "2024-09-24",
+ "Open": 184.77,
+ "High": 185.25,
+ "Low": 183.16,
+ "Close": 184.64
+ },
+ {
+ "Date": "2024-09-25",
+ "Open": 184.45,
+ "High": 185.46,
+ "Low": 184.29,
+ "Close": 184.47
+ },
+ {
+ "Date": "2024-09-26",
+ "Open": 183.99,
+ "High": 185.17,
+ "Low": 182.9,
+ "Close": 183.26
+ },
+ {
+ "Date": "2024-09-27",
+ "Open": 182.65,
+ "High": 183.76,
+ "Low": 180.99,
+ "Close": 183.32
+ },
+ {
+ "Date": "2024-09-30",
+ "Open": 182.52,
+ "High": 184.48,
+ "Low": 182.48,
+ "Close": 183.74
+ },
+ {
+ "Date": "2024-10-01",
+ "Open": 183.67,
+ "High": 185.11,
+ "Low": 182.29,
+ "Close": 183.1
+ },
+ {
+ "Date": "2024-10-02",
+ "Open": 181.28,
+ "High": 181.81,
+ "Low": 180.99,
+ "Close": 181.72
+ },
+ {
+ "Date": "2024-10-03",
+ "Open": 183.16,
+ "High": 183.46,
+ "Low": 181.86,
+ "Close": 182.58
+ },
+ {
+ "Date": "2024-10-04",
+ "Open": 183.46,
+ "High": 184.67,
+ "Low": 182.35,
+ "Close": 183.94
+ },
+ {
+ "Date": "2024-10-07",
+ "Open": 183.82,
+ "High": 185.45,
+ "Low": 181.87,
+ "Close": 184.19
+ },
+ {
+ "Date": "2024-10-08",
+ "Open": 185.96,
+ "High": 187.79,
+ "Low": 185.22,
+ "Close": 185.49
+ },
+ {
+ "Date": "2024-10-09",
+ "Open": 184.88,
+ "High": 184.95,
+ "Low": 183.85,
+ "Close": 184.06
+ },
+ {
+ "Date": "2024-10-10",
+ "Open": 182.43,
+ "High": 183.61,
+ "Low": 182.33,
+ "Close": 182.83
+ },
+ {
+ "Date": "2024-10-11",
+ "Open": 183.67,
+ "High": 184.3,
+ "Low": 183.36,
+ "Close": 183.72
+ },
+ {
+ "Date": "2024-10-14",
+ "Open": 185.63,
+ "High": 187.5,
+ "Low": 185.03,
+ "Close": 186.45
+ },
+ {
+ "Date": "2024-10-15",
+ "Open": 184.73,
+ "High": 185.32,
+ "Low": 184.25,
+ "Close": 184.94
+ },
+ {
+ "Date": "2024-10-16",
+ "Open": 186.52,
+ "High": 187.92,
+ "Low": 186.34,
+ "Close": 186.97
+ },
+ {
+ "Date": "2024-10-17",
+ "Open": 188.82,
+ "High": 189.36,
+ "Low": 188.3,
+ "Close": 189.28
+ },
+ {
+ "Date": "2024-10-18",
+ "Open": 187.6,
+ "High": 188.86,
+ "Low": 187.24,
+ "Close": 187.35
+ },
+ {
+ "Date": "2024-10-21",
+ "Open": 188.62,
+ "High": 188.97,
+ "Low": 186.73,
+ "Close": 186.99
+ },
+ {
+ "Date": "2024-10-22",
+ "Open": 186.85,
+ "High": 187.14,
+ "Low": 185.83,
+ "Close": 186.51
+ },
+ {
+ "Date": "2024-10-23",
+ "Open": 187.86,
+ "High": 188.1,
+ "Low": 186.43,
+ "Close": 187.71
+ },
+ {
+ "Date": "2024-10-24",
+ "Open": 186.19,
+ "High": 186.44,
+ "Low": 185.14,
+ "Close": 185.59
+ },
+ {
+ "Date": "2024-10-25",
+ "Open": 184.74,
+ "High": 185.53,
+ "Low": 183.75,
+ "Close": 185.34
+ },
+ {
+ "Date": "2024-10-28",
+ "Open": 186.81,
+ "High": 188.37,
+ "Low": 186.63,
+ "Close": 186.79
+ },
+ {
+ "Date": "2024-10-29",
+ "Open": 186.02,
+ "High": 187.27,
+ "Low": 185.59,
+ "Close": 185.8
+ },
+ {
+ "Date": "2024-10-30",
+ "Open": 183.85,
+ "High": 185.2,
+ "Low": 182.76,
+ "Close": 184.74
+ },
+ {
+ "Date": "2024-10-31",
+ "Open": 185.51,
+ "High": 186.83,
+ "Low": 184.31,
+ "Close": 186.29
+ },
+ {
+ "Date": "2024-11-01",
+ "Open": 186.1,
+ "High": 188.02,
+ "Low": 184.11,
+ "Close": 186.12
+ },
+ {
+ "Date": "2024-11-04",
+ "Open": 187.28,
+ "High": 187.73,
+ "Low": 186.07,
+ "Close": 186.7
+ },
+ {
+ "Date": "2024-11-05",
+ "Open": 185.94,
+ "High": 186.09,
+ "Low": 185.87,
+ "Close": 186.06
+ },
+ {
+ "Date": "2024-11-06",
+ "Open": 187.97,
+ "High": 189.29,
+ "Low": 187.41,
+ "Close": 188.76
+ },
+ {
+ "Date": "2024-11-07",
+ "Open": 187.22,
+ "High": 188.11,
+ "Low": 186.53,
+ "Close": 187.99
+ },
+ {
+ "Date": "2024-11-08",
+ "Open": 186.19,
+ "High": 187.91,
+ "Low": 185.03,
+ "Close": 186.65
+ },
+ {
+ "Date": "2024-11-11",
+ "Open": 185.91,
+ "High": 187.61,
+ "Low": 185.85,
+ "Close": 187.25
+ },
+ {
+ "Date": "2024-11-12",
+ "Open": 187.22,
+ "High": 187.45,
+ "Low": 187.02,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-13",
+ "Open": 189.12,
+ "High": 189.37,
+ "Low": 188.37,
+ "Close": 188.77
+ },
+ {
+ "Date": "2024-11-14",
+ "Open": 188.14,
+ "High": 188.84,
+ "Low": 187.98,
+ "Close": 188.0
+ },
+ {
+ "Date": "2024-11-15",
+ "Open": 186.66,
+ "High": 188.54,
+ "Low": 185.12,
+ "Close": 187.31
+ },
+ {
+ "Date": "2024-11-18",
+ "Open": 186.52,
+ "High": 188.11,
+ "Low": 185.21,
+ "Close": 186.46
+ },
+ {
+ "Date": "2024-11-19",
+ "Open": 187.18,
+ "High": 188.3,
+ "Low": 186.35,
+ "Close": 187.41
+ },
+ {
+ "Date": "2024-11-20",
+ "Open": 186.14,
+ "High": 186.53,
+ "Low": 185.59,
+ "Close": 186.44
+ },
+ {
+ "Date": "2024-11-21",
+ "Open": 186.36,
+ "High": 187.64,
+ "Low": 185.42,
+ "Close": 187.19
+ },
+ {
+ "Date": "2024-11-22",
+ "Open": 185.85,
+ "High": 186.91,
+ "Low": 185.04,
+ "Close": 186.76
+ },
+ {
+ "Date": "2024-11-25",
+ "Open": 187.81,
+ "High": 188.54,
+ "Low": 187.66,
+ "Close": 187.91
+ },
+ {
+ "Date": "2024-11-26",
+ "Open": 187.42,
+ "High": 188.86,
+ "Low": 186.32,
+ "Close": 186.84
+ },
+ {
+ "Date": "2024-11-27",
+ "Open": 185.81,
+ "High": 186.6,
+ "Low": 184.96,
+ "Close": 184.97
+ },
+ {
+ "Date": "2024-11-28",
+ "Open": 183.02,
+ "High": 183.53,
+ "Low": 181.04,
+ "Close": 183.19
+ },
+ {
+ "Date": "2024-11-29",
+ "Open": 182.96,
+ "High": 184.58,
+ "Low": 181.53,
+ "Close": 183.92
+ },
+ {
+ "Date": "2024-12-02",
+ "Open": 185.24,
+ "High": 186.47,
+ "Low": 183.93,
+ "Close": 185.47
+ },
+ {
+ "Date": "2024-12-03",
+ "Open": 186.99,
+ "High": 187.19,
+ "Low": 186.48,
+ "Close": 187.08
+ },
+ {
+ "Date": "2024-12-04",
+ "Open": 187.2,
+ "High": 188.46,
+ "Low": 186.92,
+ "Close": 187.09
+ },
+ {
+ "Date": "2024-12-05",
+ "Open": 187.91,
+ "High": 187.96,
+ "Low": 186.32,
+ "Close": 187.84
+ },
+ {
+ "Date": "2024-12-06",
+ "Open": 188.22,
+ "High": 189.15,
+ "Low": 188.18,
+ "Close": 189.07
+ },
+ {
+ "Date": "2024-12-09",
+ "Open": 189.84,
+ "High": 190.87,
+ "Low": 189.34,
+ "Close": 189.68
+ },
+ {
+ "Date": "2024-12-10",
+ "Open": 188.63,
+ "High": 188.97,
+ "Low": 188.13,
+ "Close": 188.71
+ },
+ {
+ "Date": "2024-12-11",
+ "Open": 190.52,
+ "High": 192.05,
+ "Low": 190.5,
+ "Close": 191.41
+ },
+ {
+ "Date": "2024-12-12",
+ "Open": 193.23,
+ "High": 193.26,
+ "Low": 191.72,
+ "Close": 191.97
+ },
+ {
+ "Date": "2024-12-13",
+ "Open": 193.65,
+ "High": 194.62,
+ "Low": 193.13,
+ "Close": 193.25
+ },
+ {
+ "Date": "2024-12-16",
+ "Open": 194.02,
+ "High": 194.96,
+ "Low": 192.67,
+ "Close": 194.53
+ },
+ {
+ "Date": "2024-12-17",
+ "Open": 195.17,
+ "High": 196.46,
+ "Low": 193.96,
+ "Close": 194.86
+ },
+ {
+ "Date": "2024-12-18",
+ "Open": 195.74,
+ "High": 197.71,
+ "Low": 194.45,
+ "Close": 195.52
+ },
+ {
+ "Date": "2024-12-19",
+ "Open": 197.34,
+ "High": 198.14,
+ "Low": 195.82,
+ "Close": 197.66
+ },
+ {
+ "Date": "2024-12-20",
+ "Open": 195.84,
+ "High": 196.87,
+ "Low": 195.17,
+ "Close": 196.66
+ },
+ {
+ "Date": "2024-12-23",
+ "Open": 195.6,
+ "High": 197.45,
+ "Low": 194.58,
+ "Close": 196.73
+ },
+ {
+ "Date": "2024-12-24",
+ "Open": 195.22,
+ "High": 195.45,
+ "Low": 194.98,
+ "Close": 195.33
+ },
+ {
+ "Date": "2024-12-25",
+ "Open": 197.24,
+ "High": 198.3,
+ "Low": 196.44,
+ "Close": 196.72
+ },
+ {
+ "Date": "2024-12-26",
+ "Open": 197.82,
+ "High": 197.94,
+ "Low": 196.01,
+ "Close": 197.9
+ },
+ {
+ "Date": "2024-12-27",
+ "Open": 197.57,
+ "High": 198.09,
+ "Low": 195.95,
+ "Close": 196.75
+ },
+ {
+ "Date": "2024-12-30",
+ "Open": 195.06,
+ "High": 196.38,
+ "Low": 193.09,
+ "Close": 193.41
+ },
+ {
+ "Date": "2024-12-31",
+ "Open": 193.53,
+ "High": 194.26,
+ "Low": 192.13,
+ "Close": 192.3
+ },
+ {
+ "Date": "2025-01-01",
+ "Open": 190.38,
+ "High": 191.1,
+ "Low": 189.02,
+ "Close": 189.31
+ },
+ {
+ "Date": "2025-01-02",
+ "Open": 188.98,
+ "High": 189.05,
+ "Low": 187.3,
+ "Close": 188.03
+ },
+ {
+ "Date": "2025-01-03",
+ "Open": 187.74,
+ "High": 187.81,
+ "Low": 187.22,
+ "Close": 187.55
+ },
+ {
+ "Date": "2025-01-06",
+ "Open": 186.09,
+ "High": 187.14,
+ "Low": 185.52,
+ "Close": 186.66
+ },
+ {
+ "Date": "2025-01-07",
+ "Open": 186.16,
+ "High": 188.01,
+ "Low": 185.81,
+ "Close": 187.76
+ },
+ {
+ "Date": "2025-01-08",
+ "Open": 188.28,
+ "High": 188.85,
+ "Low": 187.06,
+ "Close": 187.32
+ },
+ {
+ "Date": "2025-01-09",
+ "Open": 187.65,
+ "High": 189.42,
+ "Low": 187.23,
+ "Close": 188.99
+ },
+ {
+ "Date": "2025-01-10",
+ "Open": 188.68,
+ "High": 190.2,
+ "Low": 186.71,
+ "Close": 189.95
+ },
+ {
+ "Date": "2025-01-13",
+ "Open": 189.19,
+ "High": 189.35,
+ "Low": 188.07,
+ "Close": 189.22
+ },
+ {
+ "Date": "2025-01-14",
+ "Open": 188.09,
+ "High": 189.68,
+ "Low": 187.77,
+ "Close": 188.92
+ },
+ {
+ "Date": "2025-01-15",
+ "Open": 188.84,
+ "High": 190.76,
+ "Low": 187.79,
+ "Close": 189.05
+ },
+ {
+ "Date": "2025-01-16",
+ "Open": 190.87,
+ "High": 191.81,
+ "Low": 190.07,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-01-17",
+ "Open": 191.0,
+ "High": 192.4,
+ "Low": 189.38,
+ "Close": 191.28
+ },
+ {
+ "Date": "2025-01-20",
+ "Open": 189.67,
+ "High": 190.07,
+ "Low": 189.32,
+ "Close": 189.81
+ },
+ {
+ "Date": "2025-01-21",
+ "Open": 189.37,
+ "High": 190.71,
+ "Low": 188.05,
+ "Close": 188.89
+ },
+ {
+ "Date": "2025-01-22",
+ "Open": 188.01,
+ "High": 189.31,
+ "Low": 186.59,
+ "Close": 187.2
+ },
+ {
+ "Date": "2025-01-23",
+ "Open": 187.45,
+ "High": 188.25,
+ "Low": 186.99,
+ "Close": 187.91
+ },
+ {
+ "Date": "2025-01-24",
+ "Open": 187.36,
+ "High": 187.55,
+ "Low": 186.89,
+ "Close": 187.43
+ },
+ {
+ "Date": "2025-01-27",
+ "Open": 187.43,
+ "High": 187.56,
+ "Low": 186.49,
+ "Close": 186.5
+ },
+ {
+ "Date": "2025-01-28",
+ "Open": 188.4,
+ "High": 189.15,
+ "Low": 187.29,
+ "Close": 188.28
+ },
+ {
+ "Date": "2025-01-29",
+ "Open": 189.36,
+ "High": 189.64,
+ "Low": 189.25,
+ "Close": 189.6
+ },
+ {
+ "Date": "2025-01-30",
+ "Open": 190.83,
+ "High": 192.32,
+ "Low": 189.02,
+ "Close": 189.09
+ },
+ {
+ "Date": "2025-01-31",
+ "Open": 190.72,
+ "High": 191.82,
+ "Low": 190.59,
+ "Close": 191.13
+ },
+ {
+ "Date": "2025-02-03",
+ "Open": 193.03,
+ "High": 194.31,
+ "Low": 191.75,
+ "Close": 193.04
+ },
+ {
+ "Date": "2025-02-04",
+ "Open": 194.85,
+ "High": 194.97,
+ "Low": 194.33,
+ "Close": 194.61
+ },
+ {
+ "Date": "2025-02-05",
+ "Open": 194.15,
+ "High": 194.31,
+ "Low": 193.1,
+ "Close": 193.53
+ },
+ {
+ "Date": "2025-02-06",
+ "Open": 192.71,
+ "High": 193.71,
+ "Low": 192.3,
+ "Close": 192.42
+ },
+ {
+ "Date": "2025-02-07",
+ "Open": 193.56,
+ "High": 195.06,
+ "Low": 192.39,
+ "Close": 194.3
+ },
+ {
+ "Date": "2025-02-10",
+ "Open": 194.13,
+ "High": 195.49,
+ "Low": 193.23,
+ "Close": 194.15
+ },
+ {
+ "Date": "2025-02-11",
+ "Open": 193.87,
+ "High": 194.28,
+ "Low": 191.88,
+ "Close": 193.85
+ },
+ {
+ "Date": "2025-02-12",
+ "Open": 194.08,
+ "High": 194.92,
+ "Low": 193.29,
+ "Close": 194.37
+ },
+ {
+ "Date": "2025-02-13",
+ "Open": 195.95,
+ "High": 196.12,
+ "Low": 194.59,
+ "Close": 194.76
+ },
+ {
+ "Date": "2025-02-14",
+ "Open": 196.67,
+ "High": 197.2,
+ "Low": 195.87,
+ "Close": 197.07
+ },
+ {
+ "Date": "2025-02-17",
+ "Open": 197.8,
+ "High": 198.45,
+ "Low": 197.39,
+ "Close": 198.1
+ },
+ {
+ "Date": "2025-02-18",
+ "Open": 196.5,
+ "High": 196.53,
+ "Low": 196.42,
+ "Close": 196.49
+ },
+ {
+ "Date": "2025-02-19",
+ "Open": 198.21,
+ "High": 199.98,
+ "Low": 196.75,
+ "Close": 199.62
+ },
+ {
+ "Date": "2025-02-20",
+ "Open": 199.75,
+ "High": 200.36,
+ "Low": 198.57,
+ "Close": 199.63
+ },
+ {
+ "Date": "2025-02-21",
+ "Open": 197.92,
+ "High": 199.83,
+ "Low": 195.96,
+ "Close": 196.73
+ },
+ {
+ "Date": "2025-02-24",
+ "Open": 197.58,
+ "High": 198.27,
+ "Low": 196.56,
+ "Close": 197.9
+ },
+ {
+ "Date": "2025-02-25",
+ "Open": 199.68,
+ "High": 199.99,
+ "Low": 199.67,
+ "Close": 199.96
+ },
+ {
+ "Date": "2025-02-26",
+ "Open": 200.89,
+ "High": 202.56,
+ "Low": 200.44,
+ "Close": 201.75
+ },
+ {
+ "Date": "2025-02-27",
+ "Open": 203.12,
+ "High": 204.07,
+ "Low": 202.32,
+ "Close": 203.07
+ },
+ {
+ "Date": "2025-02-28",
+ "Open": 203.29,
+ "High": 204.58,
+ "Low": 201.8,
+ "Close": 203.09
+ },
+ {
+ "Date": "2025-03-03",
+ "Open": 204.76,
+ "High": 205.95,
+ "Low": 204.23,
+ "Close": 205.26
+ },
+ {
+ "Date": "2025-03-04",
+ "Open": 205.83,
+ "High": 206.98,
+ "Low": 205.09,
+ "Close": 205.66
+ },
+ {
+ "Date": "2025-03-05",
+ "Open": 206.2,
+ "High": 207.54,
+ "Low": 204.63,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-03-06",
+ "Open": 204.69,
+ "High": 205.3,
+ "Low": 204.17,
+ "Close": 205.09
+ },
+ {
+ "Date": "2025-03-07",
+ "Open": 203.85,
+ "High": 204.63,
+ "Low": 202.53,
+ "Close": 204.25
+ },
+ {
+ "Date": "2025-03-10",
+ "Open": 206.23,
+ "High": 207.04,
+ "Low": 204.61,
+ "Close": 206.76
+ },
+ {
+ "Date": "2025-03-11",
+ "Open": 205.49,
+ "High": 205.94,
+ "Low": 203.95,
+ "Close": 205.46
+ },
+ {
+ "Date": "2025-03-12",
+ "Open": 203.83,
+ "High": 204.1,
+ "Low": 203.11,
+ "Close": 204.04
+ },
+ {
+ "Date": "2025-03-13",
+ "Open": 203.66,
+ "High": 205.08,
+ "Low": 203.03,
+ "Close": 203.39
+ },
+ {
+ "Date": "2025-03-14",
+ "Open": 203.25,
+ "High": 203.33,
+ "Low": 202.56,
+ "Close": 202.58
+ },
+ {
+ "Date": "2025-03-17",
+ "Open": 203.82,
+ "High": 205.4,
+ "Low": 203.6,
+ "Close": 204.42
+ },
+ {
+ "Date": "2025-03-18",
+ "Open": 204.05,
+ "High": 204.1,
+ "Low": 203.78,
+ "Close": 203.93
+ },
+ {
+ "Date": "2025-03-19",
+ "Open": 204.4,
+ "High": 205.85,
+ "Low": 203.03,
+ "Close": 203.06
+ },
+ {
+ "Date": "2025-03-20",
+ "Open": 203.74,
+ "High": 203.82,
+ "Low": 203.11,
+ "Close": 203.66
+ },
+ {
+ "Date": "2025-03-21",
+ "Open": 205.41,
+ "High": 206.08,
+ "Low": 203.65,
+ "Close": 205.55
+ },
+ {
+ "Date": "2025-03-24",
+ "Open": 204.87,
+ "High": 206.03,
+ "Low": 204.11,
+ "Close": 205.9
+ },
+ {
+ "Date": "2025-03-25",
+ "Open": 206.51,
+ "High": 208.2,
+ "Low": 205.47,
+ "Close": 205.93
+ },
+ {
+ "Date": "2025-03-26",
+ "Open": 207.88,
+ "High": 209.87,
+ "Low": 206.21,
+ "Close": 208.94
+ },
+ {
+ "Date": "2025-03-27",
+ "Open": 208.24,
+ "High": 208.93,
+ "Low": 206.62,
+ "Close": 207.73
+ },
+ {
+ "Date": "2025-03-28",
+ "Open": 205.85,
+ "High": 206.28,
+ "Low": 205.57,
+ "Close": 205.58
+ },
+ {
+ "Date": "2025-03-31",
+ "Open": 206.61,
+ "High": 206.68,
+ "Low": 205.31,
+ "Close": 205.47
+ },
+ {
+ "Date": "2025-04-01",
+ "Open": 206.32,
+ "High": 207.32,
+ "Low": 205.77,
+ "Close": 206.75
+ },
+ {
+ "Date": "2025-04-02",
+ "Open": 205.13,
+ "High": 205.3,
+ "Low": 204.89,
+ "Close": 205.03
+ },
+ {
+ "Date": "2025-04-03",
+ "Open": 204.62,
+ "High": 205.7,
+ "Low": 203.28,
+ "Close": 205.57
+ },
+ {
+ "Date": "2025-04-04",
+ "Open": 206.18,
+ "High": 207.23,
+ "Low": 204.98,
+ "Close": 206.03
+ },
+ {
+ "Date": "2025-04-07",
+ "Open": 207.74,
+ "High": 209.45,
+ "Low": 206.4,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-08",
+ "Open": 208.98,
+ "High": 209.29,
+ "Low": 207.81,
+ "Close": 209.03
+ },
+ {
+ "Date": "2025-04-09",
+ "Open": 207.83,
+ "High": 208.36,
+ "Low": 206.36,
+ "Close": 207.32
+ },
+ {
+ "Date": "2025-04-10",
+ "Open": 208.76,
+ "High": 209.78,
+ "Low": 208.08,
+ "Close": 209.55
+ },
+ {
+ "Date": "2025-04-11",
+ "Open": 211.32,
+ "High": 212.24,
+ "Low": 210.25,
+ "Close": 210.52
+ },
+ {
+ "Date": "2025-04-14",
+ "Open": 209.02,
+ "High": 209.1,
+ "Low": 208.82,
+ "Close": 208.9
+ },
+ {
+ "Date": "2025-04-15",
+ "Open": 208.19,
+ "High": 210.07,
+ "Low": 207.67,
+ "Close": 208.02
+ },
+ {
+ "Date": "2025-04-16",
+ "Open": 206.89,
+ "High": 206.91,
+ "Low": 206.49,
+ "Close": 206.57
+ },
+ {
+ "Date": "2025-04-17",
+ "Open": 207.69,
+ "High": 208.0,
+ "Low": 207.09,
+ "Close": 207.9
+ },
+ {
+ "Date": "2025-04-18",
+ "Open": 209.08,
+ "High": 210.92,
+ "Low": 208.09,
+ "Close": 209.23
+ },
+ {
+ "Date": "2025-04-21",
+ "Open": 207.32,
+ "High": 208.94,
+ "Low": 206.62,
+ "Close": 206.91
+ },
+ {
+ "Date": "2025-04-22",
+ "Open": 205.61,
+ "High": 207.41,
+ "Low": 203.83,
+ "Close": 206.05
+ },
+ {
+ "Date": "2025-04-23",
+ "Open": 205.79,
+ "High": 207.41,
+ "Low": 204.24,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-04-24",
+ "Open": 206.83,
+ "High": 207.27,
+ "Low": 206.48,
+ "Close": 206.77
+ },
+ {
+ "Date": "2025-04-25",
+ "Open": 208.7,
+ "High": 209.27,
+ "Low": 206.81,
+ "Close": 208.95
+ },
+ {
+ "Date": "2025-04-28",
+ "Open": 207.78,
+ "High": 208.79,
+ "Low": 206.42,
+ "Close": 207.66
+ },
+ {
+ "Date": "2025-04-29",
+ "Open": 207.19,
+ "High": 208.82,
+ "Low": 206.03,
+ "Close": 206.85
+ },
+ {
+ "Date": "2025-04-30",
+ "Open": 205.48,
+ "High": 207.14,
+ "Low": 203.65,
+ "Close": 205.97
+ },
+ {
+ "Date": "2025-05-01",
+ "Open": 207.46,
+ "High": 207.8,
+ "Low": 206.95,
+ "Close": 207.71
+ },
+ {
+ "Date": "2025-05-02",
+ "Open": 208.69,
+ "High": 210.44,
+ "Low": 208.09,
+ "Close": 208.85
+ },
+ {
+ "Date": "2025-05-05",
+ "Open": 206.89,
+ "High": 207.54,
+ "Low": 205.18,
+ "Close": 207.0
+ },
+ {
+ "Date": "2025-05-06",
+ "Open": 206.09,
+ "High": 206.99,
+ "Low": 205.08,
+ "Close": 206.5
+ },
+ {
+ "Date": "2025-05-07",
+ "Open": 207.6,
+ "High": 208.61,
+ "Low": 207.34,
+ "Close": 207.56
+ },
+ {
+ "Date": "2025-05-08",
+ "Open": 207.25,
+ "High": 208.68,
+ "Low": 206.94,
+ "Close": 208.42
+ },
+ {
+ "Date": "2025-05-09",
+ "Open": 210.13,
+ "High": 210.97,
+ "Low": 208.81,
+ "Close": 209.58
+ },
+ {
+ "Date": "2025-05-12",
+ "Open": 209.39,
+ "High": 211.16,
+ "Low": 208.3,
+ "Close": 208.59
+ },
+ {
+ "Date": "2025-05-13",
+ "Open": 207.77,
+ "High": 209.75,
+ "Low": 206.92,
+ "Close": 208.67
+ },
+ {
+ "Date": "2025-05-14",
+ "Open": 206.79,
+ "High": 208.59,
+ "Low": 206.41,
+ "Close": 206.84
+ },
+ {
+ "Date": "2025-05-15",
+ "Open": 206.3,
+ "High": 207.25,
+ "Low": 205.95,
+ "Close": 206.8
+ },
+ {
+ "Date": "2025-05-16",
+ "Open": 207.51,
+ "High": 207.67,
+ "Low": 207.46,
+ "Close": 207.53
+ },
+ {
+ "Date": "2025-05-19",
+ "Open": 206.48,
+ "High": 207.63,
+ "Low": 205.08,
+ "Close": 205.61
+ },
+ {
+ "Date": "2025-05-20",
+ "Open": 203.94,
+ "High": 204.3,
+ "Low": 203.02,
+ "Close": 204.24
+ },
+ {
+ "Date": "2025-05-21",
+ "Open": 205.51,
+ "High": 206.12,
+ "Low": 203.69,
+ "Close": 204.55
+ },
+ {
+ "Date": "2025-05-22",
+ "Open": 206.54,
+ "High": 207.86,
+ "Low": 205.79,
+ "Close": 207.52
+ },
+ {
+ "Date": "2025-05-23",
+ "Open": 206.62,
+ "High": 206.83,
+ "Low": 205.6,
+ "Close": 206.41
+ },
+ {
+ "Date": "2025-05-26",
+ "Open": 205.45,
+ "High": 206.31,
+ "Low": 205.24,
+ "Close": 206.04
+ },
+ {
+ "Date": "2025-05-27",
+ "Open": 205.84,
+ "High": 207.09,
+ "Low": 204.75,
+ "Close": 205.78
+ },
+ {
+ "Date": "2025-05-28",
+ "Open": 203.97,
+ "High": 204.23,
+ "Low": 203.95,
+ "Close": 204.23
+ },
+ {
+ "Date": "2025-05-29",
+ "Open": 202.26,
+ "High": 203.82,
+ "Low": 201.83,
+ "Close": 203.49
+ },
+ {
+ "Date": "2025-05-30",
+ "Open": 201.88,
+ "High": 203.77,
+ "Low": 199.91,
+ "Close": 201.62
+ },
+ {
+ "Date": "2025-06-02",
+ "Open": 201.67,
+ "High": 202.33,
+ "Low": 200.18,
+ "Close": 201.65
+ },
+ {
+ "Date": "2025-06-03",
+ "Open": 200.18,
+ "High": 202.16,
+ "Low": 198.46,
+ "Close": 200.46
+ },
+ {
+ "Date": "2025-06-04",
+ "Open": 199.98,
+ "High": 201.84,
+ "Low": 198.49,
+ "Close": 199.42
+ },
+ {
+ "Date": "2025-06-05",
+ "Open": 199.6,
+ "High": 201.07,
+ "Low": 199.46,
+ "Close": 200.74
+ },
+ {
+ "Date": "2025-06-06",
+ "Open": 202.07,
+ "High": 203.96,
+ "Low": 200.85,
+ "Close": 203.31
+ },
+ {
+ "Date": "2025-06-09",
+ "Open": 202.02,
+ "High": 203.92,
+ "Low": 200.35,
+ "Close": 202.19
+ },
+ {
+ "Date": "2025-06-10",
+ "Open": 200.88,
+ "High": 202.7,
+ "Low": 199.06,
+ "Close": 200.81
+ },
+ {
+ "Date": "2025-06-11",
+ "Open": 198.92,
+ "High": 199.22,
+ "Low": 198.67,
+ "Close": 198.98
+ },
+ {
+ "Date": "2025-06-12",
+ "Open": 200.04,
+ "High": 200.28,
+ "Low": 198.93,
+ "Close": 200.03
+ },
+ {
+ "Date": "2025-06-13",
+ "Open": 199.54,
+ "High": 199.56,
+ "Low": 199.37,
+ "Close": 199.46
+ },
+ {
+ "Date": "2025-06-16",
+ "Open": 200.74,
+ "High": 201.1,
+ "Low": 199.3,
+ "Close": 199.31
+ },
+ {
+ "Date": "2025-06-17",
+ "Open": 200.32,
+ "High": 202.23,
+ "Low": 198.89,
+ "Close": 201.73
+ }
+]
\ No newline at end of file
diff --git a/typescript/src/app/chart/image/amazon.png b/typescript/src/app/chart/image/amazon.png
new file mode 100644
index 0000000..2805452
Binary files /dev/null and b/typescript/src/app/chart/image/amazon.png differ
diff --git a/typescript/src/app/chart/image/google.png b/typescript/src/app/chart/image/google.png
new file mode 100644
index 0000000..2509038
Binary files /dev/null and b/typescript/src/app/chart/image/google.png differ
diff --git a/typescript/src/app/chart/image/microsoft.png b/typescript/src/app/chart/image/microsoft.png
new file mode 100644
index 0000000..60dc2d4
Binary files /dev/null and b/typescript/src/app/chart/image/microsoft.png differ
diff --git a/typescript/src/app/chart/image/tesla.png b/typescript/src/app/chart/image/tesla.png
new file mode 100644
index 0000000..5fc6954
Binary files /dev/null and b/typescript/src/app/chart/image/tesla.png differ
diff --git a/typescript/src/app/chart/stockForecasting/index.html b/typescript/src/app/chart/stockForecasting/index.html
new file mode 100644
index 0000000..5b5ff1e
--- /dev/null
+++ b/typescript/src/app/chart/stockForecasting/index.html
@@ -0,0 +1,64 @@
+
+
+
+
+
+ Stock Forecasting
+
+
+
+
+
+
+
+
Stock Forecasting
+
+
+
+ The Stock Forecasting sample uses Syncfusion Charts to visualize historical stock data and predict future trends using AI.
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/typescript/src/app/chart/stockForecasting/stockForecast.css b/typescript/src/app/chart/stockForecasting/stockForecast.css
new file mode 100644
index 0000000..a00cc26
--- /dev/null
+++ b/typescript/src/app/chart/stockForecasting/stockForecast.css
@@ -0,0 +1,173 @@
+.para {
+ padding-top: 5px;
+}
+
+.stock-info {
+ display: flex;
+ align-items: flex-start;
+ gap: 16px;
+ margin-left: 10px;
+ padding: 5px;
+}
+
+.price {
+ font-size: 20px;
+ font-weight: bold;
+ padding-right: 2px;
+}
+
+.stock-icon {
+ vertical-align: middle;
+ margin-right: 8px;
+}
+
+.control-section {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ flex-wrap: nowrap;
+ align-content: center;
+ flex-direction: column;
+}
+
+.sidebar {
+ display: flex;
+ flex-direction: column;
+}
+
+.stock-dropdownbar {
+ display: flex;
+}
+
+.stock-selection {
+ padding: 5px;
+}
+
+.main-content {
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.control-bar {
+ display: flex;
+ align-items: baseline;
+ column-gap: 770px;
+}
+
+.range-buttons .e-btn-group {
+ display: flex;
+}
+
+.chart-controls {
+ position: relative;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+
+.chart-container {
+ position: relative;
+ flex-grow: 1;
+ overflow: hidden;
+}
+
+#chartWrapper {
+ height: 100%;
+}
+
+#stock-change {
+ margin: 0;
+}
+
+/* Syncfusion Button and Spinner Styles */
+.chart-action-button {
+ width: 40px;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #6f16ef;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
+ position: relative;
+ padding: 0;
+}
+
+.chart-action-button:hover {
+ background-color: #5811c9;
+}
+
+.chart-action-button .e-btn-icon.e-icons {
+ color: #fff;
+ font-size: 20px;
+}
+
+.chart-spinner-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 1000;
+}
+
+.chart-spinner-overlay .e-spinner {
+ width: 20px;
+ height: 20px;
+}
+
+/* DropDownButton Styles */
+#stock-dropdown .e-dropdown-btn {
+ padding: 5px 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+#stock-dropdown .e-dropdown-popup .e-item {
+ padding: 5px 10px;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+#stock-dropdown .e-dropdown-btn .stock-icon,
+#stock-dropdown .e-dropdown-popup .e-item .stock-icon {
+ width: 20px;
+ height: 20px;
+ margin-right: 8px;
+}
+
+.stock-icon {
+ width: 20px;
+ height: 20px;
+ display: inline-block;
+ background-size: contain;
+ background-repeat: no-repeat;
+ margin-right: 8px;
+ vertical-align: middle;
+}
+
+/* Now point directly to /image/ because served from src/public */
+.e-logo-msft {
+ background-image: url('../image/microsoft.png');
+}
+
+.e-logo-goog {
+ background-image: url('../image/google.png');
+}
+
+.e-logo-amzn {
+ background-image: url('../image/amazon.png');
+}
+
+.e-logo-tsla {
+ background-image: url('../image/tesla.png');
+}
\ No newline at end of file
diff --git a/typescript/src/app/chart/stockForecasting/stockForecast.ts b/typescript/src/app/chart/stockForecasting/stockForecast.ts
new file mode 100644
index 0000000..150474c
--- /dev/null
+++ b/typescript/src/app/chart/stockForecasting/stockForecast.ts
@@ -0,0 +1,322 @@
+import {
+ Chart, CandleSeries, LineSeries, HiloOpenCloseSeries, DateTime, Crosshair, Tooltip, Legend,
+ ILoadedEventArgs, ChartTheme
+} from '@syncfusion/ej2-charts';
+import { Button } from '@syncfusion/ej2-buttons';
+import { DropDownList } from '@syncfusion/ej2-dropdowns';
+import { DropDownButton, ItemModel } from '@syncfusion/ej2-splitbuttons';
+import { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';
+
+// Import JSON data directly
+import msftData from '../data/msft-data.json';
+import googData from '../data/goog-data.json';
+import amznData from '../data/amzn-data.json';
+import tslaData from '../data/tsla-data.json';
+
+
+Chart.Inject(CandleSeries, LineSeries, HiloOpenCloseSeries, DateTime, Crosshair, Tooltip, Legend);
+
+interface StockInfo {
+ symbol: string;
+ text: string;
+ close: number;
+ change: number;
+ percentChange: number;
+}
+
+interface ChartPoint {
+ date: Date;
+ high: number;
+ low: number;
+ open: number;
+ close: number;
+}
+
+class StockForecasting {
+ private chart: Chart;
+ private selectedSymbol: string = 'MSFT';
+ private selectedSeriesType: string = 'Candle';
+ private selectedRange: number = 3;
+ private chartData: ChartPoint[] = [];
+ private stripStartDate: Date = new Date();
+ private stripEndDate: Date = new Date();
+ private selectedStockInfo: StockInfo | null = null;
+ private chartWrapper: HTMLElement;
+
+ constructor() {
+ this.chart = null!;
+ this.chartWrapper = document.getElementById('chartWrapper')!;
+ this.selectedStockInfo = this.getDefaultStockInfo(this.selectedSymbol);
+ this.initializeChart();
+ this.initializeAIButton();
+ this.initializeSeriesDropdown();
+ this.initializeRangeButtons();
+ this.loadChartData();
+ this.updateStockInfoDisplay();
+ }
+
+ private initializeChart(): void {
+ this.chart = new Chart({
+ primaryXAxis: {
+ valueType: 'DateTime',
+ labelFormat: 'MMM yyyy',
+ crosshairTooltip: { enable: true },
+ majorGridLines: { width: 0 },
+ stripLines: [{ start: this.stripStartDate, end: this.stripEndDate, color: '#E0E0E0', }]
+ },
+ primaryYAxis: {
+ rangePadding: 'None',
+ labelFormat: 'n0',
+ lineStyle: { width: 0 },
+ majorTickLines: { width: 0 }
+ },
+ legendSettings: { visible: false },
+ tooltip: { enable: true, shared: true, header: '' },
+ crosshair: { enable: true, lineType: 'Vertical' },
+ series: [],
+ chartArea: { border: { width: 0 } },
+ width: '100%',
+ theme: this.getTheme(),
+ load: this.onChartLoad.bind(this)
+ });
+ this.chart.appendTo('#chart-container');
+ }
+
+ private getTheme(): ChartTheme {
+ const mode = window.location.href.includes('dark') ? 'Dark' : 'Light';
+ return `Material${mode}` as ChartTheme;
+ }
+
+ private onChartLoad(args: ILoadedEventArgs): void {
+ args.chart.theme = this.getTheme();
+ }
+
+ private getDefaultStockInfo(symbol: string): StockInfo {
+ switch (symbol) {
+ case 'MSFT': return { symbol: 'MSFT', text: 'Microsoft Corp', close: 138.35, change: -2.0, percentChange: -0.22 };
+ case 'GOOG': return { symbol: 'GOOG', text: 'Alphabet Inc', close: 152.83, change: -2.0, percentChange: -0.22 };
+ case 'AMZN': return { symbol: 'AMZN', text: 'Amazon Inc', close: 222.27, change: -2.0, percentChange: -0.22 };
+ case 'TSLA': return { symbol: 'TSLA', text: 'Tesla Inc', close: 201.73, change: -2.0, percentChange: -0.22 };
+ default: return { symbol, text: '', close: 0.0, change: 0.0, percentChange: 0.0 };
+ }
+ }
+
+ private loadChartData(): void {
+ try {
+ let json: any[] = [];
+
+ if (this.selectedSymbol === "GOOG") json = googData;
+ else if (this.selectedSymbol === "AMZN") json = amznData;
+ else if (this.selectedSymbol === "TSLA") json = tslaData;
+ else { json = msftData; this.selectedSymbol = "MSFT"; }
+
+ if (!json || json.length === 0) {
+ console.warn(`No data found for symbol: ${this.selectedSymbol}`);
+ this.chartData = [];
+ this.renderChart();
+ return;
+ }
+
+ const allData: ChartPoint[] = json.map((d: any) => ({
+ date: new Date(d.date || d.Date),
+ high: Number(d.high ?? d.High),
+ low: Number(d.low ?? d.Low),
+ open: Number(d.open ?? d.Open),
+ close: Number(d.close ?? d.Close)
+ }));
+
+ this.chartData = this.filterChartData(allData, this.selectedRange);
+ this.renderChart();
+ this.updateStockInfoDisplay();
+ } catch (error) {
+ console.error("Error loading chart data:", error);
+ this.chartData = [];
+ this.renderChart();
+ }
+ }
+
+ private filterChartData(allData: ChartPoint[], months: number): ChartPoint[] {
+ if (allData.length) {
+ this.stripStartDate = allData[0].date;
+ this.stripEndDate = allData[allData.length - 1].date;
+ } else {
+ this.stripStartDate = this.stripEndDate = new Date();
+ }
+ const latestDate = new Date(Math.max(...allData.map(p => p.date.getTime())));
+ const cutoffDate = new Date(latestDate);
+ const intendedMonth = latestDate.getMonth() - months + 1;
+ cutoffDate.setMonth(intendedMonth);
+ if (cutoffDate.getMonth() !== intendedMonth) cutoffDate.setDate(0);
+ return allData.filter(p => p.date >= cutoffDate).sort((a, b) => a.date.getTime() - b.date.getTime());
+ }
+
+ private renderChart(): void {
+ this.chart!.series = [{
+ dataSource: this.chartData,
+ xName: 'date',
+ type: this.selectedSeriesType as 'Candle' | 'Line' | 'HiloOpenClose',
+ name: this.selectedStockInfo?.text,
+ high: this.selectedSeriesType !== 'Line' ? 'high' : undefined,
+ low: this.selectedSeriesType !== 'Line' ? 'low' : undefined,
+ open: this.selectedSeriesType !== 'Line' ? 'open' : undefined,
+ close: this.selectedSeriesType !== 'Line' ? 'close' : undefined,
+ yName: this.selectedSeriesType === 'Line' ? 'close' : undefined,
+ bearFillColor: this.selectedSeriesType === 'Candle' ? '#2ecd71' : undefined,
+ bullFillColor: this.selectedSeriesType === 'Candle' ? '#e74c3d' : undefined
+ }];
+ this.chart!.primaryXAxis.stripLines = [{
+ start: this.stripStartDate,
+ end: this.stripEndDate,
+ color: '#E0E0E0'
+ }];
+ this.chart!.refresh();
+ }
+
+ private updateStockInfoDisplay(): void {
+ const stockText = document.getElementById('stock-text');
+ const stockClose = document.getElementById('stock-close');
+ const stockChange = document.getElementById('stock-change');
+
+ if (stockText && stockClose && stockChange && this.selectedStockInfo) {
+ stockText.textContent = this.selectedStockInfo.text || '';
+ stockClose.textContent = this.selectedStockInfo.close.toString();
+ stockChange.textContent = `${this.selectedStockInfo.change} ${this.selectedStockInfo.percentChange}%`;
+ stockChange.style.color = this.selectedStockInfo.change >= 0 ? 'green' : 'red';
+ }
+ }
+
+ private initializeAIButton(): void {
+ const button = new Button({
+ cssClass: 'chart-action-button',
+ isPrimary: true,
+ iconCss: 'e-icons e-chat'
+
+ });
+ button.appendTo('#aiAssistBtn');
+
+ button.element.addEventListener('click', async () => {
+ await this.simulateAiAssist();
+ });
+ }
+
+ private async simulateAiAssist(): Promise {
+ const target = document.getElementById("chartWrapper");
+ if (!target) return;
+
+ // Create spinner if not already present
+ if (!target.querySelector(".e-spinner-pane")) {
+ createSpinner({ target });
+ }
+ showSpinner(target);
+
+ try {
+ const response = await fetch("https://your-backend-api/forecast", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({
+ symbol: this.selectedSymbol,
+ data: this.chartData,
+ }),
+ });
+
+ if (!response.ok) {
+ throw new Error(`Forecast API failed: ${response.status}`);
+ }
+
+ const forecastData: any[] = await response.json();
+ const nextData: ChartPoint[] = forecastData.map((d: any) => ({
+ date: new Date(d.date),
+ open: Number(d.open),
+ high: Number(d.high),
+ low: Number(d.low),
+ close: Number(d.close),
+ }));
+
+ // Append forecast points to chart data
+ this.chartData.push(...nextData);
+
+ // Update chart
+ if (this.chart && this.chart.series.length > 0) {
+ this.chart.series[0].dataSource = this.chartData;
+ this.chart.refresh();
+ }
+ } catch (err) {
+ console.error("AI Assist failed:", err);
+ } finally {
+ hideSpinner(target);
+ }
+ }
+
+ private initializeSeriesDropdown(): void {
+ const seriesOptions: string[] = ['Candle', 'Line', 'HiloOpenClose'];
+
+ const dropDownObj: DropDownList = new DropDownList({
+ dataSource: seriesOptions,
+ value: this.selectedSeriesType, // keep default as current selected
+ placeholder: 'Select Chart Type',
+ change: (args) => {
+ this.selectedSeriesType = args.value as string;
+ this.renderChart(); // refresh chart on series type change
+ }
+ });
+
+ dropDownObj.appendTo('#series-dropdown');
+ }
+
+ private initializeRangeButtons(): void {
+ const button3M = new Button({ content: '3 Month', cssClass: 'range-button' });
+ button3M.appendTo('#btn-3m');
+ button3M.element.addEventListener('click', () => {
+ this.selectedRange = 3;
+ this.loadChartData();
+ });
+
+ const button6M = new Button({ content: '6 Month', cssClass: 'range-button' });
+ button6M.appendTo('#btn-6m');
+ button6M.element.addEventListener('click', () => {
+ this.selectedRange = 6;
+ this.loadChartData();
+ });
+
+ const button12M = new Button({ content: '1 Year', cssClass: 'range-button' });
+ button12M.appendTo('#btn-12m');
+ button12M.element.addEventListener('click', () => {
+ this.selectedRange = 12;
+ this.loadChartData();
+ });
+ }
+
+
+
+ public initializeStockDropdown(): void {
+ const items: ItemModel[] = [
+ { text: 'MSFT', id: 'MSFT', iconCss: 'e-logo-msft stock-icon' },
+ { text: 'GOOG', id: 'GOOG', iconCss: 'e-logo-goog stock-icon' },
+ { text: 'AMZN', id: 'AMZN', iconCss: 'e-logo-amzn stock-icon' },
+ { text: 'TSLA', id: 'TSLA', iconCss: 'e-logo-tsla stock-icon' }
+ ];
+
+ const dropDownButton = new DropDownButton({
+ items,
+ content: ` MSFT`,
+ select: (args: { item: ItemModel }) => {
+ this.selectedSymbol = args.item.id as string;
+ this.selectedStockInfo = this.getDefaultStockInfo(this.selectedSymbol);
+ this.loadChartData();
+ this.updateStockInfoDisplay();
+ dropDownButton.content = ` ${args.item.text}`;
+ },
+ beforeItemRender: (args: { element: HTMLElement; item: ItemModel }) => {
+ args.element.innerHTML = ` ${args.item.text}`;
+ }
+ });
+
+ dropDownButton.appendTo('#stock-dropdown');
+ }
+
+}
+
+document.addEventListener('DOMContentLoaded', () => {
+ const app = new StockForecasting();
+ app.initializeStockDropdown();
+});
\ No newline at end of file
diff --git a/typescript/src/index.ts b/typescript/src/index.ts
index 2b7b8ad..6d9e1cb 100644
--- a/typescript/src/index.ts
+++ b/typescript/src/index.ts
@@ -73,6 +73,11 @@ let treeData: { [key: string]: Object }[] = [
{ id: '/gantt/resource_optimization/index.html', name: 'Smart Resource Allocation' }
]
},
+ {
+ id: '9', name: 'Chart', url: '', subItems: [
+ { id: '/chart/stockForecasting/index.html', name: 'Stock Forecasting' },
+ ]
+ },
{
id:'99', name: ''
}