Добавил режимы торговли
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();
|
||||
|
||||
try
|
||||
{
|
||||
#region Ускорение обработки исторических данных при отладке
|
||||
if (message.IsHistoricalData)
|
||||
{
|
||||
|
@ -187,13 +189,13 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
timesCache[message.Figi] = message.Time;
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
await LogPrice(message, "trading_mode", (int)TradingModes[message.Figi]);
|
||||
var mode = (decimal)TradingModes[message.Figi];
|
||||
await LogPrice(message, "trading_mode", mode);
|
||||
//continue;
|
||||
#endregion
|
||||
if (message.Figi == "BBG004730N88")
|
||||
|
@ -245,7 +247,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
}
|
||||
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)
|
||||
{
|
||||
|
@ -262,6 +264,12 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
}
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ProcessOrders()
|
||||
|
@ -711,12 +719,14 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
await LogDeclision(DeclisionTradeAction.OpenLong, message);
|
||||
}
|
||||
|
||||
if (!message.IsHistoricalData)
|
||||
{
|
||||
foreach (var acc in _tradeDataProvider.Accounts)
|
||||
{
|
||||
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);
|
||||
if (order == null && asset.Count>0)
|
||||
if (order == null && asset.Count > 0)
|
||||
{
|
||||
var command = new TradeCommand()
|
||||
{
|
||||
|
@ -732,6 +742,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ProcessNewPriceIMOEXF_Dropping(
|
||||
(DateTime[] timestamps, decimal[] prices) data,
|
||||
|
@ -845,12 +856,15 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
|||
await LogDeclision(DeclisionTradeAction.CloseShort, message);
|
||||
}
|
||||
}
|
||||
|
||||
if (!message.IsHistoricalData)
|
||||
{
|
||||
foreach (var acc in _tradeDataProvider.Accounts)
|
||||
{
|
||||
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);
|
||||
if (order == null && asset.Count<0)
|
||||
if (order == null && asset.Count < 0)
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue