Условия возникновения событий Strategy.OrderChange, Strategy.NewOrder, Strategy.NewMyTrades

Условия возникновения событий Strategy.OrderChange, Strategy.NewOrder, Strategy.NewMyTrades
Atom
10/7/2010
sergun


Каковы условия возникновения этих событий у стратегии по сравнению с аналогичными событиями в Trader?

Они как-то фильтруются по стратегии? Если да, то как?


Tags:


Thanks:


<< < 4 5 6 7 8  > >>
Mikhail Sukhov

Avatar
Date: 11/9/2010
Reply


Dmitriy Klimov:

Mikhail Sukhov: QuikTrader.ProcessDataError - это сигнал к тому, что что-то не то в программе. Тут не может быть только. Отфильтровал таблицу "Позиции по бумагам" по счетам депо, ошибки исчезли. Но события от стоп-заявок так и не возникают. Что еще можно попробовать?

Все исчезли? Первая была связана вовсе не с позицией, а как раз с заявками.

Thanks:

Dmitriy Klimov

Avatar
Date: 11/9/2010
Reply


Mikhail Sukhov:

Dmitriy Klimov:

Mikhail Sukhov: QuikTrader.ProcessDataError - это сигнал к тому, что что-то не то в программе. Тут не может быть только. Отфильтровал таблицу "Позиции по бумагам" по счетам депо, ошибки исчезли. Но события от стоп-заявок так и не возникают. Что еще можно попробовать?

Все исчезли? Первая была связана вовсе не с позицией, а как раз с заявками. Да, все исчезли. В таблице Заявки были заявки, сделанные через привод Quot Pro. Похоже, заявки, выставленные через него, имели одинаковое значение поля "ID транзакции".

Thanks:

Dmitriy Klimov

Avatar
Date: 11/9/2010
Reply


Попробовал подписать на события NewStopOrders, StopOrdersChanged, StopOrdersFailed у QuikTrader. Возникает только событие StopOrdersChanged. NewStopOrders возникло всего один раз, и туда пришла старая стоп-заяка. Новых не было. Почему у стратегии не возникает хотя бы StopOrdersChanged, не понятно...

Thanks:

Mikhail Sukhov

Avatar
Date: 11/9/2010
Reply


Дмитрий,

приношу свои извинения за качества моего тестирования. Я сейчас написал отдельное приложение, где все сделал "с нуля" для Вашей стратегии. Действительно, она StopOrderChanged не вызывался. Причина оказалось в QuikTrader.AsyncMode = false. В своих тестах я использую только асинхронный режим. Переключился на него, события стали работать. Прикладываю свой пример с исходниками. Проверьте, чтобы точно убедиться, что Ваша причина в том же самом.

StopOrdersTest.zip 8 KB (1608)
Thanks:

Dmitriy Klimov

Avatar
Date: 11/10/2010
Reply


Mikhail Sukhov: Дмитрий,

приношу свои извинения за качества моего тестирования. Я сейчас написал отдельное приложение, где все сделал "с нуля" для Вашей стратегии. Действительно, она StopOrderChanged не вызывался. Причина оказалось в QuikTrader.AsyncMode = false. В своих тестах я использую только асинхронный режим. Переключился на него, события стали работать. Прикладываю свой пример с исходниками. Проверьте, чтобы точно убедиться, что Ваша причина в том же самом. Михаил, ваш пример у меня не заработал. Заявки почему-то не принимались биржей. Но тем не менее, проблема решилась, когда я выставил QuikTrader.AsyncMode = true. Буду тестировать дальше в асинхронном режиме. Спасибо за то, что смогли разобраться.

Thanks:

Mikhail Sukhov

Avatar
Date: 11/10/2010
Reply


Dmitriy Klimov:

Mikhail Sukhov: Дмитрий,

приношу свои извинения за качества моего тестирования. Я сейчас написал отдельное приложение, где все сделал "с нуля" для Вашей стратегии. Действительно, она StopOrderChanged не вызывался. Причина оказалось в QuikTrader.AsyncMode = false. В своих тестах я использую только асинхронный режим. Переключился на него, события стали работать. Прикладываю свой пример с исходниками. Проверьте, чтобы точно убедиться, что Ваша причина в том же самом. Михаил, ваш пример у меня не заработал. Заявки почему-то не принимались биржей. Но тем не менее, проблема решилась, когда я выставил QuikTrader.AsyncMode = true. Буду тестировать дальше в асинхронном режиме. Спасибо за то, что смогли разобраться.

А Вы можете написать причину, почему не принимались?

Thanks:

Dmitriy Klimov

Avatar
Date: 11/10/2010
Reply


Mikhail Sukhov:

Dmitriy Klimov:

Mikhail Sukhov: Дмитрий,

приношу свои извинения за качества моего тестирования. Я сейчас написал отдельное приложение, где все сделал "с нуля" для Вашей стратегии. Действительно, она StopOrderChanged не вызывался. Причина оказалось в QuikTrader.AsyncMode = false. В своих тестах я использую только асинхронный режим. Переключился на него, события стали работать. Прикладываю свой пример с исходниками. Проверьте, чтобы точно убедиться, что Ваша причина в том же самом. Михаил, ваш пример у меня не заработал. Заявки почему-то не принимались биржей. Но тем не менее, проблема решилась, когда я выставил QuikTrader.AsyncMode = true. Буду тестировать дальше в асинхронном режиме. Спасибо за то, что смогли разобраться.

А Вы можете написать причину, почему не принимались? Если честно, сам не понял. Поменял в вашем коде только инструмент и значения StopLoss и TakeProfit.

Thanks:

Mikhail Sukhov

Avatar
Date: 11/10/2010
Reply


Dmitriy Klimov: Если честно, сам не понял. Поменял в вашем коде только инструмент и значения StopLoss и TakeProfit.

А Вы можете посмотреть? Там достаточно лишь вывести само тело ошибки в MessageBox. Если это проигнорировать сейчас потом может оказаться новой ошибкой.[biggrin]

Thanks:

Dmitriy Klimov

Avatar
Date: 11/10/2010
Reply


Mikhail Sukhov:

Dmitriy Klimov: Если честно, сам не понял. Поменял в вашем коде только инструмент и значения StopLoss и TakeProfit.

А Вы можете посмотреть? Там достаточно лишь вывести само тело ошибки в MessageBox. Если это проигнорировать сейчас потом может оказаться новой ошибкой.[biggrin] Говорит, что я не могу торговать на выбранном счете. Попробовал счет сам указывать так:

trader.NewPortfolios += portfolios =>
            {
                _pf = portfolios.First(p => p.Name.Contains("SPBFUTХХХХХ"));
            };

но выходит такая ошибка при подключении: http://screencast.com/t/i4ksJFg96Z. Хотя тот же код нормально работает в моей программе. Так и не понял, в чем прикол.

Thanks:

Mikhail Sukhov

Avatar
Date: 11/10/2010
Reply


Dmitriy Klimov:

Mikhail Sukhov:

Dmitriy Klimov: Если честно, сам не понял. Поменял в вашем коде только инструмент и значения StopLoss и TakeProfit.

А Вы можете посмотреть? Там достаточно лишь вывести само тело ошибки в MessageBox. Если это проигнорировать сейчас потом может оказаться новой ошибкой.[biggrin] Говорит, что я не могу торговать на выбранном счете.

Потому что возвращался первый попавшийся портфель. Видимо для Вашего случая он был не форцовый.

Dmitriy Klimov: Попробовал счет сам указывать так:

trader.NewPortfolios += portfolios => { _pf = portfolios.First(p => p.Name.Contains("SPBFUTХХХХХ")); };

> но выходит такая ошибка при подключении: http://screencast.com/t/i4ksJFg96Z. Хотя тот же код нормально работает в моей программе. Так и не понял, в чем прикол.

Так писать вообще не верно. Вы полагаетесь на то, что в событие придут сразу все портфели. А это событие появление **новых** портфелей.
Thanks:
<< < 4 5 6 7 8  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy