Ошибки эмулятора 4.2

Ошибки эмулятора 4.2
Atom
1/2/2014
Mikhail Sukhov


Подведу итог текущих ошибок тестера:

[url=http://stocksharp.com/forum/4238/Lishniie-moiTieidy-v-EmulationTrader/]Лишние моиТейды в EmulationTrader[/url] [url=http://stocksharp.com/forum/4234/BasketStrategy-v-4-2-API/]BasketStrategy генерирует грааль![/url] [url=http://stocksharp.com/forum/4218/Probliema-s-tiestierom/]Проблема с тестером[/url] (абсолютно не понятно в чем проблема, если на SampleHistory не воспроизведется, значит будет проигнорировано).

Какие еще есть проблемы? Просьба давать ссылки именно на ошибки, а не на вопросы или не непонятные вещи. Если ошибка здесь не приведена, то скорее всего она описана непонятно.




Thanks:


1 2  >
Rebelion

Avatar
Date: 1/6/2014
Reply


[quote=Михаил Сухов;28814]Подведу итог текущих ошибок тестера:

[url=http://stocksharp.com/forum/4218/Probliema-s-tiestierom/]Проблема с тестером[/url] (абсолютно не понятно в чем проблема, если на SampleHistory не воспроизведется, значит будет проигнорировано).

Какие еще есть проблемы? Просьба давать ссылки именно на ошибки, а не на вопросы или не непонятные вещи. Если ошибка здесь не приведена, то скорее всего она описана непонятно.[/quote]

Михаил, добрый вечер. Если нужно, я могу прислать Вам свой проект целиком для тестирования и указать, что конкретно делал (какие данные брал и как работал). Просто в паблик стратегию и свой нубокод не хочу выкладывать (стыдно, честно :-) ). Если можете - дайте мыло, на которое нужно будет архив выслать.

Спасибо.

Thanks:

Andrii

Avatar
Date: 1/6/2014
Reply


[quote=Михаил Сухов;28814]Подведу итог текущих ошибок тестера:

[url=http://stocksharp.com/forum/4238/Lishniie-moiTieidy-v-EmulationTrader/]Лишние моиТейды в EmulationTrader[/url] [url=http://stocksharp.com/forum/4234/BasketStrategy-v-4-2-API/]BasketStrategy генерирует грааль![/url] [url=http://stocksharp.com/forum/4218/Probliema-s-tiestierom/]Проблема с тестером[/url] (абсолютно не понятно в чем проблема, если на SampleHistory не воспроизведется, значит будет проигнорировано).

Какие еще есть проблемы? Просьба давать ссылки именно на ошибки, а не на вопросы или не непонятные вещи. Если ошибка здесь не приведена, то скорее всего она описана непонятно.[/quote]

вот еще из стандартного примера: http://stocksharp.com/forum/4247/Primier-tiestirovaniia-na-sluchainykh-chislakh-nie-rabotaiet/

Thanks: Mikhail Sukhov

longtrades

Avatar
Date: 1/7/2014
Reply


А с этим только у метя проблемы ? [url=http://stocksharp.com/forum/4249/RealTimeEmulationTrader-nie-srabatyvaiut-sobytiia/]события[/url]

Thanks:

Rebelion

Avatar
Date: 1/7/2014
Reply


Да, вопрос, - а стоп-лоссы не пашут сейчас в эмуляции? Если да, кто кто могёт поделиться рецептом "реализации" оных косвенно (но не по факту построения свечи). Пасибки.

Thanks:

longtrades

Avatar
Date: 1/8/2014
Reply


Еще одна ошибка , после этого , EmulationTrader вылетает.

2014/01/08 16:45:40.512| |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Заявка 60299243. Исполнение объема 1 по цене 142810. 2014/01/08 16:45:40.512| |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Заявка 60299243 полностью исполнена. 2014/01/08 16:45:40.512| |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Сделка 190 заявки 60299243 P=60299243 V=142810. 2013/10/01 10:27:14.060| |EmulationTrader|Order changed: 60299243/1048 Покупка Цена=142820 Объем=1 Сост=Done Бал=0 2014/01/08 16:45:40.512|Error |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Заявка 60299243 для перерегистрации не найдена. 2014/01/08 16:45:40.513| |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Заявка 60299249 снята. 2014/01/08 16:45:40.513| |#=q$TVAZv2WzY1qGjz80r1CIY92Hu5bfXHMYoAarEBZe7E=|Заявка 60299251 зарегистрирована. 2013/10/01 10:27:14.060| |EmulationTrader|OrderFailed: 60299250/0 Покупка Цена=142830 Объем=1 Сост=Pending Бал=1 System.InvalidOperationException: Заявка 1048 для перерегистрации не найдена. 2013/10/01 10:27:14.060|Error |EmulationTrader|System.NullReferenceException: Object reference not set to an instance of an object. at StockSharp.Algo.Slippage.SlippageManager.#=qHSjOHMMXp_bJx8EfxAt1nw==.#=qLnEyjd4aNsYfRsi9E8yzyA==(Order #=qptDStyeiQm7xlH2sVMN5Ww==) at StockSharp.Algo.Slippage.SlippageManager.RegisterFailed(OrderFail fail) at StockSharp.Algo.Strategies.Strategy.#=qmOjbgpBRxlSEyg$kAkD9rF$WJ598ihLCUESLgdBw4wU=(IEnumerable1 #=qSWcuracInqoyrIBFWV7Ipg==, Action1 #=q2EaaJQEcSfiBpdwY8lWHUA==) at StockSharp.Algo.Strategies.Strategy.#=q$UcEWvJX7xX1u7qzWK2_p_XVF6tBY0N2tg0e2ZgnPs8=(IEnumerable1 #=q_yxXJw8b$I1ST6b3rvdfRw==) at System.Action1.Invoke(T obj) at Ecng.Common.DelegateHelper.SafeInvoke[T](Action1 handler, T arg) at StockSharp.Algo.BaseTrader.RaiseOrdersRegisterFailed(IEnumerable1 fails) at StockSharp.Algo.BaseTrader.RaiseOrderFailed(OrderFail fail) at StockSharp.Algo.BaseTrader.#=qRFsJgLpydq$Kddrkt15L9Vrih$5fgk1Tnr0nOUfL8MQ=.#=qH9b_CQZfd7t4rl3yUqFVnGwaiCBuchglgFiNWgObp1M=(Security #=qwF_zoEhyqAZy_XLCIx2llQ==) at StockSharp.Algo.BaseTrader.#=qRFsJgLpydq$Kddrkt15L9Vrih$5fgk1Tnr0nOUfL8MQ=.#=qfJM68qe4H7rqVn1UK6QHIBAiE3Dx5RlWpifz7oo7Wmc=(Security #=qmMPCKl4ithkuoucPLmF1XQ==, ExecutionMessage #=qCKf2rdV7ikNYahTqqPfwjA==) at StockSharp.Algo.BaseTrader.#=q$TfDfS0iDuWzNMuCslIWlKtajC5ivx_9AJJJxiurNcE=[TMessage](TMessage #=qWYMQZIHiv9H6MOj7Ak3qVA==, Func2 #=qHnWrxU$dZzS0y_Nmz$zKgQ==, Action2 #=qe3yM3XwnqZTyc95sZDXkLQ==, Boolean #=qOko32PUJB4bfGkZPJz$6kPQvtFffyI3jszlsOJWbcXc=) at StockSharp.Algo.BaseTrader.#=qILcbrwgux5SIrEBkV$o_EYBb3JEeuQSSU2IxlSFFFPA=(ExecutionMessage #=q3hfMeB45u9JUaM2Bh2vVaw==) at StockSharp.Algo.BaseTrader.OnProcessMessage(Message message, MessageDirections direction) at StockSharp.Algo.Testing.BaseEmulationTrader.OnProcessMessage(Message message, MessageDirections direction) at StockSharp.Algo.Testing.EmulationTrader.OnProcessMessage(Message message, MessageDirections direction)

Thanks:

esper

Avatar
Date: 1/9/2014
Reply


[quote=Rebelion;28902]Да, вопрос, - а стоп-лоссы не пашут сейчас в эмуляции? Если да, кто кто могёт поделиться рецептом "реализации" оных косвенно (но не по факту построения свечи). Пасибки.[/quote] Про какие стопы идет речь?

Thanks:

Rebelion

Avatar
Date: 1/9/2014
Reply


[quote=esper;28925][quote=Rebelion;28902]Да, вопрос, - а стоп-лоссы не пашут сейчас в эмуляции? Если да, кто кто могёт поделиться рецептом "реализации" оных косвенно (но не по факту построения свечи). Пасибки.[/quote] Про какие стопы идет речь?[/quote]

[code=csharp] private void OnNewOrderTrades(IEnumerable myTrades) { var protectiveStrategies = myTrades.Select(t => { var newStrategyFromTrade = new StopLossStrategy(t, new Unit(TraderHelper.ShrinkPrice(t.Trade.Security, stopLossParameter * (decimal)currentParams.candleSize))) ;

            return newStrategyFromTrade;
        });

        foreach(var s in protectiveStrategies)
            ChildStrategies.Add(s);

        base.OnNewMyTrades(myTrades);
    }

[/code]

не вызывается в режиме эмуляции. Сама регистрация заявки и стопа на неё производится следующим образом:

[code=csharp] var newOrderDirection = delayedVolume > 0 ? OrderDirections.Buy : OrderDirections.Sell; var newOrderPrice = isNewEntranceSignalUp == true ? Security.LastTrade.Price + Security.MinStepSize * pricePieces : Security.LastTrade.Price - Security.MinStepSize * pricePieces;

                        var newPositionToOpen = this.CreateOrder(newOrderDirection, newOrderPrice, Math.Abs(delayedVolume));

                        newPositionToOpen.WhenMatched().Do(() => newPositionToOpen.WhenNewTrades().Do(OnNewOrderTrades).Apply(this)).Apply(this);
                        RegisterOrder(newPositionToOpen);

[/code]

Версия библиотеки S# в тестере - 4.1.19.1 (к сожалению, код, отрабатывающий на 4.1.19.1 в режиме эмуляции падает в бесконечный цикл перевыставления заявки в версиях 4.2.1.x, логи я прилагал выше, использовал свечи Renko и Range, разные конфигурации - тики, тики и стаканы, включал-выключал стаканогенератор - для 4.2.1.x итог один). В реальной торговле этот код пахал (стопы отрабатывали).

Просто вроде где-то на форуме краем глаза видел, что в 4.1.x.y стопы в эмуляшке не работают - решил уточнить на всякий случай.

Thanks:

esper

Avatar
Date: 1/9/2014
Reply


Стакан для инструмента зарегистрирован?

Thanks: Rebelion

Rebelion

Avatar
Date: 1/9/2014
Reply


[quote=esper;28929]Стакан для инструмента зарегистрирован?[/quote]

Пасиба за наводку! У меня в коде (брался за основу пример из 4.2.1.7) было так почему-то...

[code=csharp] if (emulationInfo.UseMarketDepth // тест подразумевает наличие стаканов && (generateDepths == true // если выбрана генерация стаканов вместо реальных стаканов || emulationInfo.UseCandleTimeFrame!=TimeSpan.Zero // для свечей генерируем стаканы всегда )) {

				// если история по стаканам отсутствует, но стаканы необходимы для стратегии,
				// то их можно сгенерировать на основании цен последних сделок или свечек.

                
				//trader.RegisterMarketDepth(new TrendMarketDepthGenerator(trader.GetSecurityId(security))
                trader.RegisterMarketDepth(new TrendMarketDepthGenerator(security)
			    {
					Interval = TimeSpan.FromSeconds(1), // стакан для инструмента в истории обновляется раз в секунду
					MaxAsksDepth = 3,
					MaxBidsDepth = 3,
					UseTradeVolume = true,
					MaxVolume = 1,
					MinSpreadStepCount = 1,  // минимальный генерируемый спред - 2 минимальных шага цены
					MaxSpreadStepCount = 3, // не генерировать спрэд между лучшим бид и аск больше чем 5 минимальных шагов цены - нужно чтобы при генерации из свечей не получалось слишком широкого спреда.
			    });

[/code]

Ессно не работала генерация стаканов.

Меняем [code=csharp]emulationInfo.UseMarketDepth[/code] на [code=csharp]!emulationInfo.UseMarketDepth[/code] - стаканы генерируются.

Thanks:

AntonySS

Avatar
Date: 1/14/2014
Reply


Добрый день!

Скачал самое последнее обновление API 4.2.2.1

При запуске стандартных SampleHistoryTesting и SampleHistoryTestingParallel я обнаружил что при каждом новом прогоне на одних и тех же исторических данных, которые идут в комплекте с API, я получаю совершенно разные результаты, причем порой различные в разы, как в положительную, так и в отрицательную сторону.

Thanks:
1 2  >

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

loading
clippy