Добавил режимы торговли
test / deploy_trader_prod (push) Successful in 3m54s
Details
test / deploy_trader_prod (push) Successful in 3m54s
Details
parent
6643549a93
commit
8b38421be4
|
@ -140,6 +140,8 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
{
|
{
|
||||||
var message = await _pricesChannel.Reader.ReadAsync();
|
var message = await _pricesChannel.Reader.ReadAsync();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
#region Ускорение обработки исторических данных при отладке
|
#region Ускорение обработки исторических данных при отладке
|
||||||
if (message.IsHistoricalData)
|
if (message.IsHistoricalData)
|
||||||
{
|
{
|
||||||
|
@ -187,13 +189,13 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
timesCache[message.Figi] = message.Time;
|
timesCache[message.Figi] = message.Time;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var mode = (decimal)TradingModes[message.Figi];
|
||||||
await LogPrice(message, "trading_mode", (int)TradingModes[message.Figi]);
|
await LogPrice(message, "trading_mode", mode);
|
||||||
//continue;
|
//continue;
|
||||||
#endregion
|
#endregion
|
||||||
if (message.Figi == "BBG004730N88")
|
if (message.Figi == "BBG004730N88")
|
||||||
|
@ -245,7 +247,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
}
|
}
|
||||||
else if (TradingModes[message.Figi] == TradingMode.SlowDropping)
|
else if (TradingModes[message.Figi] == TradingMode.SlowDropping)
|
||||||
{
|
{
|
||||||
await ProcessNewPriceIMOEXF_Dropping(data,state,message,windowMaxSize,3);
|
await ProcessNewPriceIMOEXF_Dropping(data, state, message, windowMaxSize, 3);
|
||||||
}
|
}
|
||||||
else if (TradingModes[message.Figi] == TradingMode.Dropping)
|
else if (TradingModes[message.Figi] == TradingMode.Dropping)
|
||||||
{
|
{
|
||||||
|
@ -262,6 +264,12 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task ProcessOrders()
|
private async Task ProcessOrders()
|
||||||
|
@ -711,12 +719,14 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
await LogDeclision(DeclisionTradeAction.OpenLong, message);
|
await LogDeclision(DeclisionTradeAction.OpenLong, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!message.IsHistoricalData)
|
||||||
|
{
|
||||||
foreach (var acc in _tradeDataProvider.Accounts)
|
foreach (var acc in _tradeDataProvider.Accounts)
|
||||||
{
|
{
|
||||||
if (acc.Value.Assets.TryGetValue(message.Figi, out var asset))
|
if (acc.Value.Assets.TryGetValue(message.Figi, out var asset))
|
||||||
{
|
{
|
||||||
var order = acc.Value.Orders.Values.FirstOrDefault(o => o.Figi == message.Figi && o.Direction == DealDirection.Sell);
|
var order = acc.Value.Orders.Values.FirstOrDefault(o => o.Figi == message.Figi && o.Direction == DealDirection.Sell);
|
||||||
if (order == null && asset.Count>0)
|
if (order == null && asset.Count > 0)
|
||||||
{
|
{
|
||||||
var command = new TradeCommand()
|
var command = new TradeCommand()
|
||||||
{
|
{
|
||||||
|
@ -732,6 +742,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task ProcessNewPriceIMOEXF_Dropping(
|
private async Task ProcessNewPriceIMOEXF_Dropping(
|
||||||
(DateTime[] timestamps, decimal[] prices) data,
|
(DateTime[] timestamps, decimal[] prices) data,
|
||||||
|
@ -845,12 +856,15 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
await LogDeclision(DeclisionTradeAction.CloseShort, message);
|
await LogDeclision(DeclisionTradeAction.CloseShort, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!message.IsHistoricalData)
|
||||||
|
{
|
||||||
foreach (var acc in _tradeDataProvider.Accounts)
|
foreach (var acc in _tradeDataProvider.Accounts)
|
||||||
{
|
{
|
||||||
if (acc.Value.Assets.TryGetValue(message.Figi, out var asset))
|
if (acc.Value.Assets.TryGetValue(message.Figi, out var asset))
|
||||||
{
|
{
|
||||||
var order = acc.Value.Orders.Values.FirstOrDefault(o => o.Figi == message.Figi && o.Direction == DealDirection.Buy);
|
var order = acc.Value.Orders.Values.FirstOrDefault(o => o.Figi == message.Figi && o.Direction == DealDirection.Buy);
|
||||||
if (order == null && asset.Count<0)
|
if (order == null && asset.Count < 0)
|
||||||
{
|
{
|
||||||
var command = new TradeCommand()
|
var command = new TradeCommand()
|
||||||
{
|
{
|
||||||
|
@ -866,6 +880,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async Task ProcessClearing((DateTime[] timestamps, decimal[] prices) data, ExchangeState state, INewPrice message)
|
private async Task ProcessClearing((DateTime[] timestamps, decimal[] prices) data, ExchangeState state, INewPrice message)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue