моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 05.03.14 20:20
Оценка: 9 (1)
Привет всем!

Я разработал небольшой язык для описания торговых стратегий. В первую очередь он предназначен для исследователей микроструктуры рынка, но, возможно, в будущем его можно будет доработать для бэктестинга. Я приготовил небольшую презентацию, и было бы крайне интересно узнать мнение практиков о выразительности и интуитивной понятности сего языка. Спасибо.
Re: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 05.03.14 20:21
Оценка:
Прямая ссылка на pdf
Re[2]: моделирование трейдеров
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 06.03.14 08:11
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Прямая ссылка на pdf

Интереснее было бы сам язык "пощупать".
Sic luceat lux!
Re[3]: моделирование трейдеров
От: Артeм Австралия жж
Дата: 06.03.14 09:01
Оценка: 4 (1)
Здравствуйте, Kernan, Вы писали:

K>Интереснее было бы сам язык "пощупать".


https://github.com/fiquant/marketsimulator/blob/master/README.rst
Re: моделирование трейдеров
От: Аноним  
Дата: 06.03.14 09:49
Оценка: 12 (2) +2 -1
Здравствуйте, Anton V. Kolotaev, Вы писали:

У меня тупой вопрос: а обязательно было разрабатывать язык? Нельзя было разработать библиотеки?

Вот здесь я вижу описание еще одного универсального языка программирования к дополнению из 10050 существующих с очередным синтаксисом к дополнению из 100500 существующих, являющимся продуктом полета фантазии очередного автора очередного языка.

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

После многих лет в программировании и изучения N языков со всеми видами кривостей и причуд, меня реально начинает уже тошнить от одного упоминания о том, что кто-то опять разработал свой новый язык.

У меня эта разработка своих новых языков ассоциируется с каким-то онанизмом, что ли. Есть что-то схожее в этих занятиях.

Считайте, что я пришел, посмотрел, и виртуально проблевался. Извиняюсь за блевотину.
Re[3]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 06.03.14 10:06
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Интереснее было бы сам язык "пощупать".


Ссылку на репозиторий добрые люди уже дали. А сам код на языке находится здесь
Re[2]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 06.03.14 10:24
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>У меня тупой вопрос: а обязательно было разрабатывать язык? Нельзя было разработать библиотеки?


Изначально была плюсовая библиотека, потом была питоновская библиотека. Даже с интенсивным использованием питоновской интроспекции описывать стратегии, используя эту библотеку, было довольно запарно для новичков. Прошлым летом часть стратегий написал один довольно умный стажер, и я имел возможность своими глазами наблюдать процесс освоения библиотеки.

А>Вот здесь я вижу описание еще одного универсального языка программирования к дополнению из 10050 существующих с очередным синтаксисом к дополнению из 100500 существующих, являющимся продуктом полета фантазии очередного автора очередного языка.


Это не универсальный язык программирования, а очень сильно заточенный под конкретную задачу дсл. К примеру, довольно странно было бы видеть в нормальном языке программирования наследование целых чисел от чисел с плавающей точкой, но в дсле это оказалось очень удобно. Одно время этот язык был реализован как внутренний дсл на питоне, но после попыток объяснить пользователям, какие возможности питона можно использовать, а какие — нет, я понял, что проще написать внешний дсл с четко очерченной семантикой.

А>Ваши усилия в разработке своего языка, конечно, похвальны. Но нельзя было это оставить для самообразования, не проявляя намерения заставить других учить очередной язык программирования?


Сложность изучения новых языков по сравнению с библиотеками сильно преувеличена. Например, изначально я планировал написать парсер, используя boost::spirit, но быстро понял, что значительно продуктивней будет изучить с нуля скалу и на ней уже писать парсер. От начала изучения скалы до работающей первой версии парсера прошло около 3 недель.

А>После многих лет в программировании и изучения N языков со всеми видами кривостей и причуд, меня реально начинает уже тошнить от одного упоминания о том, что кто-то опять разработал свой новый язык.


Идеи имеют свойство перетекать между языками программирования, так что при появлении нового языка программирования достаточно понять, чем он отличается о существующих языков и какие новые идеи привносит.

