Skip to content

Commit

Permalink
Sterling. Updated to 11.7 version.
Browse files Browse the repository at this point in the history
  • Loading branch information
mikasoukhov committed Mar 14, 2019
1 parent e9811bf commit d07242f
Show file tree
Hide file tree
Showing 13 changed files with 28 additions and 131 deletions.
1 change: 1 addition & 0 deletions Localization/XmlComments/StockSharp.Sterling.csv
Expand Up @@ -22,6 +22,7 @@ F:StockSharp.Sterling.SterlingExtendedOrderTypes.ServerStop/summary;ServerStop
F:StockSharp.Sterling.SterlingExtendedOrderTypes.ServerStopLimit/summary;ServerStopLimit
F:StockSharp.Sterling.SterlingExtendedOrderTypes.TrailingStop/summary;Str3446
F:StockSharp.Sterling.SterlingExtendedOrderTypes.Last/summary;ByLastPrice
F:StockSharp.Sterling.SterlingExtendedOrderTypes.Funary/summary;DocStr8459
T:StockSharp.Sterling.SterlingExecutionInstructions/summary;DocStr7571
F:StockSharp.Sterling.SterlingExecutionInstructions.SweepReserve/summary;DocStr7572
F:StockSharp.Sterling.SterlingExecutionInstructions.NoPreference/summary;DocStr7573
Expand Down
Binary file modified References/Interop.SterlingLib.dll
Binary file not shown.
Binary file modified References/StockSharp.Sterling.dll
Binary file not shown.
5 changes: 5 additions & 0 deletions References/StockSharp.Sterling.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Samples/Sterling/SampleSterling/MainWindow.xaml.cs
Expand Up @@ -154,7 +154,7 @@ private void ConnectClick(object sender, RoutedEventArgs e)
Trader.MassOrderCancelFailed += (transId, error) =>
this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str716));

Trader.NewNews += news => _newsWindow.NewsPanel.NewsGrid.News.Add(news);
Trader.NewNews += _newsWindow.NewsPanel.NewsGrid.News.Add;

// set market data provider
_securitiesWindow.SecurityPicker.MarketDataProvider = Trader;
Expand Down
7 changes: 0 additions & 7 deletions Samples/Sterling/SampleSterling/SampleSterling.csproj
Expand Up @@ -116,9 +116,6 @@
<Compile Include="StopOrdersWindow.xaml.cs">
<DependentUpon>StopOrdersWindow.xaml</DependentUpon>
</Compile>
<Compile Include="TradesWindow.xaml.cs">
<DependentUpon>TradesWindow.xaml</DependentUpon>
</Compile>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down Expand Up @@ -159,10 +156,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="TradesWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="OrdersWindow.xaml.cs">
Expand Down
7 changes: 0 additions & 7 deletions Samples/Sterling/SampleSterling/SampleSterlingGitHub.csproj
Expand Up @@ -128,9 +128,6 @@
<Compile Include="StopOrdersWindow.xaml.cs">
<DependentUpon>StopOrdersWindow.xaml</DependentUpon>
</Compile>
<Compile Include="TradesWindow.xaml.cs">
<DependentUpon>TradesWindow.xaml</DependentUpon>
</Compile>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down Expand Up @@ -171,10 +168,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="TradesWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="OrdersWindow.xaml.cs">
Expand Down
7 changes: 0 additions & 7 deletions Samples/Sterling/SampleSterling/SampleSterlingPublic.csproj
Expand Up @@ -119,9 +119,6 @@
<Compile Include="StopOrdersWindow.xaml.cs">
<DependentUpon>StopOrdersWindow.xaml</DependentUpon>
</Compile>
<Compile Include="TradesWindow.xaml.cs">
<DependentUpon>TradesWindow.xaml</DependentUpon>
</Compile>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
Expand Down Expand Up @@ -162,10 +159,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="TradesWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="OrdersWindow.xaml.cs">
Expand Down
6 changes: 1 addition & 5 deletions Samples/Sterling/SampleSterling/SecuritiesWindow.xaml
Expand Up @@ -23,11 +23,7 @@
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

<Button x:Name="Find" Width="100" Click="FindClick">
<TextBlock><Run Text="{x:Static loc:LocalizedStrings.Find}" />...</TextBlock>
</Button>

<Button x:Name="Trades" Grid.Column="2" Content="{x:Static loc:LocalizedStrings.XamlStr223}" Width="100" IsEnabled="False" Click="TradesClick" />
<Button x:Name="Level1" Grid.Column="2" Content="{x:Static loc:LocalizedStrings.Level1}" Width="100" IsEnabled="False" Click="Level1Click" />
<Button x:Name="Depth" Grid.Column="3" Content="{x:Static loc:LocalizedStrings.MarketDepth}" Width="100" IsEnabled="False" Click="DepthClick" />
<Button x:Name="NewOrder" Grid.Column="4" Width="100" IsEnabled="False" Click="NewOrderClick">
<TextBlock><Run Text="{x:Static loc:LocalizedStrings.NewOrder}" />...</TextBlock>
Expand Down
90 changes: 19 additions & 71 deletions Samples/Sterling/SampleSterling/SecuritiesWindow.xaml.cs
Expand Up @@ -31,10 +31,9 @@ namespace SampleSterling
public partial class SecuritiesWindow
{
private readonly SynchronizedDictionary<Security, QuotesWindow> _quotesWindows = new SynchronizedDictionary<Security, QuotesWindow>();
private readonly SynchronizedDictionary<Security, TradesWindow> _tradesWindows = new SynchronizedDictionary<Security, TradesWindow>();
private bool _initialized;

//public Security SelectedSecurity => SecurityPicker.SelectedSecurity;
private static IConnector Connector => MainWindow.Instance.Trader;

public SecuritiesWindow()
{
Expand All @@ -49,12 +48,6 @@ protected override void OnClosed(EventArgs e)
w.Close();
}));

