← Назад

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

Добрый день.

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

Комментарии (21)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Support
Support

Добрый день

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

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

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

Дмитрий_
Дмитрий_ Автор

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

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

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

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

Добрый день.

  1. Спасибо 2) Спасибо
  2. Снимок.PNG
Replikant
Replikant

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

Дмитрий_
Дмитрий_ Автор

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

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

Replikant
Replikant

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

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

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

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

Дмитрий_
Дмитрий_ Автор

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
Support

Добрый день

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

Дмитрий_
Дмитрий_
Дмитрий_ Автор

Добрый день

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

  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
Support

Добрый день

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

Replikant
Replikant

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

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

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

Дмитрий_
Дмитрий_ Автор

Добрый день

  1. В последней версии Shell, неработающий функционал был удален:

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

1.2) В каждой стратегии нет связи контрола dxe:CheckEdit x:Name="CheckEditUseMarketDepth" со свойством UseDepths, аналогично и для контрола dxe:CheckEdit x:Name="CheckEditGenerateMarketDepth" - свойство GenerateDepths. Удалены dxe:CheckEdit контролы.

Планируется возврат удаленного функционала?

  1. Первый раз запускаю Shell (после скачивания) - тестовый портфель отображается. Capture.PNG Закрываю Shell кнопкой Close (X). Открываю снова - тестовый портфель пропадает. Capture1.PNG
Support
Support

Добрый день

  1. Концепция использования стратегий заключается в том, что они сами знают на какие данные подписываться, а на какие нет. Поэтому из Shell убран код, когда внешне пользователь может через UI менять типы используемых данный. Вы можете сами через код стратегии задать необходимые для работы стратегии данные. Эти же данные стратегия будет запрашивать при торговле в Live.
  2. Пожалуйста, возьмите последнюю версию.
Дмитрий_
Replikant
Replikant

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

  1. Концепция использования стратегий заключается в том, что они сами знают на какие данные подписываться, а на какие нет. Поэтому из Shell убран код, когда внешне пользователь может через UI менять типы используемых данный. Вы можете сами через код стратегии задать необходимые для работы стратегии данные. Эти же данные стратегия будет запрашивать при торговле в Live.
  2. Пожалуйста, возьмите последнюю версию.

А на мое сообщение - чуть выше - ответите?)

Дмитрий_
Дмитрий_ Автор

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

  1. Концепция использования стратегий заключается в том, что они сами знают на какие данные подписываться, а на какие нет. Поэтому из Shell убран код, когда внешне пользователь может через UI менять типы используемых данный. Вы можете сами через код стратегии задать необходимые для работы стратегии данные. Эти же данные стратегия будет запрашивать при торговле в Live.
  1. Вы забыли ответить на вопрос 1.1)

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

1.2) Ок

  1. Предложение по доработке. В ShellWithoutRemote.sln 1.5.0.0 забыт reference Microsoft.CSharp.dll

  2. Предложение по доработке. В стратегиях не хватает переопределения метода Reset() (Во избежание некорректного тестирования)

Для StairsCountertrendStrategy (Для других стратегий по аналогии) public override void Reset() { base.Reset();
        _bullLength = 0;
        _bearLength = 0;

}

  1. Если запусков тестирования конкретной стратегии в пределах запущенного Shell больше 1, то показание максимальной просадки нерелевантно. Capture.PNG Capture1.PNG
Support
Support

Добрый день

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Дмитрий_
Дмитрий_ Автор

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

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Вопрос по 1.1) 1.1.1) Планируется возврат удаленной вкладки? 1.1.2) Предложение по доработке. Возможность старта тестирования стратегии (на той удаленной вкладки) с разными параметрами стратегии, такими как (для StairsCountertrendStrategy) Security, Series, Length с выводом информации о статистике тестирования. Возможна доработка той вкладки?

Replikant
Replikant

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

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

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Вопрос по 1.1) 1.1.1) Планируется возврат удаленной вкладки? 1.1.2) Предложение по доработке. Возможность старта тестирования стратегии (на той удаленной вкладки) с разными параметрами стратегии, такими как (для StairsCountertrendStrategy) Security, Series, Length с выводом информации о статистике тестирования. Возможна доработка той вкладки?

1.1.2) - это то что часто зовут Оптимизация? - Оно?

Дмитрий_
Дмитрий_ Автор

Replikant:

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

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

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Вопрос по 1.1) 1.1.1) Планируется возврат удаленной вкладки? 1.1.2) Предложение по доработке. Возможность старта тестирования стратегии (на той удаленной вкладки) с разными параметрами стратегии, такими как (для StairsCountertrendStrategy) Security, Series, Length с выводом информации о статистике тестирования. Возможна доработка той вкладки?

1.1.2) - это то что часто зовут Оптимизация? - Оно? Верно!

Replikant
Replikant

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

Replikant:

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

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

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Вопрос по 1.1) 1.1.1) Планируется возврат удаленной вкладки? 1.1.2) Предложение по доработке. Возможность старта тестирования стратегии (на той удаленной вкладки) с разными параметрами стратегии, такими как (для StairsCountertrendStrategy) Security, Series, Length с выводом информации о статистике тестирования. Возможна доработка той вкладки?

1.1.2) - это то что часто зовут Оптимизация? - Оно? Верно! Дело полезное! А пока я его кустарными способами делаю)).

Дмитрий_
Дмитрий_ Автор

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

1.1 - вкладка удалена 2,3,4 - выложена новая версия.

Вопрос по 1.1) 1.1.1) Планируется возврат удаленной вкладки? 1.1.2) Предложение по доработке. Возможность старта тестирования стратегии (на той удаленной вкладки) с разными параметрами стратегии, такими как (для StairsCountertrendStrategy) Security, Series, Length с выводом информации о статистике тестирования. Возможна доработка той вкладки? 2) 3) 4) - ок. 5) Если открыта вкладка тестирования стратегии, то после следующих действий:

  • Закрытие программы Shell
  • Открытие программы Shell Пропадает название портфеля. Capture.PNG
  1. После нескольких запусков тестирования стратегии - Shell в памяти разбухет. После заполнения 3 гб - Shell начинает жёстко тормозить.
Support
Support

Добрый день

Доработок пока не планируется, ошибки переданы разработчикам.