А>У меня эта разработка своих новых языков ассоциируется с каким-то онанизмом, что ли. Есть что-то схожее в этих занятиях.


А>Считайте, что я пришел, посмотрел, и виртуально проблевался. Извиняюсь за блевотину.


Мне Вас откровенно жалко.
Re[4]: моделирование трейдеров
От: Артeм Австралия жж
Дата: 06.03.14 10:27
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Ссылку на репозиторий добрые люди уже дали. А сам код на языке находится здесь


Интересный фрейворк, жаль не хватает времени плотнее с ним разобраться. Насчет DSL вопрос- вроде ж Scala поощряет создание DSL- т.е. сорцы остаются скаловскими? Насколько реально прикрутить DSL EasyLanguage или метатрейдера, чтобы копи-пастить стратегии ритейловых трейдеров? Какие требования к системе под нагрузкой, какова изначальная цель, мотивация?
Re[5]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 06.03.14 10:46
Оценка:
Здравствуйте, Артeм, Вы писали:

А>Интересный фрейворк, жаль не хватает времени плотнее с ним разобраться. Насчет DSL вопрос- вроде ж Scala поощряет создание DSL- т.е. сорцы остаются скаловскими?


Внутренние дсл-и на скале писать можно -- и недавно появившиеся макросы этому сильно способствуют.
Проблемы с внутренним дслем следующие:
1. Скала долго компилируется. Например, мой компилятор полностью пересобирается примерно за минуту на мощной машине. Отрабатывает же всего за 3 секунды. Поскольку язык предназначен для экспериментирования со стратегиями, короткий цикл разработки очень важен.
2. Для внешнего дсля можно написать плагин к эклипсу или идее и получить автодополнение, ловлю ошибок на лету и прочие вкусности. Я очень неуверен в том, что можно запинать дсл на макросах до такого состояния, чтобы он нормально взаимодействовал с ide
3. Поскольку я изначально не имел детального представления о возможностях макросистемы скалы, я решил не рисковать, чтобы не оказаться в ситуации, что какой-то нужный мне синтаксис я не могу сделать в скале (когда я делал внутренний дсл на питоне, я постоянно сталкивался с такой проблемой -- при разработке внешнего дсля единственное ограничение — это только недостаточные знания о том, как строить компиляторы)


А>Насколько реально прикрутить DSL EasyLanguage или метатрейдера, чтобы копи-пастить стратегии ритейловых трейдеров? Какие требования к системе под нагрузкой, какова изначальная цель, мотивация?


Честно говоря, язык создавался в первую очередь не для трейдеров, а для исследователей микроструктуры рынка (одна из прикладных задач, например, — это объяснить volatility smile исходя из того, что трейдеры следуют определенным стратегиям). Соответственно стратегии, которые я реализовал, -- это просто те стратегии, которые были изначально в библиотеке и использовались исследователями. Моя цель была в том, чтобы удобно было писать новые стратегии и с ними экспериментировать. Если начальство скажет прикрутить импорт стратегий, будем думать над этим. Насчет нагрузки: одна из идей разработать новый язык была в том, что его можно будет транслировать в оптимизированный С++ и получить очень высокую скорость. Пока что трансляция идет в питон, поскольку мне надо было получить красивую работающую версию как можно скорее.
Re: моделирование трейдеров
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.03.14 13:24
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Я разработал небольшой язык для описания торговых стратегий. В первую очередь он предназначен для исследователей микроструктуры рынка, но, возможно, в будущем его можно будет доработать для бэктестинга. Я приготовил небольшую презентацию, и было бы крайне интересно узнать мнение практиков о выразительности и интуитивной понятности сего языка. Спасибо.


Презентация ни на что не годится. Если язык предназначен для конкретного домена, то лучше пояснить, какие проблемы в этом домене предполагается решать и показать, каким именно образом.
Такое ощущение, что ты решил писать новый язык только ради синтаксиса
Re: моделирование трейдеров
От: __kot3 США  
Дата: 08.03.14 00:32
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Спасибо.


Интересно, если рассматривать проект как курсовую работу. Практического применения не вижу. Синтаксис невыразительный. Непонятно как использовать внешние библиотеки (а также как подключиться к брокеру). Нет ясности как работать с деривативами (и вообще как я понял поддерживается торговля только одним инструментом).
могло бы быть и хуже
Re[3]: моделирование трейдеров
От: Аноним  
Дата: 08.03.14 06:35
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Это не универсальный язык программирования, а очень сильно заточенный под конкретную задачу дсл.


DSL обычно гораздо ближе к предметной области. У вас универсальный статически типизированный ЯП, хоть и неполноценный. По крайней мере, основы вашего языка повторяют дизайн универсальных ЯП.

Можете привести пример конструкции из вашего языка, дающую преимущество перед библиотечной реализацией?

AVK>К примеру, довольно странно было бы видеть в нормальном языке программирования наследование целых чисел от чисел с плавающей точкой, но в дсле это оказалось очень удобно.


То, что у вашего ЯП кривой дизайн, не превращает его в DSL.

AVK>Одно время этот язык был реализован как внутренний дсл на питоне, но после попыток объяснить пользователям, какие возможности питона можно использовать, а какие — нет, я понял, что проще написать внешний дсл с четко очерченной семантикой.


Ну так и написали бы DSL, а не статически типизированный ЯП. Вы серьезно утверждаете, что людям ваш статически типизированный ЯП будет проще освоить, чем Python или Mathematica, например? То, что какой-то умный стажер его освоил, ни о чем не говорит. Стажеры еще и не такое осваивают. Среди программистов полно людей без высшего образования, которые осваивают любые языки. Вы думаете, умный стажер не может освоить Хаскель?

AVK>Сложность изучения новых языков по сравнению с библиотеками сильно преувеличена. Например, изначально я планировал написать парсер, используя boost::spirit, но быстро понял, что значительно продуктивней будет изучить с нуля скалу и на ней уже писать парсер. От начала изучения скалы до работающей первой версии парсера прошло около 3 недель.


Это несерьезные рассуждения. Сложность освоения новых языков, особенно языков с кривым дизайном, очень высока. Человек, освоивший язык за три недели, будет писать "ламерский" код, делать глупые ошибки, не использовать общепринятые подходы в типичных местах, потому что он всего этого не знает, и, в конечном итоге, тратить время впустую.

К тому же, что ему потом делать со знанием этого чудо-языка? Если бы он знал Python, например, у него была бы возможность применить это знание позже. А ваш чудо-язык ему останется только засунуть куда-нибудь.

AVK>Идеи имеют свойство перетекать между языками программирования, так что при появлении нового языка программирования достаточно понять, чем он отличается о существующих языков и какие новые идеи привносит.


Какие новые идеи? Серьезно? Дайте угадаю: никаких. Он привносит кривизну и убогость вроде наследования int от float.

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

Неужели у вас такое высокое самомнение, что вы собираетесь всех эти умных людей переплюнуть, да еще и привнести "новые идеи"?

Да, у вас высокое самомнение. Я думаю, это истинная причина, стоящая за вашими рационализациями.
Re[2]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 08.03.14 08:31
Оценка:
Здравствуйте, __kot3, Вы писали:

__>Практического применения не вижу.


Уже сейчас используется аспирантами. Для них в первую очередь и предназначалось.

__>Синтаксис невыразительный.


Можно ли поподробнее о том, какой синтаксис считается выразительным?

__>Непонятно как использовать внешние библиотеки (а также как подключиться к брокеру).


Это делается на уровне целевого языка (пока что в питоновской части используется pandas и numpy)

__>Нет ясности как работать с деривативами


Насчет деривативов пока что задачи не стояло, но принципиальных ограничений для их реализации я не вижу.

__>(и вообще как я понял поддерживается торговля только одним инструментом).


Некоторые стратегии торгуют разными инструментами
Re[4]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 08.03.14 09:11
Оценка:
Здравствуйте, Аноним, Вы писали:

AVK>>Это не универсальный язык программирования, а очень сильно заточенный под конкретную задачу дсл.


А>DSL обычно гораздо ближе к предметной области.


Это похоже на правду.

А>У вас универсальный статически типизированный ЯП, хоть и неполноценный.


Я думаю, что мой язык стоит рассматривать как замену описания модели в каком-нибудь xml или json'е.

А>По крайней мере, основы вашего языка повторяют дизайн универсальных ЯП.


Я старался сделать язык как можно более похожим на распространенные ЯП, чтобы было проще его изучить.

А>Можете привести пример конструкции из вашего языка, дающую преимущество перед библиотечной реализацией?


Было

from marketsim import (Side, observable, registry, meta, ops, _, orderbook, types)
from marketsim.types import *

import _wrap
from _signal import Signal
    
class TwoAverages(ops.Observable[Side]):
    
    def getDefinitions(self):
        return { 
            'price' : observable.MidPrice(self.orderBook),
        }
    
    def getImpl(self):
        return Signal((observable.EWMA(_.price, self.ewma_alpha1) 
                     - observable.EWMA(_.price, self.ewma_alpha2)),
                     self.threshold)
    
_wrap.function(TwoAverages, ['TwoAverages side'], 
             """ Two averages is a signal that compares two averages of price of the same asset but
                 with different parameters ('slow' and 'fast' averages) and when 
                 the first is greater than the second one it buys, 
                 when the first is lower than the second one it sells
                 
                 It has following parameters:

                 |ewma_alpha1| 
                     parameter |alpha| for the first exponentially weighted moving average
                     (default: 0.15.)
                      
                 |ewma_alpha2| 
                     parameter |alpha| for the second exponentially weighted moving average
                     (default: 0.015.)
                      
                 |threshold| 
                     threshold when the trader starts to act (default: 0.)
             """,
             [
              ('ewma_alpha1',           '0.15',                          'non_negative'),
              ('ewma_alpha2',           '0.015',                         'non_negative'),
              ('threshold',             '0.',                            'non_negative'), 
              ('orderBook',             'orderbook.OfTrader()',          'types.IOrderBook'),
             ], 
               globals())


Стало:

    /**
      * Two averages strategy compares two averages of price of the same asset but
      * with different parameters ('slow' and 'fast' averages) and when
      * the first is greater than the second one it buys,
      * when the first is lower than the second one it sells
      */
    type CrossingAverages(
            /** parameter |alpha| for exponentially weighted moving average 1 */
            alpha_1 = 0.15,
            /** parameter |alpha| for exponentially weighted moving average 2 */
            alpha_2 = 0.015,
            /** threshold when the trader starts to act */
            threshold    = 0.,
            /** asset in question */
            book = .orderbook.OfTrader()) : SideStrategy
    {
        def Side = (book~>MidPrice~>EW(alpha_1)~>Avg -
                    book~>MidPrice~>EW(alpha_2)~>Avg)
                        ~>Signal(threshold)~>S_Side
    }


Соответственно, dsl версия статически типизируется, лучше отлавливаются ошибки, ide-friendly, проще объяснить пользователю, как ей пользоваться.


AVK>>К примеру, довольно странно было бы видеть в нормальном языке программирования наследование целых чисел от чисел с плавающей точкой, но в дсле это оказалось очень удобно.


А> То, что у вашего ЯП кривой дизайн, не превращает его в DSL.


Т.е. утверждается, что целые числа не есть частный случай вещественных чисел?

AVK>>Одно время этот язык был реализован как внутренний дсл на питоне, но после попыток объяснить пользователям, какие возможности питона можно использовать, а какие — нет, я понял, что проще написать внешний дсл с четко очерченной семантикой.


А>Ну так и написали бы DSL, а не статически типизированный ЯП. Вы серьезно утверждаете, что людям ваш статически типизированный ЯП будет проще освоить, чем Python или Mathematica, например? То, что какой-то умный стажер его освоил, ни о чем не говорит. Стажеры еще и не такое осваивают. Среди программистов полно людей без высшего образования, которые осваивают любые языки. Вы думаете, умный стажер не может освоить Хаскель?


