Вопросы по S# Shell

Вопросы по S# Shell
Atom
12/25/2018
Дмитрий_


Добрый день.

1) На вкладке тестирования стратегий, во время проведения теста, появляются ошибки: Заявка 220 (0x1A327E4) не была зарегистрирована по причине 'Сейчас эта сессия не идет.'. "OrderRegisterFailed SBER@TQBR Portfilo for history testing Продажа Цена=0 Объем=1 Сост=Failed Бал=1 Тип=Market System.InvalidOperationException: Сейчас эта сессия не идет."

Возможно это связано с тем, что тестовые сделки проходят в то время, когда биржа не работает (по описанию объекта "Board"), хотя исторические данные имеются. Вопрос. Как отвязать время работы биржи во время тестирования стратегий? Снимок.PNG

2) В логе (Monitor) отображается неверный дата по году. Тестирование с 01.10.2017 по 31.10.2017. В логе (Monitor) отображаются 2010 и 2011 года. Снимок.PNG

3) На подвкладке Стратегии вкладки History Testing - во время тестирования стратегии (и после завершения тестирования) не изменяются значения Position и PnL Снимок1.PNG

Shell v1.4.0.0

Снимок1.PNG 8 KB (1323) Снимок.PNG 123 KB (1293)

Tags:


Thanks:


1 2 3  >
Support

Avatar
Date: 12/27/2018
Reply


Добрый день

  1. На данный момент такой опции не предусмотрено. Передали пожелание разработчикам.

  2. Дата выводится в формате как гг.мм.дд

  3. просьба уточнить о какой подвкладке идёт речь?

Thanks:

Дмитрий_

Avatar
Date: 12/27/2018
Reply


Support: Добрый день

  1. На данный момент такой опции не предусмотрено. Передали пожелание разработчикам.

  2. Дата выводится в формате как гг.мм.дд

  3. просьба уточнить о какой подвкладке идёт речь?

Добрый день.

  1. Спасибо 2) Спасибо
  2. Снимок.PNG
Снимок.PNG 44 KB (1194)
Thanks:

Replikant

Avatar
Date: 12/28/2018
Reply


По (1) правильный вопрос скорее: а откуда взялись данные если биржа в это время не работала?

Thanks:

Дмитрий_

Avatar
Date: 12/28/2018
Reply


Replikant: По (1) правильный вопрос скорее: а откуда взялись данные если биржа в это время не работала?

В предыдущем году площадка работала в более широком временном диапазоне. Все отмененные сделки пришлись на период 18:45 - 18:50. В текущем году рабочий диапазон площадки 10:00 - 18:45.

Thanks:

Replikant

Avatar
Date: 12/29/2018
Reply


Дмитрий Антипов:

Replikant: По (1) правильный вопрос скорее: а откуда взялись данные если биржа в это время не работала?

В предыдущем году площадка работала в более широком временном диапазоне. Все отмененные сделки пришлись на период 18:45 - 18:50. В текущем году рабочий диапазон площадки 10:00 - 18:45. Да, есть такая особенность храннния данных когда что-то может меняться, а ты хранишь только одно, современное состояние.

Наверно диапазон где-то можно подредактировать до избыточного?

Thanks:

Дмитрий_

Avatar
Date: 12/29/2018
Reply


Replikant:

Дмитрий Антипов:

Replikant: По (1) правильный вопрос скорее: а откуда взялись данные если биржа в это время не работала?

В предыдущем году площадка работала в более широком временном диапазоне. Все отмененные сделки пришлись на период 18:45 - 18:50. В текущем году рабочий диапазон площадки 10:00 - 18:45. Да, есть такая особенность храннния данных когда что-то может меняться, а ты хранишь только одно, современное состояние.

Наверно диапазон где-то можно подредактировать до избыточного?

Я редактировал, но изменения не применялись.

var periods = Security.Board.WorkingTime.Periods; foreach (var period in periods) { foreach (var time in period.Times) { time.Min = new TimeSpan(9, 0, 0); time.Max = new TimeSpan(23, 59, 0); } }

На данный момент использую временное решение.

if (!Security.Board.IsTradeTime(Connector.CurrentTime)) return;
Thanks:

Support

Avatar
Date: 1/10/2019
Reply


Добрый день

Пожалуйста, возьмите обновление Шелла. В новой версии доступна настройка эмулятора в отдельной панели настроек.

Thanks: Дмитрий_

Дмитрий_

Avatar
Date: 1/11/2019
Reply


Добрый день

Предложения по доработке.

  1. Shell. Bug-репорт. Плодятся показатели при бэктестинге. (Сообщение пользователя Replikant)

Решение. В файле Strategies/CommonXAML/StatisticAndPnlLayoutGroup.xaml.cs дополнить метод public void BindStraetegy(Strategy strategy) следующей строкой StatisticParameterGrid.Parameters.Clear();

public void BindStraetegy(Strategy strategy) { if (_strategy != null) _strategy.PnLChanged -= Strategy_PnLChanged; EquityCurveChart.Clear();
		_pnl = EquityCurveChart.CreateCurve("PNL", Colors.Green, ChartIndicatorDrawStyles.Area);
		_unrealizedPnL = EquityCurveChart.CreateCurve("unrealizedPnL", Colors.Black, ChartIndicatorDrawStyles.Line);
		_commissionCurve = EquityCurveChart.CreateCurve("commissionCurve", Colors.Red, ChartIndicatorDrawStyles.Line);

		_strategy = strategy;
        **StatisticParameterGrid.Parameters.Clear();**
        StatisticParameterGrid.Parameters.AddRange(_strategy.StatisticManager.Parameters);
		_strategy.PnLChanged += Strategy_PnLChanged;
	}
  1. В каждой стратегии нет связи контрола dxe:CheckEdit x:Name="CheckEditUseMarketDepth" со свойством UseDepths, аналогично и для контрола dxe:CheckEdit x:Name="CheckEditGenerateMarketDepth" - свойство GenerateDepths.

Решение для SmaStrategy (для других стратегий - аналогично). В конструкторе public SmaTestingControl() подписываемся на следующие события CheckEditUseMarketDepth.EditValueChanged += CheckEditUseMarketDepth_EditValueChanged; CheckEditGenerateMarketDepth.EditValueChanged += CheckEditGenerateMarketDepth_EditValueChanged;

    private void CheckEditGenerateMarketDepth_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
    {
        _generateDepths = Convert.ToBoolean(e.NewValue);
    }

    private void CheckEditUseMarketDepth_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
    {
        _useDepths = Convert.ToBoolean(e.NewValue);
    }
Thanks:

Support

Avatar
Date: 1/12/2019
Reply


Добрый день

Спасибо за ваш отчёт. Пожалуйста, возьмите последнюю версию.

Thanks:

Replikant

Avatar
Date: 1/12/2019
Reply


Ещё раз спасибо за обновление.

Что думаете насчет того, чтобы в стандартный контрол реальной торговли добавить галочку или панельку для склеивания с историческими данными? По-моему маст-хэв фича. Ну т.е. если чекбокс чекнут - склеивается с историческими данными, если нет - то только данные в реальном времени. В идеале конечно чтоб панель была с минимальным набором элементов - чтоб можно было формат историч. данных выбрать, от-до, возможно путь до истории и т.д. Но при этом чтоб тикер, тайм-фрейм автоматом подтягивались из настроект торговли, а не автономно задавались.

Было бы круто по-моему. Или это есть, просто не туда смотрю?)

Thanks:
1 2 3  >

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

loading
clippy