@@ -232,7 +232,8 @@ type Strategy struct {
232
232
233
233
metricsLabels prometheus.Labels
234
234
235
- connectivityGroup * types.ConnectivityGroup
235
+ sourceMarketDataConnectivity , sourceUserDataConnectivity * types.Connectivity
236
+ connectivityGroup * types.ConnectivityGroup
236
237
237
238
// lastAggregatedSignal stores the last aggregated signal with mutex
238
239
// TODO: use float64 series instead, so that we can store history signal values
@@ -599,6 +600,10 @@ func (s *Strategy) updateQuote(ctx context.Context) error {
599
600
return nil
600
601
}
601
602
603
+ if ! s .sourceMarketDataConnectivity .IsConnected () || ! s .sourceUserDataConnectivity .IsConnected () {
604
+ return nil
605
+ }
606
+
602
607
signal , err := s .aggregateSignal (ctx )
603
608
if err != nil {
604
609
return err
@@ -1442,6 +1447,7 @@ func (s *Strategy) quoteWorker(ctx context.Context) {
1442
1447
return
1443
1448
1444
1449
case <- ticker .C :
1450
+
1445
1451
if err := s .updateQuote (ctx ); err != nil {
1446
1452
s .logger .WithError (err ).Errorf ("unable to place maker orders" )
1447
1453
}
@@ -1810,10 +1816,13 @@ func (s *Strategy) CrossRun(
1810
1816
1811
1817
s .stopC = make (chan struct {})
1812
1818
1813
- sourceConnectivity := types .NewConnectivity ()
1814
- sourceConnectivity .Bind (s .sourceSession .UserDataStream )
1819
+ s .sourceUserDataConnectivity = types .NewConnectivity ()
1820
+ s .sourceUserDataConnectivity .Bind (s .sourceSession .UserDataStream )
1821
+
1822
+ s .sourceMarketDataConnectivity = types .NewConnectivity ()
1823
+ s .sourceMarketDataConnectivity .Bind (s .sourceSession .MarketDataStream )
1815
1824
1816
- s .connectivityGroup = types .NewConnectivityGroup (sourceConnectivity )
1825
+ s .connectivityGroup = types .NewConnectivityGroup (s . sourceUserDataConnectivity )
1817
1826
1818
1827
go func () {
1819
1828
s .logger .Infof ("waiting for authentication connections to be ready..." )
0 commit comments