Версия 4.2
Atom
2/12/2013
Mikhail Sukhov


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


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


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

Tags:


Thanks: VassilSanych


< 1 2 3  >
Mikhail Sukhov

Avatar
Date: 2/13/2013
Reply


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


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

ra81

Avatar
Date: 2/13/2013
Reply


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


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

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

Thanks:

VassilSanych

Avatar
Date: 2/13/2013
Reply


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

VassilSanych

Avatar
Date: 2/13/2013
Reply


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

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

Thanks:

VassilSanych

Avatar
Date: 2/13/2013
Reply


О стэйтлесс:

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

Терпила

Avatar
Date: 3/29/2013
Reply


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

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

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

VassilSanych

Avatar
Date: 3/29/2013
Reply


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

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

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

Thanks:

ak

Avatar
Date: 3/29/2013
Reply


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

Mikhail Sukhov

Avatar
Date: 3/30/2013
Reply


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


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

ak

Avatar
Date: 4/1/2013
Reply


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

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

loading
clippy