Skip to content

Commit 774a856

Browse files
chore: update trade state after rebalance [skip ci]
1 parent 7937fea commit 774a856

2 files changed

Lines changed: 226 additions & 2 deletions

File tree

logs/paper_trade_state.json

Lines changed: 191 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"last_rebalance": "2026-03-18T14:47:39.053569",
2+
"last_rebalance": "2026-04-29T15:45:11.419331",
33
"trade_history": [
44
{
55
"date": "2026-03-18T13:26:54.767470",
@@ -746,7 +746,196 @@
746746
"reject_reason": ""
747747
}
748748
]
749+
},
750+
{
751+
"date": "2026-04-29T15:45:11.419343",
752+
"trades": [
753+
{
754+
"time": "2026-04-29T15:44:35.552149",
755+
"symbol": "CAT",
756+
"side": "sell",
757+
"qty": 3.0,
758+
"status": "filled",
759+
"price": 811.25,
760+
"signal_price": 811.475,
761+
"order_id": "cb5054b3-3743-44f9-a9b2-069d254da40b",
762+
"reject_reason": ""
763+
},
764+
{
765+
"time": "2026-04-29T15:44:40.091389",
766+
"symbol": "FCX",
767+
"side": "sell",
768+
"qty": 211.0,
769+
"status": "filled",
770+
"price": 57.04545,
771+
"signal_price": 57.06,
772+
"order_id": "c87e16c2-06f4-46ee-bc65-71e08576c5b9",
773+
"reject_reason": ""
774+
},
775+
{
776+
"time": "2026-04-29T15:44:42.531375",
777+
"symbol": "GILD",
778+
"side": "sell",
779+
"qty": 84.0,
780+
"status": "filled",
781+
"price": 129.53,
782+
"signal_price": 129.57,
783+
"order_id": "cbeec148-64d4-4d85-8b3f-68c569f559f0",
784+
"reject_reason": ""
785+
},
786+
{
787+
"time": "2026-04-29T15:44:44.953848",
788+
"symbol": "GS",
789+
"side": "sell",
790+
"qty": 3.0,
791+
"status": "filled",
792+
"price": 907.26,
793+
"signal_price": 907.45,
794+
"order_id": "96274aa1-f384-48f6-a387-689a9e2063b8",
795+
"reject_reason": ""
796+
},
797+
{
798+
"time": "2026-04-29T15:44:47.386613",
799+
"symbol": "JNJ",
800+
"side": "sell",
801+
"qty": 17.0,
802+
"status": "filled",
803+
"price": 226.91,
804+
"signal_price": 226.97,
805+
"order_id": "61bd9503-6061-4347-b3d0-c6b86c57cb79",
806+
"reject_reason": ""
807+
},
808+
{
809+
"time": "2026-04-29T15:44:48.742584",
810+
"symbol": "LRCX",
811+
"side": "sell",
812+
"qty": 8.0,
813+
"status": "filled",
814+
"price": 247.45,
815+
"signal_price": 247.55,
816+
"order_id": "ac623014-39c5-4f09-82e3-1a3900f13d64",
817+
"reject_reason": ""
818+
},
819+
{
820+
"time": "2026-04-29T15:44:51.108584",
821+
"symbol": "MU",
822+
"side": "sell",
823+
"qty": 4.0,
824+
"status": "filled",
825+
"price": 521.4,
826+
"signal_price": 521.35,
827+
"order_id": "770d7a8c-61ce-4607-91d6-fe4209da68dc",
828+
"reject_reason": ""
829+
},
830+
{
831+
"time": "2026-04-29T15:44:53.468957",
832+
"symbol": "USB",
833+
"side": "sell",
834+
"qty": 57.0,
835+
"status": "filled",
836+
"price": 55.61,
837+
"signal_price": 55.62,
838+
"order_id": "6d61dc1f-9dd5-4430-b0a0-8fef72b5ec92",
839+
"reject_reason": ""
840+
},
841+
{
842+
"time": "2026-04-29T15:44:56.837993",
843+
"symbol": "WMT",
844+
"side": "sell",
845+
"qty": 58.0,
846+
"status": "filled",
847+
"price": 126.98,
848+
"signal_price": 127.0,
849+
"order_id": "d35c26a2-04a4-446e-9951-9078131339b0",
850+
"reject_reason": ""
851+
},
852+
{
853+
"time": "2026-04-29T15:44:59.193266",
854+
"symbol": "AMAT",
855+
"side": "buy",
856+
"qty": 24,
857+
"status": "filled",
858+
"price": 381.33,
859+
"signal_price": 381.635,
860+
"order_id": "343d7976-9c96-4033-8f6c-0e440f891d75",
861+
"reject_reason": ""
862+
},
863+
{
864+
"time": "2026-04-29T15:45:01.599807",
865+
"symbol": "BMY",
866+
"side": "buy",
867+
"qty": 47,
868+
"status": "filled",
869+
"price": 58.02,
870+
"signal_price": 58.015,
871+
"order_id": "134b924a-3feb-4992-ab10-fc3e62a6221f",
872+
"reject_reason": ""
873+
},
874+
{
875+
"time": "2026-04-29T15:45:02.996270",
876+
"symbol": "C",
877+
"side": "buy",
878+
"qty": 11.0,
879+
"status": "filled",
880+
"price": 127.31,
881+
"signal_price": 127.305,
882+
"order_id": "4bccb320-e3ef-47e0-8984-8c8f5dc13c9c",
883+
"reject_reason": ""
884+
},
885+
{
886+
"time": "2026-04-29T15:45:05.433270",
887+
"symbol": "CSCO",
888+
"side": "buy",
889+
"qty": 31,
890+
"status": "filled",
891+
"price": 88.5,
892+
"signal_price": 88.495,
893+
"order_id": "a7f984e8-dc08-4725-a657-4a551af74895",
894+
"reject_reason": ""
895+
},
896+
{
897+
"time": "2026-04-29T15:45:07.885450",
898+
"symbol": "MRK",
899+
"side": "buy",
900+
"qty": 43.0,
901+
"status": "filled",
902+
"price": 110.14,
903+
"signal_price": 110.15,
904+
"order_id": "f03997d9-5eec-4d4b-895d-79ee033c69cb",
905+
"reject_reason": ""
906+
},
907+
{
908+
"time": "2026-04-29T15:45:09.329453",
909+
"symbol": "TGT",
910+
"side": "buy",
911+
"qty": 87,
912+
"status": "filled",
913+
"price": 127.39,
914+
"signal_price": 127.23,
915+
"order_id": "aab680f7-bbab-41d0-9c23-9c3633e87809",
916+
"reject_reason": ""
917+
},
918+
{
919+
"time": "2026-04-29T15:45:10.864814",
920+
"symbol": "TJX",
921+
"side": "buy",
922+
"qty": 22.0,
923+
"status": "filled",
924+
"price": 155.66,
925+
"signal_price": 155.7,
926+
"order_id": "af44f613-7348-4b8a-82e8-0b85cea17a42",
927+
"reject_reason": ""
928+
}
929+
]
749930
}
750931
],
751-
"entry_prices": {}
932+
"entry_prices": {
933+
"AMAT": 381.33,
934+
"BMY": 58.02,
935+
"C": 127.31,
936+
"CSCO": 88.5,
937+
"MRK": 110.14,
938+
"TGT": 127.39,
939+
"TJX": 155.66
940+
}
752941
}