_tradesWindows.SyncDo(d => d.Values.ForEach(w =>
{
w.DeleteHideable();
w.Close();
}));

base.OnClosed(e);
}

Expand All @@ -63,13 +56,13 @@ private void NewOrderClick(object sender, RoutedEventArgs e)
var newOrder = new OrderWindow
{
Order = new Order { Security = SecurityPicker.SelectedSecurity },
SecurityProvider = MainWindow.Instance.Trader,
MarketDataProvider = MainWindow.Instance.Trader,
Portfolios = new PortfolioDataSource(MainWindow.Instance.Trader),
SecurityProvider = Connector,
MarketDataProvider = Connector,
Portfolios = new PortfolioDataSource(Connector),
};

if (newOrder.ShowModal(this))
MainWindow.Instance.Trader.RegisterOrder(newOrder.Order);
Connector.RegisterOrder(newOrder.Order);
}

private void NewStopOrderClick(object sender, RoutedEventArgs e)
Expand All @@ -81,75 +74,41 @@ private void NewStopOrderClick(object sender, RoutedEventArgs e)
Security = SecurityPicker.SelectedSecurity,
Type = OrderTypes.Conditional,
},
SecurityProvider = MainWindow.Instance.Trader,
MarketDataProvider = MainWindow.Instance.Trader,
Portfolios = new PortfolioDataSource(MainWindow.Instance.Trader),
Adapter = MainWindow.Instance.Trader.TransactionAdapter
SecurityProvider = Connector,
MarketDataProvider = Connector,
Portfolios = new PortfolioDataSource(Connector),
Adapter = Connector.TransactionAdapter
};

if (newOrder.ShowModal(this))
MainWindow.Instance.Trader.RegisterOrder(newOrder.Order);
Connector.RegisterOrder(newOrder.Order);
}

private void SecurityPicker_OnSecuritySelected(Security security)
{
NewOrder.IsEnabled = NewStopOrder.IsEnabled = Trades.IsEnabled = Depth.IsEnabled = security != null;
}

private void FindClick(object sender, RoutedEventArgs e)
{
var wnd = new SecurityLookupWindow
{
ShowAllOption = MainWindow.Instance.Trader.MarketDataAdapter.IsSupportSecuritiesLookupAll,
Criteria = new Security { Code = "AAPL" }
};

if (!wnd.ShowModal(this))
return;

MainWindow.Instance.Trader.LookupSecurities(wnd.Criteria);
NewOrder.IsEnabled = NewStopOrder.IsEnabled = Level1.IsEnabled = Depth.IsEnabled = security != null;
}

private void TradesClick(object sender, RoutedEventArgs e)
private void Level1Click(object sender, RoutedEventArgs e)
{
TryInitialize();

foreach (var security in SecurityPicker.SelectedSecurities)
{
var window = _tradesWindows.SafeAdd(security, s =>
{
// create tick trades window
var wnd = new TradesWindow
{
Title = security.Code + " " + LocalizedStrings.Ticks
};
// subscribe on tick trades flow
MainWindow.Instance.Trader.RegisterTrades(security);
wnd.MakeHideable();
return wnd;
});

if (window.Visibility == Visibility.Visible)
window.Hide();
else
window.Show();
Connector.RegisterSecurity(security);
}
}

private void DepthClick(object sender, RoutedEventArgs e)
{
TryInitialize();

var trader = MainWindow.Instance.Trader;

foreach (var security in SecurityPicker.SelectedSecurities)
{
var window = _quotesWindows.SafeAdd(security, s =>
{
// subscribe on order book flow
trader.RegisterMarketDepth(security);
Connector.RegisterMarketDepth(security);
// create order book window
var wnd = new QuotesWindow
Expand All @@ -165,30 +124,19 @@ private void DepthClick(object sender, RoutedEventArgs e)
else
{
window.Show();
window.DepthCtrl.UpdateDepth(trader.GetMarketDepth(security));
window.DepthCtrl.UpdateDepth(Connector.GetMarketDepth(security));
}
}
}

private void TryInitialize()
{
if (!_initialized)
{
_initialized = true;

var trader = MainWindow.Instance.Trader;

trader.NewTrade += TraderOnNewTrade;
trader.MarketDepthChanged += TraderOnMarketDepthChanged;
}
}
if (_initialized)
return;

private void TraderOnNewTrade(Trade trade)
{
var wnd = _tradesWindows.TryGetValue(trade.Security);
_initialized = true;

if (wnd != null)
wnd.TradeGrid.Trades.Add(trade);
Connector.MarketDepthChanged += TraderOnMarketDepthChanged;
}

private void TraderOnMarketDepthChanged(MarketDepth depth)
Expand Down
8 changes: 0 additions & 8 deletions Samples/Sterling/SampleSterling/TradesWindow.xaml

This file was deleted.

25 changes: 0 additions & 25 deletions Samples/Sterling/SampleSterling/TradesWindow.xaml.cs

This file was deleted.

1 change: 1 addition & 0 deletions _ReleaseNotes/CHANGE_LOG_API.md
Expand Up @@ -25,6 +25,7 @@ StockSharp API Change log
* (bug) PortfolioEditor. SelectedPortfolio binding fixes.
* (bug) Monitor. Fix LogManager freezing https://stocksharp.ru/forum/10502/logmanagerdispose()/
* (feature) OptionPositionChart. Set own Model.
* (feature) Sterling. Updated to 11.7 version.

## v4.4.16:
* (feature) Alerts. Message made optional for sound based events.
Expand Down

0 comments on commit d07242f

Please sign in to comment.