therollingstones
therollingstones личный блог
20 февраля 2017, 08:50

Первая конкретика по финансовому программированию!!! читать,обсуждать, проникаться!!!

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

Я напомню, по тегам start, rolling, можно найти все предыдущие топики. Но если этот топик для Вас первый, Вам очень повезло. Так как мне он стоил очень многих головных болей)) Итак, почему очень ценно то, что будет ниже. Очень сложно найти хороший материал. Потом, когда ты понимаешь, что нужно пользоваться оригиналами, а это справочник Microsoft, ты понимаешь, что там есть в общем — то все, но машинный перевод + данные разбиты по секциям, короче сложно сложно. Я нашел хорошую книгу, которую скоро добавлю, 

ЯЗЫК ПРОГРАММИРОВАНИЯ
C#5.0
И ПЛАТФОРМА .NET 4.5
б-е издание
Эндрю Троелсен

После нескольких месяцев довольно туманных исследований справочника Microsoft, я нашел это! Очень, очень, очень плавное введение в .NET, 
вот прям взяли и собрали все что нужно. В первой главе, введение в NET так и говорится, дословно, в первой главе "мы собрали информацию, которая вас научит думать как NET"

Ну а я, че я, я составил схему этого введения. 

Качаете книжку, открываете первую главу Философия NET, начитаете читать, потом понимаете, что схема очень хорошая вещь. Глава большая, схема включает только самые азы, основы, вы поймете до куда. Но, если вы начали знакомство с программированием с этого топика, Вам конкретно повезло. И развивайте ее!!! 

1drv.ms/i/s!Aik_YYEGJIBwhGxgtKVyvlLxciqK

Очень хорошо, что попалась эта книга.

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



18 Комментариев
  • Mikhail Sukhov
    20 февраля 2017, 09:14
    Программирование программированию рознь.

    У нас работают два типа кодеров: 1) кто очень хорошо знает C# и читал подобную книгу, и делает платформу 2) кто плохо знает C#, но умеет кодировать алгортмы и формулы.

    Для каждых задач свои потребности. Например, в подобных книгах делается сильный упор на GC + алгоритмы коллекций. В принципе, это бесполезные знания для разработки стратегий. И крайней важные, если делаются системные вещи, вроде коннекторов.
    • buybackoff
      20 февраля 2017, 22:32

      Mikhail Sukhov, те, кто плохо знают, как работают структуры данных и GC, могут запросто в своем алгоритме написать какую-нибудь мега-лямбду с LINQ, которая вместо O(1) или O(log(n)) будет O(n^2), и/ли new() во внутреннем цикле и мусорить так, что старания первой категории писателей платформы становятся напрасны при многомерной оптимизации на коротких таймфреймах и длинных данных. Сам грешил и видел такое, что специально не придумать. Как пример, буквально вчера бродил по ГитХабу в поисках новых репо на тему торговли, обратил внимание на этот метод  — вычисляют сумму полностью каждый раз (это O(n)) да еще и через Range (sic!), хотя могли бы добавлять новое значение и вычитать выбывающее значение (это O(1)), у вас в S# как бы почти так и сделано, но безобидный и удобный метод Sum() пересчитывает сумму каждый раз заново. Также вы или копите все значения инпута в буфере, или строчкой выше удаляете первый элемент, что для List тоже строго O(n) и много мусора — я с первого взгляда не понял, что значит isFinal. В Lean тоже используют List как буффер, но только как внутренний контейнер для circular buffer, который гарантирует смещение за O(1). Затем для рассчета суммы они вычитают выбывающую точку и добавляют новую точку, что также O(1). И это только для одного простейшего индикатора — а если их много вложенных, и надо прооптимизировать минутки честно walk-forward на большой решетке параметров, такие мелочи приводят к тому, что кто-то делает рассчет за пару минут, а кто-то — полчаса. Первые за час могут подкрутить стратегию много раз, пока вторые греют чай на процессоре :) На тему «бесполезности таких знаний» и premature optimization — мой любимый пост от гуру производительности, в котором есть еще примеры.

      (не шума ради дублирую, случайно удалил оригинальный коммент, но он сохранился в другом месте)

      • Сергей Гаврилов
        21 февраля 2017, 17:00
        buybackoff, пока Вы не вставите свой код в профайлер, то не увидите узких мест… И вполне вероятно, что Ваш Sum по сравнению со всем остальным будет самой быстрой частью…
        • buybackoff
          21 февраля 2017, 21:50
          Сергей Гаврилов, такие вещи копятся, а в профайлере обычно вылязат наверх.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн