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


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

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

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

Теги:


Спасибо:




6 Ответов
freelancer

Фотография
Дата: 24.12.2011
Ответить


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

vfreeman

Фотография
Дата: 24.12.2011
Ответить


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


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

Код

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


Автор топика
Спасибо:

Alexander

Фотография
Дата: 24.12.2011
Ответить


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

vfreeman

Фотография
Дата: 24.12.2011
Ответить


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

Фотография
Дата: 24.12.2011
Ответить


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

vfreeman

Фотография
Дата: 24.12.2011
Ответить


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


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

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

посыпаю голову пеплом...
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy