Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02ed327ec7 | ||
|
|
e9162263d6 | ||
|
|
3b3cc9a51c | ||
|
|
54f03c4a03 | ||
|
|
c4d297969b | ||
|
|
1f86456437 |
No files matched your search
@@ -85,7 +85,7 @@ namespace bts.shell {
|
||||
void _on_orders(TableUpdate<(SecurityImmutable?,OrderRecordImmutable),uint> update) {
|
||||
// must update notification_service_data_cache first, some of the predicate/triggers (esp. ToastNotifications) will use the notification_service_data_cache to lookup order-history
|
||||
_data_cache.update(update.as_iincremental());
|
||||
foreach (var o in update.added)
|
||||
foreach (var o in update.added.Concat(update.changed))
|
||||
_order_notifications.process_item(o);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,7 @@ SODTime{
|
||||
}
|
||||
|
||||
Restart sparkd and the SOD process should consolidate your day fills so...
|
||||
(note: in previous occasions it was necessary bounce the shell or otherwise cause a MD change for this to work)
|
||||
|
||||
ACC A:
|
||||
Start Net Pos -1
|
||||
@@ -104,7 +105,7 @@ Sell a 1 lot as the current bid in ACC A
|
||||
Day Short 1
|
||||
Day PnL -37.5
|
||||
Total Net Pos -2
|
||||
Total PnL -50
|
||||
Total PnL -75
|
||||
PnL Price 14.0125 (displayed as 14.015)
|
||||
ACC A1:
|
||||
Start Net Pos 1 (no change)
|
||||
|
||||
@@ -4,9 +4,9 @@ rm ~/sparkdata/data/databases/orders/*
|
||||
and bounce your server.
|
||||
|
||||
0. We will force fills across for 3 securities, across 2 accounts.
|
||||
a. Pick 2 futures and one exchange traded spread (make sure there are no overlaps).
|
||||
a. Pick 2 futures and one exchange traded spread, all on different symbols
|
||||
b. Choose these securities such that there is market data (sim or cert) that you can get fills against (maybe bring up the market view and select securities from there).
|
||||
c. Bring up the 6 ladders. Make sure the position button the ladder displays
|
||||
c. Bring up the 6 ladders. Make sure the position button the ladder displays (Ladder Settings -> Left Panel -> Account Position should be checked, and the position will be displayed below the order type)
|
||||
|
||||
1. Force buy and sell fills across the 6 ladders. Keep track
|
||||
of the long and short positions and verify that that the position
|
||||
@@ -16,13 +16,13 @@ Open up the PNL and make sure the Day Long and Day Short positions match what yo
|
||||
The Start Net Pos should be 0. (The Total Net Pos in the PNL should match the pos button
|
||||
in the ladder)
|
||||
|
||||
2. Now comes the SOD part. The SOD is what demarcates a day. Find the most recent time on your fills, select 1 minute past that and convert it to UTC and override the SOD time in your spark.conf
|
||||
2. Now comes the SOD part. The SOD is what demarcates a day. Find the most recent time on your fills, select 1 minute past that override the SOD time in your spark.conf
|
||||
|
||||
Here's an example of what the key looks like:
|
||||
Here's an example of what the key looks like, assuming your last fill was say at 10:29 and its now 10:35
|
||||
|
||||
SODTime{
|
||||
value {
|
||||
sod_hh: 21
|
||||
sod_hh: 10
|
||||
sod_mm: 30
|
||||
}
|
||||
}
|
||||
@@ -33,4 +33,4 @@ SODTime{
|
||||
|
||||
5. Verify that the PNL is displaying the correct Start Net Pos and the Day part is 0.
|
||||
|
||||
6. Now force a few more fills. Verify that the ladder position box and the PNL is correctly counting them.
|
||||
6. Now force a few more fills. Verify that the ladder position box and the PNL is correctly counting them.
|
||||
@@ -7,7 +7,9 @@ This test assumes the user has done the test in simple_sanity.txt
|
||||
2. Now we are going to force a legged hedge, ie a hedge that does not get filled.
|
||||
The way to do this is to drag the quoting order to force a cross, which will in turn send a hedge
|
||||
that joins the market instead of crossing it. So drag the quoting order all the way to the bid side
|
||||
to cross it with 5 @ 18.50. This should cause a fill in the quoting leg at 18.50 and a hedge order
|
||||
to cross it with 5 @ 18.50; the quoting order can be found at 18.630, so be sure to scroll up if you don't initially see it.
|
||||
|
||||
This should cause a fill in the quoting leg at 18.50 and a hedge order
|
||||
will be sent at 18.20. Verify this. This hedge order will keep working there (since we don't have
|
||||
any post hedging rules right now). Now cancel the hedge order (which will aslo cxl the speader order)
|
||||
|
||||
@@ -15,6 +17,6 @@ any post hedging rules right now). Now cancel the hedge order (which will aslo c
|
||||
|
||||
4. Repeat step 1 and repeat 2 to the point where you have a working hedge order.
|
||||
Now move the opposite inside market of the hedger (which is the ask order at 18.30) gradually away from the
|
||||
hedging order to finally being 26 ticks away. The spreader moves the hedger order 3 ticks into the opposite
|
||||
inside market and cause a fill. The spreader order will be filled too. Verify that the order was indeed sent
|
||||
3 ticks into the opposite inside market
|
||||
hedging order to finally being 26 ticks away (at 18.330). The spreader moves the hedger order 3 ticks into the opposite
|
||||
inside market and cause a fill. The spreader order will be filled too. Verify that the order was indeed sent
|
||||
3 ticks into the opposite inside market (18.345)
|
||||
@@ -7,9 +7,12 @@ This test assumes the user has done the test in simple_sanity.txt
|
||||
2. Now we are going to force a legged hedge, ie a hedge that does not get filled.
|
||||
The way to do this is to drag the quoting order to force a cross, which will in turn send a hedge
|
||||
that joins the market instead of crossing it. So drag the quoting order all the way to the bid side
|
||||
to cross it with 5 @ 18.50. This should cause a fill in the quoting leg at 18.50 and a hedge order
|
||||
to cross it with 5 @ 18.50; the quoting order can be found at 18.630, so be sure to scroll up if you don't initially see it.
|
||||
|
||||
This should cause a fill in the quoting leg at 18.50 and a hedge order
|
||||
will be sent at 18.20. Verify this. This hedge order will keep working there (since we don't have
|
||||
any post hedging rules right now). Now cancel the spreader order.
|
||||
any post hedging rules right now). Now cancel the hedge order (which will aslo cxl the speader order)
|
||||
|
||||
|
||||
3. Enable the Post-Hedge Time Based Cross for the hedging leg. Put 10,000 for Time(ms)
|
||||
and 5 for the Cross Ticks.
|
||||
@@ -18,4 +21,4 @@ and 5 for the Cross Ticks.
|
||||
You should see the Hedging order working at 18.20. This time the hedge order should
|
||||
not wait forever, but after 10 seconds, it should cross the opposite inside market by 5 ticks.
|
||||
The spreader order will be filled too. Verify that the order was indeed sent 5 ticks into
|
||||
the opposite inside market
|
||||
the opposite inside market (18.355)
|
||||
Reference in new issue
Block a user