← Zurück

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

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

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

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

War dieses Thema hilfreich?

Thema teilen

Kommentare (6)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

freelancer
freelancer

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

vfreeman
vfreeman Autor

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

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


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

Alexander
Alexander

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

vfreeman
vfreeman Autor

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 Autor

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

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

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

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