Версия 4.2
Atom
12.02.2013
Mikhail Sukhov


Сейчас в тёмных кузницах S# выплавляется новая версия 4.2. Версия будет содержать ряд революционных изменений, которые я предлагаю обсудить. На вскидку, будут следующие мажорные изменения:


  1. Trader будет переименовал в Connector. Смысл, что SmartTrader и OECTrader - это существующие торговые марки.
  2. Английская локализация. Уже с этой версий и Студией мы планируем начать себя рекламировать в Валиноре.
  3. Новая потоковая модель, которая окончательно поставит точки над i в области синхронизации данных и событий.
  4. Облачное тестирование.


Конечно, будут и другие фичи (как и новые коннекторы), но это, пожалуй, те, что затронут именно существующих пользователей. Понимаю, что у некоторых пользователей изменения вызывают опаску, но у нас как в поговорке "все что ни делается - все к лучшему". Изменения идут для оптимизации работы с платформой. Надеюсь, предварительная беседа снимет множество будущих проблем с переходом на новые версии.

Теги:


Спасибо: VassilSanych


< 1 2 3  >
Mikhail Sukhov

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


ra81
событие пакуется в Action и кладется в очередь


И это есть самая грубая ошибка. Не зря делегаты иногда называют замыканием. Ой не зря.
Спасибо:

ra81

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


Mikhail Sukhov
ra81
событие пакуется в Action и кладется в очередь


И это есть самая грубая ошибка. Не зря делегаты иногда называют замыканием. Ой не зря.

Пока это работает лучше локов. Вы бы Михаил лучше просветили народ по части вашего решения. Авось ума разума наберемся. Да и интересно же.

Спасибо:

VassilSanych

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


Тоже не вижу смысла в многопоточности с локами, когда логика работы системы строго последовательная (а иначе и актуального тестирования стратегий не получится).
Что нужно сделать, - это чётко нарисовать workflow и определить статусы. Дальше всё нарастёт практически само по себе.
Очередь - хороший вариант. Производительный.
А главное - очень удобный для тестирования.
Спасибо:

VassilSanych

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


Mikhail Sukhov
Не зря делегаты иногда называют замыканием. Ой не зря.

Я бы не перебарщивал с функциональщиной.
Всему своё место.
Есть место ООП, а есть место data driven или реляционной логике.
Есть место функциональщине, есть - старой доброй императивщине.
Трейдинг - штука глубоко императивная: получили сигнал - приняли решение на основе существующих статусов. Функции принятия решения, в свою очередь, до отупения просты.
Понимаю, что не модно. Зато актуально.

Спасибо:

VassilSanych

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


О стэйтлесс:

Зачем стэйтлесс, когда в системе одновременно может быть принято только одно решение, причём основанное на характеристиках всех составляющих этой системы?
Спасибо:

Терпила

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


А почему попросту не привлечь реактивную модель Reactive Extensions (Rx) for .NET, которая как раз и заточены (и уже давненько) под решение таких проблем?
Кстати, разработка Rx была проопенсорсена и переведена в https://rx.codeplex.com/

VassilSanych
когда в системе одновременно может быть принято только одно решение, причём основанное на характеристиках всех составляющих этой системы?

Это неочевидно при параллельном (мультиядерном) multicore, multiprocessor and/or (и распределённом кросс-машинном) multimachine программировании
Спасибо:

VassilSanych

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


Терпила
Это неочевидно при параллельном (мультиядерном) multicore, multiprocessor and/or (и распределённом кросс-машинном) multimachine программировании

Я вообще-то о бизнес-требованиях говорил.
Или "у меня есть золотой молоток и всё кругом - гвозди"?

Кстати. Ещё один вариант - уйти в многопоточности условно от транзакций Serializable к Read Committed. Т.е. где возможно, лочить только запись, а не чтение.
Я даже в своих исходниках в паре мест это реализовал через ConcurrentDictionary.
Должно повысить отзывчивость.

Спасибо:

ak

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


В качестве пожелания - рассмотрите возможность ухода от использования Ecng библиотеки, то, как она работает с памятью - это ужасно (http://stocksharp.com/posts/m/23646/). Попытка оптимизации параметров стратегии на истории с генерацией стаканов в ренже хотя бы месяц и, скажем, ±200 комбинаций параметров гарантированно заканчивается OutOfMemory и на послених версиях также.
Спасибо:

Mikhail Sukhov

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


ak
В качестве пожелания - рассмотрите возможность ухода от использования Ecng библиотеки, то, как она работает с памятью - это ужасно (http://stocksharp.com/posts/m/23646/). Попытка оптимизации параметров стратегии на истории с генерацией стаканов в ренже хотя бы месяц и, скажем, ±200 комбинаций параметров гарантированно заканчивается OutOfMemory и на послених версиях также.


Разве эту ошибку не полечили? Вы отписались, что она исправлена.
Спасибо:

ak

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


К сожалению, лишь частично. Как я тут (http://stocksharp.com/posts/m/23724/) написал, ситуация улучшилась, но с увеличением количества дней (но не параллельно работающих EmulationTrader'ов) OutOfMemory неизбежен. Прошу прощения, что не обновил тему по результатам последующих тестов.
Спасибо:
< 1 2 3  >

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

loading
clippy