← Back

Необходимо вначале зарегистрировать стратегию

Коллеги, а что может быть причиной возникновения ошибки "Необходимо вначале зарегистрировать стратегию"?

поиск по форуму результатов не принес

StockSharp_4.0.10

вываливается на следующем коде:

RegisterOrder(myOrder)

стратегия событийная обрабатывать будет только событие Security.SecurityNewTrades

метод StratInit - первоначальная инициализация стратегии

Protected Overrides Sub OnStarting()
        Me.When(Me.StrategyNewMyTrades()).Do(AddressOf StratInit)
        Me.When(Security.SecurityNewTrades).Do(AddressOf StratInit)
End Sub

Private Sub StratInit()
        Dim myOrder As Order
        If Not blnInit Then
            blnInit = True
            AddInfoLog("Инициализация", "")
[skiped]
            RegisterOrder(myOrder)
        End If
End Sub

Comments (6)

Login or Create account, Log in or register to leave a comment

freelancer
freelancer

А вы как запускаете стратегию ? Методом Start() ?

vfreeman
vfreeman Author

freelancer: А вы как запускаете стратегию ? Методом Start() ?

да - с помощью вот такого кода 🤨


        myStart = New EvtStrat(myPort, mySec)
        myLogMan.Listeners.Add(guiListener)
        myLogMan.Sources.Add(myStart)
        myStart.Start()

Alexander
Alexander

Смотрите примеры внимательнее. Это значит что Trader == null.

vfreeman
vfreeman Author

Alexander Mukhanchikov: Смотрите примеры внимательнее. Это значит что Trader == null.

так и есть! благодарю!

_strategy = new SmaStrategy(_candleManager, new SimpleMovingAverage { Length = 80 }, new SimpleMovingAverage { Length = 10 }, _timeFrame)
				{
					Volume = 1,
					Security = _lkoh,
					Portfolio = Portfolios.SelectedPortfolio,
					[b]Trader = _trader[/b],
				};

перед стартом стратегии помогло

myStrat.Trader = Trader
Alexander
Alexander

у вас должна была вылететь в base.OnStarting ошибка, если б вы не забыли вызвать его из переопределённого метода :)

vfreeman
vfreeman Author

Alexander Mukhanchikov: у вас должна была вылететь в base.OnStarting ошибка, если б вы не забыли вызвать его из переопределённого метода :)

специально проверил - вызывал и получил ошибку

"Шлюз не инициализирован."

посыпаю голову пеплом...