BaseOptimizer
Базовый оптимизатор стратегий.
Наследует: BaseLogReceiver
Конструкторы
protected BaseOptimizer(ISecurityProvider securityProvider, IPortfolioProvider portfolioProvider, IExchangeInfoProvider exchangeInfoProvider, IStorageRegistry storageRegistry, StorageFormats storageFormat, IMarketDataDrive drive)
baseOptimizer = BaseOptimizer(securityProvider, portfolioProvider, exchangeInfoProvider, storageRegistry, storageFormat, drive)
Инициализирует новый экземпляр BaseOptimizer.
- securityProvider
- Поставщик информации об инструментах.
- portfolioProvider
- Портфель, который будет использоваться для регистрации заказов. Если значение не указано, будет создан портфель с именем по умолчанию Simulator.
- exchangeInfoProvider
- Поставщик бирж и торговых площадок.
- storageRegistry
- Хранение рыночных данных.
- storageFormat
- Формат рыночных данных. По умолчанию используется двоичный формат.
- drive
- Хранилище, которое используется по умолчанию. По умолчанию используется DefaultDrive.
Свойства
public MarketDataStorageCache AdapterCache { get; set; }
value = baseOptimizer.AdapterCache
baseOptimizer.AdapterCache = value
AdapterCache.
public OptimizerSettings EmulationSettings { get; }
value = baseOptimizer.EmulationSettings
Настройки эмуляции.
public IExchangeInfoProvider ExchangeInfoProvider { get; }
value = baseOptimizer.ExchangeInfoProvider
IExchangeInfoProvider
public bool IsPaused { get; }
value = baseOptimizer.IsPaused
Оптимизация в настоящее время приостановлена.
public IPortfolioProvider PortfolioProvider { get; }
value = baseOptimizer.PortfolioProvider
IPortfolioProvider
protected CancellationToken RunToken { get; }
value = baseOptimizer.RunToken
Cancellation token for the current optimization run, including optimizer disposal and consumer cancellation.
public ISecurityProvider SecurityProvider { get; }
value = baseOptimizer.SecurityProvider
ISecurityProvider
public bool StopOnSubscriptionError { get; set; }
value = baseOptimizer.StopOnSubscriptionError
baseOptimizer.StopOnSubscriptionError = value
StopOnSubscriptionError
public MarketDataStorageCache StorageCache { get; set; }
value = baseOptimizer.StorageCache
baseOptimizer.StorageCache = value
StorageCache.
public StorageCoreSettings StorageSettings { get; }
value = baseOptimizer.StorageSettings
Настройки хранилища.
Методы
protected internal MarketDataStorageCache AllocateAdapterCache()
result = baseOptimizer.AllocateAdapterCache()
Выделите AdapterCache.
Возвращает: AdapterCache
protected internal MarketDataStorageCache AllocateStorageCache()
result = baseOptimizer.AllocateStorageCache()
Выделите StorageCache.
Возвращает: StorageCache
protected void CancelRun()
baseOptimizer.CancelRun()
Cancel the current optimization run and let its producers drain.
protected void CompleteChannel()
baseOptimizer.CompleteChannel()
Завершите канал, чтобы перечисление RunAsync закончилось.
protected override void DisposeManaged()
baseOptimizer.DisposeManaged()
Освободите ресурсы.
protected internal void FreeAdapterCache(MarketDataStorageCache cache)
baseOptimizer.FreeAdapterCache(cache)
Бесплатно AdapterCache.
- cache
- AdapterCache
protected internal void FreeStorageCache(MarketDataStorageCache cache)
baseOptimizer.FreeStorageCache(cache)
Бесплатно StorageCache.
- cache
- StorageCache
protected void InitializeRunAsync(int totalIterations, CancellationToken cancellationToken)
baseOptimizer.InitializeRunAsync(totalIterations, cancellationToken)
Инициализируйте канал, пакетный менеджер и связанный CTS для RunAsync.
- totalIterations
- Общее количество итераций (или int.MaxValue, если неизвестно).
- cancellationToken
- Внешний токен отмены.
public Task Pause()
result = baseOptimizer.Pause()
Приостановить оптимизацию. Новые итерации не начнутся до тех пор, пока не будет вызвана функция Resume, а уже запущенные бэктесты приостанавливаются, поэтому процесс немедленно останавливается.
Возвращает: Задача
protected IAsyncEnumerable<ValueTuple<Strategy, IStrategyParam[]>> ReadResultsAsync(CancellationToken cancellationToken)
result = baseOptimizer.ReadResultsAsync(cancellationToken)
Результаты вывода из канала чтения.
public Task Resume()
result = baseOptimizer.Resume()
Возобновить приостановленную оптимизацию.
Возвращает: Задача
private void StopStartedConnector(HistoryEmulationConnector connector)
baseOptimizer.StopStartedConnector(connector)
Disconnect a connector that is up, so its iteration reaches Stopped and signals the worker waiting on it. One that is already stopping gets there on its own.
protected internal ValueTask<bool> TryNextRunAsync(DateTime startTime, DateTime stopTime, Func<IPortfolioProvider, CancellationToken, ValueTask<ValueTuple<Strategy, IStrategyParam[]>?>> tryGetNext, MarketDataStorageCache adapterCache, MarketDataStorageCache storageCache, CancellationToken cancellationToken)
result = baseOptimizer.TryNextRunAsync(startTime, stopTime, tryGetNext, adapterCache, storageCache, cancellationToken)
Try start next iteration. Returns if iteration was started and completed, if no more iterations available.
- startTime
- Date in history for starting the paper trading.
- stopTime
- Date in history to stop the paper trading (date is included).
- tryGetNext
- Handler to try to get next strategy object.
- adapterCache
- AdapterCache
- storageCache
- StorageCache
- cancellationToken
- Cancellation token.
События
public event Action<Connector> ConnectorInitialized
baseOptimizer.ConnectorInitialized += handler
Инициализируйте Connector. Вызывается перед подключением.
public event Action<Strategy, IStrategyParam[], int> SingleProgressChanged
baseOptimizer.SingleProgressChanged += handler
Событие единичного изменения прогресса.
public event Action<Strategy, IStrategyParam[]> StrategyInitialized
baseOptimizer.StrategyInitialized += handler
Событие, инициализирующее стратегию.