public IActionResult RefreshPos() { var acc = _accountBL.GetRealAccount(); if (acc == null) { return(BadRequest()); } _positionBL.RefreshPositions(acc.AccountID); return(Ok()); }
private void Complete() { // закрытие открытых позиций var instrums = _tickSource.GetInstrums(); foreach (var instrum in instrums) { var tick = _tickSource.GetLastTick(instrum.InsID); if (tick == null) { continue; } _engine.ClosePosition(tick.Value); } // сохранение данных _data.SaveData(); var account = _data.GetAccount(); _posBL.RefreshPositions(account.AccountID); _seriesData.SetAccount(account.AccountID); _seriesData.SaveData(); // сохранить метаданные if (_tickSource != null && account != null) { AccountMeta meta = new AccountMeta(); meta.TickSource_StartDate = _tickSource.StartDate; meta.TickSource_EndDate = _tickSource.EndDate; meta.TickSource_Tickers = string.Join(',', _tickSource.GetInstrums().Select(r => r.Ticker).ToArray()); meta.TestRun_CompleteTime = DateTime.Now; var json = JsonConvert.SerializeObject(meta); _reposBL.SetStringParam(ACCOUNT_META + account.AccountID.ToString(), json); } }