Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Предметно-ориентированных языков (конкретные языки домен) в финансы
Кто-нибудь работал с DSLs (доменными языками) в домене finance? Я планирую ввести некоторую поддержку DSL в приложение, над которым я работаю, и хотел бы поделиться некоторыми идеями.
Я нахожусь на стадии определения наиболее стабильных элементов домена и выбора функций, которые лучше всего будут реализованы с помощью DSL. Я еще не определил синтаксис для этой первой функции.
Финансовые контракты были элегантно смоделированы как DSL Саймоном Пейтоном Джонсом и Jean-Marc-Erby. Их DSL, встроенный в Haskell, представлен в статье, Как написать финансовый контракт .
Джей Филдс и Оби Фернандес много писали и говорили на эту тему.
- Jay Fields intro на доменных языках
- Серия Джея Филдса о естественном языке бизнеса
- Оби Фернандес выражает условия контракта в a DSL
- Очень хорошая презентация на infoQ от Джея Филдса
Вы также найдете общие сведения о реализации DSL в трудах Мартина Фаулера (но не специфичные для финансов).
Доменные языки (DSLs) наиболее часто используются для представления финансовых инструментов. Каноническая статья-это сочинение Саймона Пейтона Джонса "контракты: приключение в финансовой инженерии ", которое представляет контракты с использованием библиотеки комбинаторов в Haskell. Наиболее заметным использованием комбинаторного подхода является язык LexiFi MLFi, который построен поверх OCaml (их CEO, Жан-Марк Эбер, является соавтором статьи о составлении контрактов). Компания barclay's в какой-то момент скопировала этот подход и описала некоторые дополнительные преимущества, такие как возможность генерировать удобочитаемые математические формулы ценообразования ( коммерческое использование: переход к функционалу на экзотических сделках ).
DSLs для финансовых контрактов обычно строятся с использованием встраивания в функциональный язык, такой как Haskell, Scala или OCaml. Внедрение функциональных языков программирования в финансовую индустрию будет и впредь делать этот подход привлекательным.
В дополнение к представлению финансовых инструментов, DSLs также используются в финансах для:
- Моделирование финансовых объектов с помощью языков онтологий (Financial Industry Business Ontology )
- Замена вычислений, обычно описываемых с помощью электронных таблиц (http://doi.acm.org/10.1145/1411204.1411236 )
- Моделирование пенсионных планов ( кейс-стади: финансовые услуги )
- Анализ данных финансового рынка ( язык ежа )
Я веду полный список финансовых DSLs документов, переговоров и других ресурсов в http://www.dslfin.org/resources.html .
Если вы хотите встретиться с профессионалами и исследователями, работающими с DSLs для финансовых систем, то 1 октября на конференции MODELS 2013 в Майами, штат Флорида, состоится следующий семинар: http://www.dslfin.org/
Мы работали над идеей создания финансовой оценки DSL с Fairmat ( http://www.fairmat.com )
-он предоставляет DSL, который может быть использован для выражения выплат и платежных зависимостей -он содержит модель расширения для создания новых типов аналитических и реализаций теоретической динамики с использованием .NET/ C# с нашей базовой математической библиотекой (см. Некоторые примеры с открытым исходным кодом на https://github.com/fairmat
Я думаю, что работа Саймона Пейтона Джонса и Жан-Марка Эбера является самой впечатляющей из-за "Composing Contracts: an Adventure in Financial Engineering" и всего, что вытекает из этого: "LexiFi и MLFi ".
Нашел реализацию Шахбаза Чаудхари Scala наиболее привлекательной, учитывая, что MLFi не является общедоступной (и потому что Scala как функциональный язык более доступен, чем Haskell).
Смотрите "Adventures in financial and software engineering" и другие материалы, на которые ссылаются оттуда.
Я осмелюсь повторить вырезку для представления о том, что может сделать эта реализация.
object Main extends App {
//Required for doing LocalDate comparisons...a scalaism
implicit val LocalDateOrdering = scala.math.Ordering.fromLessThan[java.time.LocalDate]{case (a,b) => (a compareTo b) < 0}
//custom contract
def usd(amount:Double) = Scale(Const(amount),One("USD"))
def buy(contract:Contract, amount:Double) = And(contract,Give(usd(amount)))
def sell(contract:Contract, amount:Double) = And(Give(contract),usd(amount))
def zcb(maturity:LocalDate, notional:Double, currency:String) = When(maturity, Scale(Const(notional),One(currency)))
def option(contract:Contract) = Or(contract,Zero())
def europeanCallOption(at:LocalDate, c1:Contract, strike:Double) = When(at, option(buy(c1,strike)))
def europeanPutOption(at:LocalDate, c1:Contract, strike:Double) = When(at, option(sell(c1,strike)))
def americanCallOption(at:LocalDate, c1:Contract, strike:Double) = Anytime(at, option(buy(c1,strike)))
def americanPutOption(at:LocalDate, c1:Contract, strike:Double) = Anytime(at, option(sell(c1,strike)))
//custom observable
def stock(symbol:String) = Scale(Lookup(symbol),One("USD"))
val msft = stock("MSFT")
//Tests
val exchangeRates = collection.mutable.Map(
"USD" -> LatticeImplementation.binomialPriceTree(365,1,0),
"GBP" -> LatticeImplementation.binomialPriceTree(365,1.55,.0467),
"EUR" -> LatticeImplementation.binomialPriceTree(365,1.21,.0515)
)
val lookup = collection.mutable.Map(
"MSFT" -> LatticeImplementation.binomialPriceTree(365,45.48,.220),
"ORCL" -> LatticeImplementation.binomialPriceTree(365,42.63,.1048),
"EBAY" -> LatticeImplementation.binomialPriceTree(365,53.01,.205)
)
val marketData = Environment(
LatticeImplementation.binomialPriceTree(365,.15,.05), //interest rate (use a universal rate for now)
exchangeRates, //exchange rates
lookup
)
//portfolio test
val portfolio = Array(
One("USD")
,stock("MSFT")
,buy(stock("MSFT"),45)
,option(buy(stock("MSFT"),45))
,americanCallOption(LocalDate.now().plusDays(5),stock("MSFT"),45)
)
for(contract <- portfolio){
println("===========")
val propt = LatticeImplementation.contractToPROpt(contract)
val rp = LatticeImplementation.binomialValuation(propt, marketData)
println("Contract: "+contract)
println("Random Process(for optimization): "+propt)
println("Present val: "+rp.startVal())
println("Random Process: \n"+rp)
}
}
Отличную работу Томаша Petricek в F# очень стоит посетить.
Помимо парадигмы "DSL", я полагаю, что нам понадобятся вклады от ряда других мощных парадигм, чтобы иметь полный способ представить сложную семантику финансовых инструментов и финансовых контрактов, удовлетворяя реалиям "big data".
- Вероятностное программирование: Фигаро, Стэн и др.
- Аналитика больших данных: R, Spark, SparkR
- Масштабируемый "data fabric" ("вне памяти кучи"; на любом товарном оборудовании, но также и на разных языках): "DataFrames in Spark for Large Scale Data Science" (работает с R, Scala/Java и Python)
- Семантический веб: "финансовые тематические модели" и онтологии.
Стоит рассмотреть некоторые языки, упомянутые здесь: http://www.dslfin.org/resources.html