Вопросы по S# Shell
Atom
25.12.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)

Теги:


Спасибо:


1 2 3  >
Support

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


Добрый день

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

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

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

Спасибо:

Дмитрий_

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


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

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

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

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

Добрый день.

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

Replikant

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


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

Спасибо:

Дмитрий_

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


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

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

Спасибо:

Replikant

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


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

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

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

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

Спасибо:

Дмитрий_

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


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;
Спасибо:

Support

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


Добрый день

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

Спасибо: Дмитрий_

Дмитрий_

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


Добрый день

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

  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);
    }
Спасибо:

Support

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


Добрый день

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

Спасибо:

Replikant

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


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

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

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

Спасибо:
1 2 3  >

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

loading
clippy