logs/trade_events.jsonl

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,38 @@
109109
{"event": "order_submitted", "symbol": "TJX", "side": "buy", "quantity": 22.0, "order_type": "market", "limit_price": null, "signal_price": 157.21, "timestamp": "2026-04-28T20:08:00.354015Z"}
110110
{"event": "rebalance_complete", "n_filled": 0, "n_rejected": 0, "total_value_traded": 0.0, "timestamp": "2026-04-28T20:08:31.433941Z"}
111111
{"event": "reconciliation", "portfolio_value": 105847.43, "n_positions": 16, "total_abs_drift_pct": 70.01, "max_drift_symbol": "FCX", "max_drift_pct": 11.6, "timestamp": "2026-04-28T20:08:33.031594Z"}
112+
{"event": "rebalance_start", "portfolio_value": 105282.02, "n_orders": 16, "timestamp": "2026-04-29T15:44:34.119765Z"}
113+
{"event": "order_submitted", "symbol": "CAT", "side": "sell", "quantity": 3.0, "order_type": "market", "limit_price": null, "signal_price": 811.475, "timestamp": "2026-04-29T15:44:34.467862Z"}
114+
{"event": "order_filled", "symbol": "CAT", "side": "sell", "quantity": 3.0, "filled_price": 811.25, "signal_price": 811.475, "slippage_bps": 2.77, "order_id": "cb5054b3-3743-44f9-a9b2-069d254da40b", "timestamp": "2026-04-29T15:44:35.551987Z"}
115+
{"event": "order_submitted", "symbol": "FCX", "side": "sell", "quantity": 211.0, "order_type": "market", "limit_price": null, "signal_price": 57.06, "timestamp": "2026-04-29T15:44:35.943889Z"}
116+
{"event": "order_filled", "symbol": "FCX", "side": "sell", "quantity": 211.0, "filled_price": 57.04545, "signal_price": 57.06, "slippage_bps": 2.55, "order_id": "c87e16c2-06f4-46ee-bc65-71e08576c5b9", "timestamp": "2026-04-29T15:44:40.091218Z"}
117+
{"event": "order_submitted", "symbol": "GILD", "side": "sell", "quantity": 84.0, "order_type": "market", "limit_price": null, "signal_price": 129.57, "timestamp": "2026-04-29T15:44:40.432592Z"}
118+
{"event": "order_filled", "symbol": "GILD", "side": "sell", "quantity": 84.0, "filled_price": 129.53, "signal_price": 129.57, "slippage_bps": 3.09, "order_id": "cbeec148-64d4-4d85-8b3f-68c569f559f0", "timestamp": "2026-04-29T15:44:42.531184Z"}
119+
{"event": "order_submitted", "symbol": "GS", "side": "sell", "quantity": 3.0, "order_type": "market", "limit_price": null, "signal_price": 907.45, "timestamp": "2026-04-29T15:44:42.848774Z"}
120+
{"event": "order_filled", "symbol": "GS", "side": "sell", "quantity": 3.0, "filled_price": 907.26, "signal_price": 907.45, "slippage_bps": 2.09, "order_id": "96274aa1-f384-48f6-a387-689a9e2063b8", "timestamp": "2026-04-29T15:44:44.953691Z"}
121+
{"event": "order_submitted", "symbol": "JNJ", "side": "sell", "quantity": 17.0, "order_type": "market", "limit_price": null, "signal_price": 226.97, "timestamp": "2026-04-29T15:44:45.293143Z"}
122+
{"event": "order_filled", "symbol": "JNJ", "side": "sell", "quantity": 17.0, "filled_price": 226.91, "signal_price": 226.97, "slippage_bps": 2.64, "order_id": "61bd9503-6061-4347-b3d0-c6b86c57cb79", "timestamp": "2026-04-29T15:44:47.386458Z"}
123+
{"event": "order_submitted", "symbol": "LRCX", "side": "sell", "quantity": 8.0, "order_type": "market", "limit_price": null, "signal_price": 247.55, "timestamp": "2026-04-29T15:44:47.666807Z"}
124+
{"event": "order_filled", "symbol": "LRCX", "side": "sell", "quantity": 8.0, "filled_price": 247.45, "signal_price": 247.55, "slippage_bps": 4.04, "order_id": "ac623014-39c5-4f09-82e3-1a3900f13d64", "timestamp": "2026-04-29T15:44:48.742429Z"}
125+
{"event": "order_submitted", "symbol": "MU", "side": "sell", "quantity": 4.0, "order_type": "market", "limit_price": null, "signal_price": 521.35, "timestamp": "2026-04-29T15:44:49.014381Z"}
126+
{"event": "order_filled", "symbol": "MU", "side": "sell", "quantity": 4.0, "filled_price": 521.4, "signal_price": 521.35, "slippage_bps": -0.96, "order_id": "770d7a8c-61ce-4607-91d6-fe4209da68dc", "timestamp": "2026-04-29T15:44:51.108456Z"}
127+
{"event": "order_submitted", "symbol": "USB", "side": "sell", "quantity": 57.0, "order_type": "market", "limit_price": null, "signal_price": 55.62, "timestamp": "2026-04-29T15:44:51.377794Z"}
128+
{"event": "order_filled", "symbol": "USB", "side": "sell", "quantity": 57.0, "filled_price": 55.61, "signal_price": 55.62, "slippage_bps": 1.8, "order_id": "6d61dc1f-9dd5-4430-b0a0-8fef72b5ec92", "timestamp": "2026-04-29T15:44:53.468807Z"}
129+
{"event": "order_submitted", "symbol": "WMT", "side": "sell", "quantity": 58.0, "order_type": "market", "limit_price": null, "signal_price": 127.0, "timestamp": "2026-04-29T15:44:53.724528Z"}
130+
{"event": "order_filled", "symbol": "WMT", "side": "sell", "quantity": 58.0, "filled_price": 126.98, "signal_price": 127.0, "slippage_bps": 1.57, "order_id": "d35c26a2-04a4-446e-9951-9078131339b0", "timestamp": "2026-04-29T15:44:56.837848Z"}
131+
{"event": "order_submitted", "symbol": "AMAT", "side": "buy", "quantity": 24, "order_type": "market", "limit_price": null, "signal_price": 381.635, "timestamp": "2026-04-29T15:44:57.097700Z"}
132+
{"event": "order_filled", "symbol": "AMAT", "side": "buy", "quantity": 24, "filled_price": 381.33, "signal_price": 381.635, "slippage_bps": -7.99, "order_id": "343d7976-9c96-4033-8f6c-0e440f891d75", "timestamp": "2026-04-29T15:44:59.193134Z"}
133+
{"event": "order_submitted", "symbol": "BMY", "side": "buy", "quantity": 47, "order_type": "market", "limit_price": null, "signal_price": 58.015, "timestamp": "2026-04-29T15:44:59.503786Z"}
134+
{"event": "order_filled", "symbol": "BMY", "side": "buy", "quantity": 47, "filled_price": 58.02, "signal_price": 58.015, "slippage_bps": 0.86, "order_id": "134b924a-3feb-4992-ab10-fc3e62a6221f", "timestamp": "2026-04-29T15:45:01.599685Z"}
135+
{"event": "order_submitted", "symbol": "C", "side": "buy", "quantity": 11.0, "order_type": "market", "limit_price": null, "signal_price": 127.305, "timestamp": "2026-04-29T15:45:01.923857Z"}
136+
{"event": "order_filled", "symbol": "C", "side": "buy", "quantity": 11.0, "filled_price": 127.31, "signal_price": 127.305, "slippage_bps": 0.39, "order_id": "4bccb320-e3ef-47e0-8984-8c8f5dc13c9c", "timestamp": "2026-04-29T15:45:02.996139Z"}
137+
{"event": "order_submitted", "symbol": "CSCO", "side": "buy", "quantity": 31, "order_type": "market", "limit_price": null, "signal_price": 88.495, "timestamp": "2026-04-29T15:45:03.333944Z"}
138+
{"event": "order_filled", "symbol": "CSCO", "side": "buy", "quantity": 31, "filled_price": 88.5, "signal_price": 88.495, "slippage_bps": 0.57, "order_id": "a7f984e8-dc08-4725-a657-4a551af74895", "timestamp": "2026-04-29T15:45:05.433143Z"}
139+
{"event": "order_submitted", "symbol": "MRK", "side": "buy", "quantity": 43.0, "order_type": "market", "limit_price": null, "signal_price": 110.15, "timestamp": "2026-04-29T15:45:05.778704Z"}
140+
{"event": "order_filled", "symbol": "MRK", "side": "buy", "quantity": 43.0, "filled_price": 110.14, "signal_price": 110.15, "slippage_bps": -0.91, "order_id": "f03997d9-5eec-4d4b-895d-79ee033c69cb", "timestamp": "2026-04-29T15:45:07.885277Z"}
141+
{"event": "order_submitted", "symbol": "TGT", "side": "buy", "quantity": 87, "order_type": "market", "limit_price": null, "signal_price": 127.23, "timestamp": "2026-04-29T15:45:08.237166Z"}
142+
{"event": "order_filled", "symbol": "TGT", "side": "buy", "quantity": 87, "filled_price": 127.39, "signal_price": 127.23, "slippage_bps": 12.58, "order_id": "aab680f7-bbab-41d0-9c23-9c3633e87809", "timestamp": "2026-04-29T15:45:09.329282Z"}
143+
{"event": "order_submitted", "symbol": "TJX", "side": "buy", "quantity": 22.0, "order_type": "market", "limit_price": null, "signal_price": 155.7, "timestamp": "2026-04-29T15:45:09.790490Z"}
144+
{"event": "order_filled", "symbol": "TJX", "side": "buy", "quantity": 22.0, "filled_price": 155.66, "signal_price": 155.7, "slippage_bps": -2.57, "order_id": "af44f613-7348-4b8a-82e8-0b85cea17a42", "timestamp": "2026-04-29T15:45:10.864644Z"}
145+
{"event": "rebalance_complete", "n_filled": 16, "n_rejected": 0, "total_value_traded": 81796.15995000002, "timestamp": "2026-04-29T15:45:10.864828Z"}
146+
{"event": "reconciliation", "portfolio_value": 105250.57, "n_positions": 12, "total_abs_drift_pct": 1.4, "max_drift_symbol": "CAT", "max_drift_pct": 0.51, "timestamp": "2026-04-29T15:45:11.771056Z"}

0 commit comments

Comments
 (0)