@@ -23,9 +23,7 @@ public partial class Leads
2323 OrdersComponent OrdersView { get ; set ; }
2424 PositionsComponent PositionsView { get ; set ; }
2525 StatementsComponent StatementsView { get ; set ; }
26-
2726 PerformanceIndicator Performance { get ; set ; }
28-
2927 Dictionary < string , ScaleIndicator > Scales { get ; set ; }
3028
3129 Price PreviousLeader { get ; set ; }
@@ -52,7 +50,7 @@ protected override async Task OnView()
5250
5351 protected override Task OnTrade ( )
5452 {
55- var adapter = Adapters [ "Prime" ] = new SimGateway
53+ var adapter = Adapter = new SimGateway
5654 {
5755 Connector = Connector ,
5856 Source = Configuration [ "Documents:Resources" ] + "/FUTS/2025-06-17" ,
@@ -78,7 +76,7 @@ protected override Task OnTrade()
7876 protected override async void OnViewUpdate ( Instrument instrument )
7977 {
8078 var price = instrument . Price ;
81- var adapter = Adapters [ "Prime" ] ;
79+ var adapter = Adapter ;
8280 var account = adapter . Account ;
8381 var assetX = account . Instruments [ "ESU25" ] ;
8482 var assetY = account . Instruments [ "NQU25" ] ;
@@ -110,8 +108,13 @@ protected override async void OnViewUpdate(Instrument instrument)
110108
111109 protected override async Task OnTradeUpdate ( Instrument instrument )
112110 {
111+ if ( Equals ( instrument . Name , "ESU25" ) is false )
112+ {
113+ return ;
114+ }
115+
113116 var price = instrument . Price ;
114- var adapter = Adapters [ "Prime" ] ;
117+ var adapter = Adapter ;
115118 var account = adapter . Account ;
116119 var assetX = account . Instruments [ "ESU25" ] ;
117120 var assetY = account . Instruments [ "NQU25" ] ;
@@ -123,36 +126,39 @@ protected override async Task OnTradeUpdate(Instrument instrument)
123126 return ;
124127 }
125128
126- var orders = ( await adapter . GetOrders ( default ) ) . Data ;
127- var positions = ( await adapter . GetPositions ( default ) ) . Data ;
129+ var orders = ( await adapter . GetOrders ( new ( ) { Source = true } ) ) . Data ;
130+ var positions = ( await adapter . GetPositions ( new ( ) { Source = true } ) ) . Data ;
128131 var performance = await Performance . Update ( [ adapter ] ) ;
129132 var scaleX = await Scales [ assetX . Name ] . Update ( seriesX ) ;
130133 var scaleY = await Scales [ assetY . Name ] . Update ( seriesY ) ;
131134 var priceX = seriesX . Last ( ) ;
132135 var priceY = seriesY . Last ( ) ;
133136 var spread = Math . Abs ( ( scaleX . Response . Last - scaleY . Response . Last ) . Value ) ;
134137
135- if ( orders . Count is 0 && positions . Count is 0 && spread > 0.1 )
138+ if ( orders . Count is 0 )
136139 {
137- var isLong = scaleX . Response . Last > PreviousLeader . Last && scaleX . Response . Last > scaleY . Response . Last ;
138- var isShort = scaleX . Response . Last < PreviousLeader . Last && scaleX . Response . Last < scaleY . Response . Last ;
139-
140- switch ( true )
140+ if ( PreviousLeader is not null && positions . Count is 0 && spread > 0.1 )
141141 {
142- case true when isLong : await OpenPosition ( adapter , assetY , OrderSideEnum . Long ) ; break ;
143- case true when isShort : await OpenPosition ( adapter , assetY , OrderSideEnum . Short ) ; break ;
142+ var isLong = scaleX . Response . Last > PreviousLeader . Last && scaleX . Response . Last > scaleY . Response . Last ;
143+ var isShort = scaleX . Response . Last < PreviousLeader . Last && scaleX . Response . Last < scaleY . Response . Last ;
144+
145+ switch ( true )
146+ {
147+ case true when isLong : await OpenPosition ( adapter , assetY , OrderSideEnum . Long ) ; break ;
148+ case true when isShort : await OpenPosition ( adapter , assetY , OrderSideEnum . Short ) ; break ;
149+ }
144150 }
145- }
146-
147- if ( positions . Count is not 0 && orders . Count is 0 )
148- {
149- var pos = positions . First ( ) ;
150- var closeLong = pos . Side is OrderSideEnum . Long && scaleX . Response . Last < scaleY . Response . Last ;
151- var closeShort = pos . Side is OrderSideEnum . Short && scaleX . Response . Last > scaleY . Response . Last ;
152151
153- if ( closeLong || closeShort )
152+ if ( positions . Count is not 0 )
154153 {
155- await ClosePosition ( adapter ) ;
154+ var pos = positions . First ( ) ;
155+ var closeLong = pos . Side is OrderSideEnum . Long && scaleX . Response . Last < scaleY . Response . Last ;
156+ var closeShort = pos . Side is OrderSideEnum . Short && scaleX . Response . Last > scaleY . Response . Last ;
157+
158+ if ( closeLong || closeShort )
159+ {
160+ await ClosePosition ( adapter ) ;
161+ }
156162 }
157163 }
158164
0 commit comments