обновление механизма закрытия позиции
test / deploy_trader_prod (push) Successful in 51s
Details
test / deploy_trader_prod (push) Successful in 51s
Details
parent
214eb591bc
commit
47e94a5620
|
@ -157,7 +157,7 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
};
|
};
|
||||||
|
|
||||||
await _tradeDataProvider.AddData(message, TimeSpan.FromHours(7));
|
await _tradeDataProvider.AddData(message, TimeSpan.FromHours(7));
|
||||||
//await _eventBus.Broadcast(message);
|
await _eventBus.Broadcast(message);
|
||||||
|
|
||||||
var exchangeState = ExchangeScheduler.GetCurrentState();
|
var exchangeState = ExchangeScheduler.GetCurrentState();
|
||||||
if (exchangeState == Models.Trading.ExchangeState.ClearingTime
|
if (exchangeState == Models.Trading.ExchangeState.ClearingTime
|
||||||
|
|
|
@ -252,7 +252,25 @@ namespace KLHZ.Trader.Core.Exchange.Services
|
||||||
ConfirmMarginTrade = true,
|
ConfirmMarginTrade = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var stopsReq = new GetStopOrdersRequest() { AccountId = asset.AccountId};
|
||||||
|
|
||||||
var res = await _investApiClient.Orders.PostOrderAsync(req);
|
var res = await _investApiClient.Orders.PostOrderAsync(req);
|
||||||
|
var stopOrders = await _investApiClient.StopOrders.GetStopOrdersAsync(stopsReq);
|
||||||
|
if (stopOrders.StopOrders != null)
|
||||||
|
{
|
||||||
|
foreach (var stopOrder in stopOrders.StopOrders)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _investApiClient.StopOrders.CancelStopOrderAsync(new CancelStopOrderRequest() { AccountId = asset.AccountId, StopOrderId = stopOrder.StopOrderId });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogError(ex, "Ошибка при закрытии стопов для позиции.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await LoadPortfolioNolock();
|
await LoadPortfolioNolock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,14 +94,14 @@ namespace KLHZ.Trader.Core.TG.Services
|
||||||
{
|
{
|
||||||
var acc = _portfolioWrapper.Accounts.Values.FirstOrDefault(a => !a.Assets.ContainsKey("FUTIMOEXF000"));
|
var acc = _portfolioWrapper.Accounts.Values.FirstOrDefault(a => !a.Assets.ContainsKey("FUTIMOEXF000"));
|
||||||
if (acc != null)
|
if (acc != null)
|
||||||
await acc.OpenPosition("FUTIMOEXF000", Exchange.Models.AssetsAccounting.PositionType.Long, 10, 10, 1);
|
await acc.OpenPosition("FUTIMOEXF000", Exchange.Models.AssetsAccounting.PositionType.Long, 4, 6, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "шорт IMOEXF":
|
case "шорт IMOEXF":
|
||||||
{
|
{
|
||||||
var acc = _portfolioWrapper.Accounts.Values.FirstOrDefault(a => !a.Assets.ContainsKey("FUTIMOEXF000"));
|
var acc = _portfolioWrapper.Accounts.Values.FirstOrDefault(a => !a.Assets.ContainsKey("FUTIMOEXF000"));
|
||||||
if (acc != null)
|
if (acc != null)
|
||||||
await acc.OpenPosition("FUTIMOEXF000", Exchange.Models.AssetsAccounting.PositionType.Short, 10, 10, 1);
|
await acc.OpenPosition("FUTIMOEXF000", Exchange.Models.AssetsAccounting.PositionType.Short, 4, 6, 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "ребут":
|
case "ребут":
|
||||||
|
|
Loading…
Reference in New Issue