3Qu
3Qu личный блог
10 февраля 2022, 17:01

Прямая пропаганда Python.

Спрашивал многих — на чем вы моделируете и отрабатываете стратегии? Ответы — Луа, С #, Delphi, C++, Java, php и пр.  Хорошие языки, спору нет. Но хороши они для релиза. И лишь немногие при моделировании стратегий работают с Python.
Чем хорош Python?.. Это простота изучения — с нуля можно начать за считанные дни. Это громадные библиотеки — математические, машинное обучения, преобразования, работа с векторами и сложной графикой. Это простота моделирования — слабать стратегию можно за вечер.
Да, когда придет время релиза, придется все это переписывать на другой язык, но библиотеки можно оставить из Python — они оч быстрые, написаны на С++. Интерфейсы ко многим языкам имеются.
Для проверки ваших рыночных гипотез и моделирования стратегий переходите на Python. Чем могу, помогу. Но не обучаю, для этого книги есть- ничего сложного. По книгам и среде посоветую, для начала.

PS. Так, для справки, если покопаетесь в инете, то увидите, что NASA уже почти все пишет и моделирует на Python, и уже потом критические участки кода переводит на С++.
102 Комментария
  • Mityan
    10 февраля 2022, 17:08
    Поддерживаю. 
  • 이익
    10 февраля 2022, 17:12
     очень удобный язык, особенно c colab и yfinance.
  • Строгий бык
    10 февраля 2022, 17:13
    А где можно посмотреть простейший пример реализации моделирования на Python простейшей стратегии? Может в книге, или еще какой источник? 
  • "Хедж Фонд "Orange Tie"
    10 февраля 2022, 17:14
    потом ещё придумают террагигагерцовые процессоры, классы написаны на питоне, питон написан на с++, с++ написан на с, с написан на асме

    количество глюков и ошибок в геометрической прогрессии
    • Roman Resner
      10 февраля 2022, 17:16
      Андрей Первозванный, И тем не менее, никто уже не пишет на Ассемблере, Мало кто пишет на С. так что за питоном будущее и подобными языками. Сложность кода растёт, как и мощности вычислительные, так что на первый план выходит как написать побольше и побыстрее.  
      • CloseToAlgoTrading
        10 февраля 2022, 18:52
        Зажиточный бюргер, Это вы очень ошибаетесь про си и ассемблер, но для  обычного трейдинга это конечно лишнее :)… что не скажешь о хфт и их фпга девайсах если конечно еще такое делают.
        • Андрей К
          10 февраля 2022, 19:12
          CloseToAlgoTrading, слышал, что еще делают
        • Roman Resner
          10 февраля 2022, 19:24
          CloseToAlgoTrading, я не очень ошибаюсь я вообще не ошибаюсь. Достаточно взять и посмотреть какую долю популярности раньше ассемблер и с занимали и сейчас.
  • Replikant_mih
    10 февраля 2022, 17:15

    Python тема чё).

    Но вообще не совсем корректно. Стратегии пишутся не на языке, а на язык-фреймворк-платформа[-библиотека]. На питоне без какой-то платформы, библиотеки для тестирования именно стратегий ну можно таблички векторно посчитать, распределения построить, графики всякие, но это не стратегии, а если стратегии, то простые, а если не простые то для каждой стратегии нужно заново делать одни и те же телодвижения.

     

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

  • John Smith
    10 февраля 2022, 17:19
    Ответы — Луа, С #, Delphi, C++, Java, php и пр.  Хорошие языки, спору нет.

    Я бы не назвал lua хорошим языком.
      • John Smith
        10 февраля 2022, 17:56
        И эти цели точно не торговые роботы. Разрабы квика, осчастливившие  пользователей таким прекрасным языком, должны гореть в аду.
  • Механик Рынка
    10 февраля 2022, 17:50
    Ну вооот питонисты проснулись… Хоть бы один чего для трейдинга написал…
    • Алексей Никитин
      10 февраля 2022, 18:14
      Firetrade, у меня для трейдинга на питоне нейросети написаны.
      • Replikant_mih
        10 февраля 2022, 18:17
        Алексей Никитин, В боевой торговле нейросети используете? Расскажете поподробней? Очень любопытно.
        • Алексей Никитин
          10 февраля 2022, 18:25
          Replikant_mih, все кто пойдет этой дорогой обречены. Больше тут добавить нечего. 
          • Replikant_mih
            10 февраля 2022, 18:35
            Алексей Никитин, Ясн)
        • Алексей Никитин
          10 февраля 2022, 18:43
          3Qu, вся прелесть нейросетей в том, что каждый пляшет с этим бубном как хочет )))
  • vlad1024
    10 февраля 2022, 18:21
    Как первый язык python прекрасен. Для ресеча вообще огонь. Ну и для не спешного бэк-тестинга и исполнения тоже ок.
    • Алексей Никитин
      10 февраля 2022, 18:29
      vlad1024, я гигабайтную маркетдату тестирую, очень даже быстрый бектестинг получается )) 
    • Roman Ivanov
      10 февраля 2022, 19:23
      vlad1024, про первый язык очень спорно. Может оболванить без надежды на исцеление.
      • vlad1024
        10 февраля 2022, 19:25
        Roman Ivanov, во всех топовых западных вузах, идет как первый язык, а дальше уже каждый сам решает надо ему углублять знания или нет. Но я помню как тут советовали первым языком учить C# это вообще финиш.
  • Goreloff
    10 февраля 2022, 18:31
    Простой? Питон очень сложный язык. Генераторы списков, декораторы функций, метаклассы, монады, мозг взрываеца
    • Эммануил Губерман
      11 февраля 2022, 04:53
      Goreloff, ну в других языках реализация подобных вещей вообще зашквар.
  • trd-u
    10 февраля 2022, 19:52
    Так с каких книг начинать надо?
  • _xXx_
    10 февраля 2022, 20:51
    А какие либы написаны на C++ для python из тех что в статистике используются, скажем?
    • Mityan
      10 февраля 2022, 21:01
      _xXx_, у питона вообще С++ по капотом, он весь на нем написан.
      Но кроме того есть еще и разница в скорости работы, гигантская. между случаем. когда ты например в цикле  функцию применяешь к каждому элементу итератора, или к массиву numpy сразу. целиком.
      Математика. статистика — это библиотеки numpy, scipy, sympy.
      Из sympy можно Си-код генерировать даже.
      • _xXx_
        11 февраля 2022, 00:00
        Mityan, так питон же интерпретируемый язык… Ему что, JIT как в джаве сделали?
        • Mityan
          11 февраля 2022, 00:25
          _xXx_, JIT есть в питоне. да.
          как конкретно работает — не разбирался

          вот взгляните (если будет разборчиво):
          возведение в квадрат чисел от 0 до 10000 — 2.7 миллисекунды просто в питоне.
          и 15.6 микросекунды с помощью массива numpy



          • _xXx_
            11 февраля 2022, 00:58
            Mityan, спасибо, мощно.
            Обычно в примерах пишут что С раз в 30 быстрее питона.
            А тут нампи в 150 раз быстрее питоньего кода.
            Т.е. еще в 5 раз быстрее, чем тот же код на С.
            • Value
              11 февраля 2022, 05:40
              _xXx_, NumPy сам написан на Си. Как он может быть быстрее, чем Си?
  • FranzFerdinand
    10 февраля 2022, 21:17
     Придумайте рифму на слово питонисты
  • Alex_Gold
    10 февраля 2022, 21:43
    сейчас без знания питона (простите программисты ибо я ламер) только региональные финансисты и управы еще обходятся, в Мск без начальных знаний количественного анализа Ты вообще ноль. Думаю через поколение финансистов (адвизори, портфельные управы, инвест советники) которые бы не знали основы Питона и дата сайенса вообще не будет. Язык будущего ИМХО. Тож чуть-чуть моделирую на нем. Реально топ.
  • Andrew Morozov
    10 февраля 2022, 22:37
    Одна из последовательностей Хофштпдтера, male-female.

    Код на пайтоне:

    def F(n): return 1 if n == 0 else n — M(F(n-1))
    def M(n): return 0 if n == 0 else n — F(M(n-1))

    print ([ F(n) for n in range(20) ])
    print ([ M(n) for n in range(20) ])

    тоже самое на С++

    #include <iostream>
    #include <vector>
    #include <iterator>

    class Hofstadter
    {
    public:
    static int F(int n) {
    if ( n == 0 ) return 1;
    return n — M(F(n-1));
    }
    static int M(int n) {
    if ( n == 0 ) return 0;
    return n — F(M(n-1));
    }
    };

    using namespace std;

    int main()
    {
    int i;
    vector<int> ra, rb;

    for(i=0; i < 20; i++) {
    ra.push_back(Hofstadter::F(i));
    rb.push_back(Hofstadter::M(i));
    }
    copy(ra.begin(), ra.end(),
    ostream_iterator<int>(cout, " "));
    cout << endl;
    copy(rb.begin(), rb.end(),
    ostream_iterator<int>(cout, " "));
    cout << endl;
    return 0;
    }

    … DLang

    import std.stdio, std.algorithm, std.range;<br /> <br />int male(in int n) pure nothrow { return n ? n - male(n - 1).female : 0; }<br /> <br />int female(in int n) pure nothrow { return n ? n - female(n - 1).male : 1; }<br /> <br />void main() {<br />    20.iota.map!female.writeln;<br />    20.iota.map!male.writeln;<br />}

     

    Никакая не рекомендация, так просто, размышления..
    Это я к тому, что с++ уж очень безобразен становится последнее время
     
  • Andrew Morozov
    10 февраля 2022, 22:40
    Отсюда пример взят rosettacode.org/wiki/Mutual_recursion#D
  • Turbo Pascal
    11 февраля 2022, 09:05
    Всю жизнь пишу на C++, C#, Delphi/Pascal, PL/SQL, недавно на Lua.

    Блин, Питона освоить не могу, вот реально, раза три пробовал. Он ваще нелогичный, тупой язык.
    • Replikant_mih
      11 февраля 2022, 10:58
      Turbo Pascal, он не тупой, он просто… расслабленный)).


    • Andrew Morozov
      11 февраля 2022, 13:42
      Turbo Pascal, аналогично. У меня не такой большой перечень  я пишу только на с++. А начало было совсем экзотика  ,  разработка логики контроллеров. Писать приходилось сразу бинарный код. Я думаю что людям  которые пришли в профессию уже во время 14-17 стандарта, питон намного легче заходит .. 
  • Andrew Morozov
    11 февраля 2022, 15:28
    Не согласен. С основами разбираться  да  не проблема. Пару сотен строк простого кода могу написать на третий день знакомства на любом языке. А вот дальше идут средства разработки, фреймворки, библиотеки и прочее. Это уже несколько иные вещи  требуется приличный срок,, мотивация и время  
  • deke
    11 февраля 2022, 23:45
    Разработчики Python изобрели dll hell во второй раз. С несовместимыми версиями библиотек можно сойти с ума. В одном месте исправил — в другом поломалось.
      • deke
        12 февраля 2022, 03:23
        3Qu, я такой дичи нигде не встречал, а у меня этого добра навалом и дома и на работе. Огромная цепочка зависимостей, которую менеджер пакетов pip не в состоянии разрешить. Тотальная несовместимость всего и вся — это тоже уникальная особенность питона.
          • deke
            12 февраля 2022, 15:34
            3Qu, точно мне одному не нравится? Погугли «Python Dependency Hell»

            Для внутренних проектов он хорошо подойдет, но распространять такую поделку конечным пользователям — самоубийство.
              • deke
                12 февраля 2022, 16:26
                3Qu, Питон все же под Линукс больше заточен, на Винде не все библиотеки есть и нормально разрулить в инсталляторе все зависимости не получится. Я пробовал пару лет назад — запустить получилось только в Linux Subsystem, но после установки второго проекта все рухнуло и Linux больше не запускался. Проще оказалось отдельный VPS под каждый проект запускать, чем виртуальные среды настраивать.

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

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

                А обратная совместимость — это просто песня. У какоего еще языка программирования нарушается совместимость в минорных релизах?
                  • deke
                    14 февраля 2022, 20:47
                    3Qu, так я разрабатываю продукты для конченых пользователей и смотрю со своей колокольни. Если что-то ковырять у себя дома на коленке, то вопросов нет.

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

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