08:56:06 ET - [SignalsBoard] distinct types=5 ms=33
08:56:06 ET - [SignalsBoard] latest-per-symbol fetched rows=8 db_ms=488
08:56:06 ET - [SignalsBoard SQL] latest-per-symbol:
SELECT [t].[Id], [t].[CreatedAt], [t].[Direction], [t].[EntryPrice], [t].[ExitPrice], [t].[ExitResult], [t].[ExitTime], [t].[Notes], [t].[SignalType], [t].[StopLoss], [t].[Symbol], [t].[TargetPct], [t].[TargetPrice], [t].[TriggerPrice], [t].[TriggerTime], [t].[ValidationCheckedAt], [t].[ValidationExecutedAt], [t].[ValidationExecutedPrice], [t].[ValidationProfitAmount], [t].[ValidationProfitPct], [t].[ValidationResult]
FROM [dbo].[TradeSignals] AS [t]
INNER JOIN (
SELECT [t0].[Symbol], MAX([t0].[TriggerTime]) AS [MaxT]
FROM [dbo].[TradeSignals] AS [t0]
WHERE [t0].[Symbol] <> N'' AND [t0].[Direction] <> N'NEUTRAL'
GROUP BY [t0].[Symbol]
) AS [t1] ON [t].[Symbol] = [t1].[Symbol] AND [t].[TriggerTime] = [t1].[MaxT]
ORDER BY [t].[TriggerTime] DESC
08:56:05 ET - [SignalsBoard] reload start latestPerSymbol=True searchLen=0 dir='' type=''
08:56:05 ET - [SignalsBoard] OnInitializedAsync start
08:56:05 ET - [SchwabMarketDataService.Ctor] _HistoryOffsetHrs= -1
08:56:05 ET - [Ctor] QuotesUrl=https://api.schwabapi.com/marketdata/v1/quotes (All timestamps in America/New_York)
08:56:05 ET - [SignalService.Ctor] ready (All timestamps stored/retrieved/logged in America/New_York)
08:51:57 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:51:57 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:51:57 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:51:57 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:51:57 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:51:57 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:46:57 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:46:57 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:46:57 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:46:57 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:46:57 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:46:57 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:41:56 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:41:56 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:41:56 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:41:56 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:41:56 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:41:56 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:36:56 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:36:56 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:36:56 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:36:56 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:36:56 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:36:56 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:31:55 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:31:55 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:31:55 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:31:55 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:31:55 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:31:55 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:26:55 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:26:55 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:26:55 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:26:55 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:26:55 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:26:55 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:21:54 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:21:54 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:21:54 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:21:54 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:21:54 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:21:54 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:16:54 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:16:54 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:16:54 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:16:54 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:16:54 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:16:54 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:11:53 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:11:53 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:11:53 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:11:53 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:11:53 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:11:53 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:06:53 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:06:53 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:06:53 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:06:52 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:06:52 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:06:52 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
08:01:51 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
08:01:51 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
08:01:51 ET - [RefreshTokenAsync] Response status: 400 BadRequest
08:01:51 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
08:01:51 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
08:01:51 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:56:51 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:56:51 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:56:51 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:56:51 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:56:51 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:56:51 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:51:50 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:51:50 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:51:50 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:51:50 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:51:50 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:51:50 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:46:50 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:46:50 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:46:50 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:46:50 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:46:50 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:46:50 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:41:49 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:41:49 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:41:49 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:41:49 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:41:49 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:41:49 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:36:49 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:36:49 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:36:49 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:36:49 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:36:49 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:36:49 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:31:48 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:31:48 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:31:48 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:31:48 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:31:48 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:31:48 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:26:57 ET - [SignalsBoard] OnInitializedAsync done
07:26:57 ET - [SignalsBoard] reload end
07:26:57 ET - [SignalsBoard] load ok total=8 filtered=8 wall_ms=92 sw_ms=90
07:26:57 ET - [SignalsBoard] distinct types=5 ms=6
07:26:57 ET - [SignalsBoard] latest-per-symbol fetched rows=8 db_ms=30
07:26:57 ET - [SignalsBoard SQL] latest-per-symbol:
SELECT [t].[Id], [t].[CreatedAt], [t].[Direction], [t].[EntryPrice], [t].[ExitPrice], [t].[ExitResult], [t].[ExitTime], [t].[Notes], [t].[SignalType], [t].[StopLoss], [t].[Symbol], [t].[TargetPct], [t].[TargetPrice], [t].[TriggerPrice], [t].[TriggerTime], [t].[ValidationCheckedAt], [t].[ValidationExecutedAt], [t].[ValidationExecutedPrice], [t].[ValidationProfitAmount], [t].[ValidationProfitPct], [t].[ValidationResult]
FROM [dbo].[TradeSignals] AS [t]
INNER JOIN (
SELECT [t0].[Symbol], MAX([t0].[TriggerTime]) AS [MaxT]
FROM [dbo].[TradeSignals] AS [t0]
WHERE [t0].[Symbol] <> N'' AND [t0].[Direction] <> N'NEUTRAL'
GROUP BY [t0].[Symbol]
) AS [t1] ON [t].[Symbol] = [t1].[Symbol] AND [t].[TriggerTime] = [t1].[MaxT]
ORDER BY [t].[TriggerTime] DESC
07:26:57 ET - [SignalsBoard] reload start latestPerSymbol=True searchLen=0 dir='' type=''
07:26:57 ET - [SignalsBoard] OnInitializedAsync start
07:26:57 ET - [SchwabMarketDataService.Ctor] _HistoryOffsetHrs= -1
07:26:57 ET - [Ctor] QuotesUrl=https://api.schwabapi.com/marketdata/v1/quotes (All timestamps in America/New_York)
07:26:57 ET - [SignalService.Ctor] ready (All timestamps stored/retrieved/logged in America/New_York)
07:26:48 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:26:48 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:26:48 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:26:47 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:26:47 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:26:47 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:21:47 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:21:47 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:21:47 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:21:47 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:21:47 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:21:47 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:19:41 ET - [Signals.Dispose] cancel CTS
07:19:41 ET - [Signals.OnInitializedAsync] end
07:19:41 ET - [LoadGrid] end elapsedMs=510
07:19:41 ET - [LoadGrid] rows=0
07:19:41 ET - [LoadGrid] filter window [2026-06-17T00:00:00.0000000, 2026-06-18T00:00:00.0000000)
07:19:41 ET - [LoadGrid] start Symbol= TradingDayLocal=2026-06-17
07:19:41 ET - [LoadAvailableSymbols] end elapsedMs=703
07:19:41 ET - [LoadAvailableSymbols] topMovers=0 tradeSymbols=12 merged=12
07:19:40 ET - [LoadAvailableSymbols] start
07:19:40 ET - [Signals.OnInitializedAsync] start
07:19:40 ET - [SchwabMarketDataService.Ctor] _HistoryOffsetHrs= -1
07:19:40 ET - [Ctor] QuotesUrl=https://api.schwabapi.com/marketdata/v1/quotes (All timestamps in America/New_York)
07:19:40 ET - [SignalService.Ctor] ready (All timestamps stored/retrieved/logged in America/New_York)
07:16:47 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:16:47 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:16:47 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:16:46 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:16:46 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:16:46 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:11:46 ET - [RefreshTokenAsync] ERROR: Token refresh failed with status BadRequest
07:11:46 ET - [RefreshTokenAsync] Response body: �e�1�0��X�;t`��:[�"l�%�q*PջS�n��{��bV��z��\8zyH�����D�v1��%o�4�pN���4@�п$��\M��(h�sz* �&��d�f&��~=d�Y�N����!֫�
07:11:46 ET - [RefreshTokenAsync] Response status: 400 BadRequest
07:11:46 ET - [RefreshTokenAsync] Request Headers: Authorization=Basic ejVwVzFGSzVwcUF6OFFabVRXNktLcmVxUWtFeWxRaUs6WFRNRDN4enFqYkdVNGN3Sw==
07:11:46 ET - [RefreshTokenAsync] POST Body: grant_type=refresh_token&refresh_token=EDm4FiTFJt_IHhNyl9vr123XCdJtvV0kZnlKq2lM3mJ106S8XDE6fE7-hVdKn1itFwUckaAvxkwbY4w_LbJ1-uprb9yXOPJX1_nIKvUzuJHDfeVxJIw44dyGMCi72CYzzeOakoA1CNg%40
07:11:46 ET - [GetAccessTokenAsync] refreshing token (expires 2025-10-10T12:56:58.5336035) (code 100)
07:11:43 ET - [Quotes] Error loading movers: A second operation was started on this context instance before a previous operation completed. This is usually caused by different threads concurrently using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.