После написания библиотеки на питоне я пришел к выводу, что пользователю проще будет изучить мой микроязык

AVK>>Сложность изучения новых языков по сравнению с библиотеками сильно преувеличена. Например, изначально я планировал написать парсер, используя boost::spirit, но быстро понял, что значительно продуктивней будет изучить с нуля скалу и на ней уже писать парсер. От начала изучения скалы до работающей первой версии парсера прошло около 3 недель.


А>Это несерьезные рассуждения. Сложность освоения новых языков, особенно языков с кривым дизайном, очень высока. Человек, освоивший язык за три недели, будет писать "ламерский" код, делать глупые ошибки, не использовать общепринятые подходы в типичных местах, потому что он всего этого не знает, и, в конечном итоге, тратить время впустую.


Умозрительные заключения. Мой же опыт говорит, что, начиная с некоторого порога сложности, пользователям проще изучить дсл нежели разбираться с библиотекой.

А>К тому же, что ему потом делать со знанием этого чудо-языка? Если бы он знал Python, например, у него была бы возможность применить это знание позже. А ваш чудо-язык ему останется только засунуть куда-нибудь.


Что делать пользователю со знанием еще одной библиотеки?

AVK>>Идеи имеют свойство перетекать между языками программирования, так что при появлении нового языка программирования достаточно понять, чем он отличается о существующих языков и какие новые идеи привносит.


А>Какие новые идеи? Серьезно? Дайте угадаю: никаких. Он привносит кривизну и убогость вроде наследования int от float.


Я не имел в виду именно мой язык, но если посмотреть на развитие современных языков, то видно, как идеи кочуют из одного в другой. Например, тот же котлин делался с оглядкой на скалу.

А>Слушайте, почти все популярные языки разработаны умнейшими людьми своих поколений, людьми, которые занимались разработкой и улучшением этих языков полжизни. И все эти языки кривые и убогие, с кучей проблем, нелогичностей, ошибок в дизайне и т.п.


А>Неужели у вас такое высокое самомнение, что вы собираетесь всех эти умных людей переплюнуть, да еще и привнести "новые идеи"?


Эти великие умы разрабатывали универсальные ЯП, предназначенные для широкого спектра задач. Когда разрабатывается универсальный ЯП, найти баланс между различными ограничениями значительно сложнее нежели чем для заточенного под конкретную задачу языка.

А>Да, у вас высокое самомнение. Я думаю, это истинная причина, стоящая за вашими рационализациями.


Знать бы, как его измерить, чтобы так безаппеляционно утверждать. Разрабатывая язык, я всецело исходил из прагматических соображений.
Re[5]: моделирование трейдеров
От: Артeм Австралия жж
Дата: 08.03.14 09:44
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>
AVK>    type CrossingAverages(
AVK>            /** parameter |alpha| for exponentially weighted moving average 1 */
AVK>            alpha_1 = 0.15,
AVK>            /** parameter |alpha| for exponentially weighted moving average 2 */
AVK>            alpha_2 = 0.015,
AVK>            /** threshold when the trader starts to act */
AVK>            threshold    = 0.,
AVK>            /** asset in question */
AVK>            book = .orderbook.OfTrader()) : SideStrategy
AVK>    {
AVK>        def Side = (book~>MidPrice~>EW(alpha_1)~>Avg -
AVK>                    book~>MidPrice~>EW(alpha_2)~>Avg)
AVK>                        ~>Signal(threshold)~>S_Side
AVK>    }
AVK>


Второй вариант синтаксически близок к Скале.
Re[6]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 08.03.14 09:53
Оценка:
Здравствуйте, Артeм, Вы писали:

AVK>>
AVK>>    type CrossingAverages(
AVK>>            /** parameter |alpha| for exponentially weighted moving average 1 */
AVK>>            alpha_1 = 0.15,
AVK>>            /** parameter |alpha| for exponentially weighted moving average 2 */
AVK>>            alpha_2 = 0.015,
AVK>>            /** threshold when the trader starts to act */
AVK>>            threshold    = 0.,
AVK>>            /** asset in question */
AVK>>            book = .orderbook.OfTrader()) : SideStrategy
AVK>>    {
AVK>>        def Side = (book~>MidPrice~>EW(alpha_1)~>Avg -
AVK>>                    book~>MidPrice~>EW(alpha_2)~>Avg)
AVK>>                        ~>Signal(threshold)~>S_Side
AVK>>    }
AVK>>


А>Второй вариант синтаксически близок к Скале.


Одно время я планировал его сделать как внутренний дсл на скале, но для этого скорость компиляции кода на скале совершенно неприемлимая.
Re[3]: моделирование трейдеров
От: __kot3 США  
Дата: 09.03.14 10:27
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Уже сейчас используется аспирантами. Для них в первую очередь и предназначалось.


Для исследований торговый стратегий, придуманных аспирантами?

AVK>Можно ли поподробнее о том, какой синтаксис считается выразительным?


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

AVK>Насчет деривативов пока что задачи не стояло, но принципиальных ограничений для их реализации я не вижу.


OK

AVK>Некоторые стратегии торгуют разными инструментами


Т.е. это поддерживается?
Re[4]: моделирование трейдеров
От: Anton V. Kolotaev  
Дата: 09.03.14 10:47
Оценка:
Здравствуйте, __kot3, Вы писали:

AVK>>Уже сейчас используется аспирантами. Для них в первую очередь и предназначалось.


__>Для исследований торговый стратегий, придуманных аспирантами?


Грубо говоря, аспиранты занимаются тем, что пытаются понять, каким образом используемые трейдерами стратегии влияют на различные макропоказатели. Например, каков нужен минимальный набор трейдеров, чтобы начать наблюдать volatility smile. Соответственно, аспиранты берут не очень сложные стратегии, которые используются на практике, и их крутят. Задачи нахождения выигрышной стратегии не стоит.

AVK>>Можно ли поподробнее о том, какой синтаксис считается выразительным?


__>В этом-то и дело, что нет очевидной ясности того, зачем нужно вводить новый ЯП, если он не привносит ничего, специфичного для бизнеса.


Потому что реализацией в виде библиотеки было неудобно пользоваться (в особенности новичкам-математикам)

AVK>>Некоторые стратегии торгуют разными инструментами


__>Т.е. это поддерживается?


Да. Пока что ради примера сделан арбитраж трейдер, но ограничений делать стратегии, торгующими несколькими инструментами, нет абсолютно.
Re[5]: моделирование трейдеров
От: Аноним  
Дата: 09.03.14 11:31
Оценка: 1 (1)
Здравствуйте, Anton V. Kolotaev, Вы писали:

Если резюмировать, то:

* язык изучается в основном людьми, не имеющими опыта в программировании;

* библиотечная реализация не подтвердила своего удобства.

Тогда я могу взять свои слова и брызганье слюной обратно насчет разработки нового языка.

Тем не менее, мне кажется, что DSL можно было бы сделать более "конкретным" и приближенным к предметной области. Синтаксический сахар и другие особенности универсальных языков в DSL — это не очень верное направление. Я понимаю, что это довольно привлекательное занятие — конструирование ЯП, но в случае DSL у вас есть возможность сократить решение конкретных задач, не повторяя этоть путь универсальных языков с абстрактными базовыми конструкциями, из которых делается что-то более сложное. Я смотрел доклад одного из разработчиков Скалы, который проклинал синтаксический сахар и жаловался на то, что в Скале нет соответствия между тем, что вы пишете и тем, что в итоге выполняется. Это, кстати, одна из проблем, по которым Скала так медленно компилируется. Странно повторять те же ошибки в DSL, поскольку там у вас есть возможность вводить конкретные языковые конструкции для конкретных задач, без промежуточных слоев.
Re: моделирование трейдеров
От: dsorokin Россия  
Дата: 09.03.14 13:50
Оценка:
Спасибо за анонс! Это интересно.

Честно говоря, не очень разбираюсь в финансовой теме. Это можно описать через (discrete event simulation) DES?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.