3Qu
3Qu личный блог
28 января 2023, 19:28

В защиту Python (язык такой, программирования).

На чем чем только не писал стратегии — На VBA Excel, VB.NET (тогда еще так назывался), C#, C++. Не обошлось и без участия скриптовых языков Java Script, Lua. Не обошлось и без специализированных языков, R, например — вот где тягомотина по исполнению и большая помойка пакетов. Мож там и есть бриллианты, но кто будет искать бриллианты в помойке.) MQL4 -5 — эти, г… но полное — это не делай, туда не ходи — нах такие языки. Еще и другие были, всех и не перечислишь.
Лет, этак 5-7 тому перешел на Python (С++ тоже не забываю)). Python понравился резко и сразу. Стратегий на нем пока не писал, но моделировал много. Сейчас планирую сделать первую, для Binance. Ага, криптой торговать собираюсь. Я, так полагаю, что МОЕХ умер (или почти), и делать там абсолютно нечего. Умирал он долго и мучительно, аж с 14-го года. Жаль, вообще то, неплохой был рынок.
Итак, чем хорош Python. Это, в первую очередь, нулевой порог входа — вчера вы еще ничего не знали о нем, а сегодня уже нейросети и прочие machine learning применяете для своих задач. Да, с переменным успехом, но, ведь, применяете.) Не, ну, для тех, кто не в ладах с обычной логикой, любой язык программирования противопоказан, но не о них речь.
Всяких пакетов с самой разнообразной математикой море, все структурировано, все описано — бери, пользуйся. Такого количества и разнообразия библиотек на любой вкус и цвет ни для одного языка нет. Многие пакеты — это скомпилированные С++ программы, и о их быстродействии можно не беспокоится. Python здесь используется как язык сценариев, и его вклад в быстродействие минимален. Само совершенство. ©
Где-то читал, что в NASA Python основной язык программирования, а то, что критично для быстродействия, вначале моделируется и отрабатывается на Python, а потом отдельные куски кода переписываются на С++.
Многие причитают — ах, на питон нет тестера стратегий. Окститесь, ребята. Тестер стратегий не более чем цикл вида:

while(i < Iend):
    # ваша стратегия
    i = i +1

Все. Больше в тестере стратегии ничего нет. Получить любые данные из стратегии и потом посчитать нужные вам параметры, я полагаю, вообще не проблема. Я, скажем, получаю по каждой сделке больше 10--ти параметров. потом обрабатывайте как душе угодно, стройте графики (графики построить в Python  тоже не проблема)) + вывод на экран массы параметров теста — тоже не меньше десятка. Короче, делайте что хотите.
Вот примеры графических результатов.
В защиту Python (язык такой, программирования).В защиту Python (язык такой, программирования).
В защиту Python (язык такой, программирования).В защиту Python (язык такой, программирования).



В защиту Python (язык такой, программирования).В защиту Python (язык такой, программирования).
В защиту Python (язык такой, программирования).
Это все перед и по результатам тестирования. У меня этих графиков море, с каждого теста. Здесь случайно выбранные.
Тест на ~200 тыс свечей пролетает за несколько секунд, включая все — компиляцию, получение данных из базы данных, построение индикаторов и, вестимо, работу самой стратегии + печать параметров и вывод графиков на экран. Быстродействия им мало.)) Смешно.
Теперь о быстродействии Python.
Первый вопрос — а на хрена вам быстродействие?
Если у вас HFT, вопрос отпадает — у вас арендованный или свой сервер на самой бирже, прямое подключение к бирже без инета по локальной сети, программа на С++ или Ассемблере, обработка видеокартой или даже своем процессоре, и прочие радости. Нет? Тогда быстродействия Python за глаза хватит.
Допустим, у вас интрадей и сделки по несколько минут. Так подать заявку из Python — это микросекунды, идти до биржи и обрабатываться биржей будет дольше. Сделка от нескольких минут? — и чего вам тогда миллисекунды? — опять до биржи будет идти дольше. Вклад в ваши прибыль/убыток мизерный.
Хорошо, вы играете на 5-15 минутах или на часах-сутках — здесь вообще миллисекунды не играют никакой рояли.
Если вы считаете иначе — ну, ну, ваше право, разумеется. Но если вы все-таки считаете иначе, то скорее всего, дело не в задержках, а в самой стратегии. Отсутствие задержек вас никак не спасет.
В общем, Python — это лучший выбор как для моделирования, так и для реализации торговых систем. За очень редкими исключениямя.
Че-то я еще хотел написать в защиту Python от нападок лохов, но пока писал, забыл. Если что, дополню.

PS Да, Python достаточно быстр, но если вы хотите по ходу пьесы выводить на экран много данных и еще и графики, то операции ввода/вывода в любом языке занимают много времени — самые длительные по времени процедуры. Их следует по возможности избегать в любой ТС на любом языке.
136 Комментариев
  • Roman Ivanov
    28 января 2023, 19:36
    первый!
  • Roman Ivanov
    28 января 2023, 19:37
     алготрейдить можно по-разному, мне не подходит, медленный и не многопоточный
      • Roman Ivanov
        28 января 2023, 19:49
        3Qu, чтобы что-то торговать, надо разработать страту. Разработанное желательно уметь переносить не переделывая. Значит платформа разработки и торговли должна быть единая. А при разработке страт требуется оптимизация, а для нее python может бытьмедленный.
          • Roman Ivanov
            28 января 2023, 22:43
            3Qu, при оптимизации должен быть 1 критерий, но зачем тебе про него знать, раз оптимизация не нужна
          • Антон Б
            29 января 2023, 00:47
            3Qu, системно любая идея это подгонка под историю.
            надо считать форвард тесты.
            лесенкой...
            а возможно оут оф сампле собирать определенным образом)

            • SergeyJu
              29 января 2023, 12:20
              Антон Б, форвард тесты в известном смысле ничем не намного лучше  простой подгонки. Потому что все равно приходится выбирать что-то, что лучше другого. 
              • Антон Б
                29 января 2023, 12:59
                SergeyJu, лучше.
                и это статистически доказуемо.
                но конечно не идеально)
                есть лучше способы нахождения out of sample.
                форвард не лучший но статистически работающий.
                и понятный обычным людям — заказчикам, начальникам.
                • SergeyJu
                  30 января 2023, 09:47
                  Антон Б, как говорил мне один знакомый хирург, не обманешь — не порежешь. 
                  У меня, слава Богу, нет клиентов и я не включен в клиентский бизнес. 
        • Антон Б
          29 января 2023, 00:45
          Roman Ivanov, а еще есть pypy это версия питона с типизацией.
          еще +100..200% к питону.

          и практически 50% от с!!! голого си без плюсов.
          а еще он совместим прилично.

          а еще оптимизация если вы немного через математику на нее смотрите то это разряженные матрицы и какой-то доводчик типа генетики или нейронки.
          а это cuba и снова питон только теперь с видеокартой
          • Roman Ivanov
            30 января 2023, 01:07
            Антон Б, ой не заливай, 100-200% не спасут, ведт оверхед >100раз
      • Roman Ivanov
        28 января 2023, 19:51
        3Qu, не, не многопоточный в том смысле, что внутри одного процесса в один момент времени только один поток може работать. А многопроцессность мне не катит т.к. хочу большую общую память, а между процессами такая штука — большой оверхед.
          • Sergey Grigoryev
            29 января 2023, 00:37
            3Qu, не понял. А gil отменили????
          • Roman Ivanov
            30 января 2023, 01:08
            3Qu, честная то она честная, только GIL все сводит на нет.
              • Roman Ivanov
                30 января 2023, 20:14
                3Qu, так яж хочу написать логику торгового алгоритма чтобы ее быстро прогонять на барах. Выходит, что я логику алгоритма должен на Си писать?
                  • Roman Ivanov
                    30 января 2023, 20:37
                    3Qu, это не рилтайм, это оптимизация, тут надо быстро!
        • Антон Б
          29 января 2023, 00:50
          Roman Ivanov, общая память отлично работает.
          а еще есть pipe name — именованные каналы в памяти как файлы.
          только в памяти.
          так они вообще при должном навыке на кластер распараллеливаются даже в винде 2000+ )
          и еще от языка не зависят. записал на питоне а прочитал на с и результат в канал ответа другой)
            • Антон Б
              29 января 2023, 01:02
              3Qu, pipe name быстрее.
              а еще из другой машины доступны.
              (виртуалки\докера\етс)

              а это отделения генератора сигнала от исполнителя.
              а это важно.
              — доб проверки сигналов — они универсальны
              — можно один раз написать фильтр на частоту сигналов,
              … на все)
              … на убытки, на размер позиции.

              — ключи от аккаунтов
              — разная отвественность\собственность генератора сигнала и исполнителя.
                • Антон Б
                  29 января 2023, 01:06
                  3Qu, в основном это хороший способ отделить исполнитель от решателя.
                  но и  sql тоже подойдет.
                  по факу это копировщик сделок, только не с реального счета а с виртуального.

                  (а значит и с реального в комплекте если решатель читает чужой счет или сумму счетов)
          • Roman Ivanov
            30 января 2023, 01:05
            Антон Б, уже попробовали. Для CPU-bound задач, то что делает Си на одном ядре, не делает python и на 70 ядрах.
            • Антон Б
              30 января 2023, 22:19
              Roman Ivanov, посмотрите pypy это другой движок питона.
              и он разы быстрее самого питона.
              www.pypy.org/

              как раз там где нужна строгая типизация.
              и хорошее распараллеливание.

              ну и да голый с будет все равно быстрее.
              но уже не в несколько раз. а раза в два. не более.
              но разрабатывать то на питоне быстрее.
              • Roman Ivanov
                30 января 2023, 23:35
                Антон Б, и остаться без pandas и многих других библиотек?
    • Антон Б
      29 января 2023, 00:42
      Roman Ivanov, потоки кстати к питону прибиты.
      из коробки один поток это да.
      распараллеливается на ядра процессора хорошо.

        • Антон Б
          29 января 2023, 01:08
          3Qu, код тоже придется под него переписывать.
          так что не только)
            • Антон Б
              29 января 2023, 01:13
              3Qu, а с чего программа будет правильно структурирована если человек даже не знал что можно в много потоков на питоне?
              сама по себе?

              вот ее и нужно структурировать перед этим.
              или в процессе.
              а это уже другой код.
      • Roman Ivanov
        30 января 2023, 01:09
        Антон Б, ничего не понял
  • vovA4546
    28 января 2023, 19:41
    там где не нужна скорость, пайтон хорош, (для торговых программ подойдет, вполне). Но если речь идет о скорости, то увы, пробовал как то сравнивать скорость выполнения небольших кусков кода на пайтоне и с++, пайтон в десятки раз медленнее (библиотеки, написанные на с++ не в счет).
      • Replikant_mih
        28 января 2023, 19:50
        3Qu, Могут быть не очень сложные алгоритмы, а могут и посложнее, а могу и сложные, и стратегий может быть много и тикеров, на которых они торгуются. Вот уже и оказалось, что уже нормальные времязатраты набежали.
      • vovA4546
        28 января 2023, 20:25
        3Qu, согласен, я имел в виду не трейдинг, а другие области применения. Для трейдинга можно что угодно использовать, я сам написал на бейсике вооще, (vba excel), потом обнаружил, что робот то у меня есть, а торговой стратегии нет :)
      • websan
        29 января 2023, 11:14
        3Qu, даже внутри минуток нужна скорость, питон здесь не идеал (((
    • SergeyJu
      29 января 2023, 12:24
      vovA4546, задержка на квике будет примерно 0,1 сек за это время черта можно обсчитать, не то что десяток стратегий. А если вспомнить, что люди еще торгуют в АД или в Тиньке со смартфона, то и вообще странно заботиться о скорости питона.
      Если нужна скорость, тогда идут плаза или фикс, коллокация биржи и пошло-поехало. 
  • Replikant_mih
    28 января 2023, 19:43
    Удивительно: где-то с 60-80% сказанного я не согласен, но при этом мне тоже нравится Python и тоже использую его в алго).
  • Roman Ivanov
    28 января 2023, 19:47
    А если пайтон так хорош, то наверное не должно быть разницы cpython или ironPython. А если есть, то может быть дело не в языке?
      • Roman Ivanov
        28 января 2023, 19:54
        3Qu, ты определись в каком пайтоне, их много
  • shprots
    28 января 2023, 19:47
    Насчёт R — дело вкуса. Мне намного приятнее питона заходило, по помоечности пакетов хз, вроде и питон весьма помоечный. Но пайтоновская универсально соблазняет.
    А так люто плюсую. Там где ХФТ — суровая оптимизация вообще всего, а для домашнего лампового бота скорости питона за глаза хватает.
    • Roman Resner
      28 января 2023, 19:55
      shprots, Написать то можно готового робота и  на С, это уже конечный продукт. Главное то сделать его рабочим, протестировать миллион вариантов.   
  • Roman Ivanov
    28 января 2023, 19:54
    Коварство удобных инструментов в том, что с ними легко стартануть, но почти не возможно выиграть в конкурентной гонке
    • Replikant_mih
      28 января 2023, 19:57
      Roman Ivanov, Коварство неудобных инструментов в том, что можешь заколебаться и сдаться, потухнуть и т.д.)
      • Roman Ivanov
        28 января 2023, 21:09
        Replikant_mih, при таком раскладе, может и не нужно было и начитать. Сэкономишь деньги и время. Так что нормально.
        • Replikant_mih
          28 января 2023, 22:15
          Roman Ivanov, Не обязательно. Не обязательно быть самым лучшим в чем-то чтобы преуспеть. Тебе может не хватить запала чтобы добраться до некоторой ключевой точки, где запас запала бы пополнился или ты перешел в другой режим. Ну типа одна из очевидных точек — точка безубыточности или прибыль или стабильная прибыль. Там уже в разы веселее и уже не нужны тонны голого энтузиазма. А если ты застрял в инфраструктуре или процессе или ещё в чем-то таком, ты уменьшаешь свои шансы добраться до этих точек и дальше уже в более комфортном режиме двигаться.
          • Roman Ivanov
            28 января 2023, 22:45
            Replikant_mih, сколько % в прошлом году наспекулил?
  • А. Г.
    28 января 2023, 20:22
    Проблема всех высокого уровня языков не в программировании и тестировании систем, а в удобной, интуитивно понятной и простой в кодировании связи с биржей:

    — полученное нужных биржевых данных в режиме онлайн;
    — выставление-снятие заявок;
    — отслеживание позиций, как теоретических  самой системы, так и в биржевой системе.

    А просто получить эквити для перебираемых параметров и отобрать интересную и полезную — это все равно на каком языке высокого уровня программировать, если имел опыт хоть на одном. Причем быстрее всего это сделать на том, на котором был опыт.

    Я дольше разбирался с адресацией двумерных массивов в VBA под Excel, чем писал собственно торговый алгоритм, а в C# перенес вообще быстро после того, как нашел alglib, заменивший мне расчет значений в VBA+ Excel по формулам, встроенным в последний. А почему быстро? Потому что опыт кодирования на С++ под DOS был.

    Причем новые возможности по графике, интерфейсам и т. п. вещам даже не изучал — они мне не нужны. Разве что работой с базами данных озаботился, так как обмен с Excel чисто по кодированию показался сложнее.

    Почему C#? Да потому что к нему написали (спасибо добрым людям) загрузку данных из любых таблиц квика по DDE. А перед этим я и выбрал Excel только потому что эта процедура для Excel делается нажатием пары кнопок в квике и нетинвесторе, который был моей программой интернет-трейдинга.

    Самое смешное, что первого «исполнителя» заявок из VBA+Excel я написал через обмен с квиком через текстовые файлы (есть такая опция в квике). Но когда переписывал на С# решил «сделать круто» и потратил неделю на написание исполнителя с использованием транс2квикдлл. Но при переходе квика с 32-х битной версии на 64-х битную он сломался и я за полдня написал исполнителя через старый добрый обмен текстовыми файлами. Все работает, как часы. Возникла необходимость торговать через Транзак: узнал, что и там есть обмен через текстовые файлы: изучение синтаксиса и вписывание допстрок в существующий исполнитель заняло 1 день. И опять все работает, как часы. Понял одно: чем «кандовее», тем проще и быстрее пишется и работает надёжнее.
    • SergeyJu
      29 января 2023, 12:29
      А. Г., если честно, меня от С подташнивает. После того, как я перестал работать на дядю, никаках си-подобных языков даже не рассматриваю. 
      Питон только начал изучать и сразу скажу — мне нравится. А что до быстродействия, то (не считая ХФТ) не вижу, зачем оно мне нужно в области трейдинга. Квик точно более тормозной, чем питон или  VBA. 

      • А. Г.
        29 января 2023, 16:10
        SergeyJu, ну я изначально работал над связкой с квиком и нетинвестром:

        Качаем из квика (нетинвестра) нужные данные-->обрабатываем в программе->посылаем команды в Квик (нетинвестор).

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

        Так как, кроме Excel, я другой связки для первой стрелки не знал (скрипты Метастока, Вэлслаба тех времён и Амиброкера не для моих систем), то и возник VBA. Вторую связку через текстовые файлы и аналог Трастменеджера мне вообще первый раз приданный мне трейдер написал под VBA летом 2008-го.  А в Риск-Инвесте ее написали программисты и не для меня, а для отдела трейдеров. С той программой я только как пользователь знаком и вообще не знал на чем она написана и как осуществляет обмен. А в Интрасте и поначалу в Риск-Инвесте и Фросте (куда ушел из Риск-Инвеста в сентябре 2007-го) вторая стрелка вообще была «ручной», упомянутый трейдер был взят на работу только в июле 2008-го.

        Это я зачем-то связался с транс2квикдлл, когда в уже в Форуме переходил на C#. Сначала  под давлением с подачи Арсена, а потом, когда нашел DDE-сервер от Морошкина, и самому понравилось. Почему вернулся к текстовым файлам, уже написал, но оказалось, что и в Транзаке это пригодилось. Пустячок, а приятно.

        А если  мне понадобится hft, то первым делом я во второй стрелке озабочусь заменой квика на твайн и подбирать язык буду исходя из этого.
      • Roman Ivanov
        30 января 2023, 01:12
        SergeyJu, попробуй rust. Может ине проблюешся.
        • SergeyJu
          30 января 2023, 09:54
          Roman Ivanov, поздно мне коней менять, дай Бог с питоном по настоящему освоиться.
          У меня многие знакомые до сих пор на фортране пишут (я  закрыл для себя тему фортрана в 1994 году), и прекрасно себя чувствуют. Физики, что с них взять.  
  • NZT2020
    28 января 2023, 20:06
    И как увеличилась прибыль после начала использования Python? 
  • Андрей Костюк
    28 января 2023, 20:31

    Пайтон крут. python-binance, binance-futures-connector, pandas, numpy, threading (здрасте многопоточность), asyncio, websockets, ну и matplotlib - классический набор для криптотрейдинга на бинансе. Ну а если заморочиться, то и tensorflow, sklearn

    • Эммануил Губерман
      29 января 2023, 17:37
      Андрей Костюк, Хех. если вы хорошо владеете всем этим стеком, то поверьте, вы будете больше зарабатывать программистом, чем всей этой крипто фигнёй.
  • Nekto Finkelmaer
    28 января 2023, 20:34
    Ершалом не пробовали?

    ПС: Простите за сарказм😎
  • Андрей К
    28 января 2023, 20:55
    собеседовал людей, которые на питоне умудрялись еще и пространственный арбитраж на крипте делать ) щас правда уже не актуален
  • Мальчик buybuy
    28 января 2023, 20:58
    Вставлю и я свои 4 копейки © Анекдот

    Все написанное ниже — чистое IMHO, конечно

    1. Крайне желательно моделирование и тесты писать на том же языке, что и код для продакшн — меньше будет ошибок при переносе. Про моделирование эквити в одном простом цикле — это только для очень простых алго (без лимиток, синтетического портфеля, ММ и т.д.)
    2. Если алго сложные (хотя бы тестовые), то крайне желательно, чтобы код максимально (визуально) соответствовал математической формуле. Поэтому я использую Matlab. Векторизованный код на python при использовании numpy выглядит весьма коряво на мой вкус
    3. Для целей стабильности и безопасности следует отделять торговый терминал от логики алго. Так что в моем случае к торговому терминалу на c# просто коннектятся матлабовские dll. Освежение и/или замена логики требует просто перекомпиляции dll и перезапуска одной программы — провайдера торгового сигнала. Сами торговые боты вообще не замечают подмены логики.

    Как-то так

    С уважением
    • Roman Ivanov
      28 января 2023, 21:12
      Мальчик buybuy, а гдеж тут безопасность? DLL же в память процесса подгружается и также может все нарушить.
      • Мальчик buybuy
        28 января 2023, 21:21
        Roman Ivanov, ну так, конечно, делать некошерно

        Но это провайдер сигнала — он работает на некоей виртуалке и выгружает сигнал в условленный порт
        А торговый терминал работает на другой виртуалке и опрашивает нужный порт

        С уважением
      • Мальчик buybuy
        28 января 2023, 21:39
        3Qu, и тебе не хворать)

        Как по мне — главное, чтобы стабильно работало (месяцами без перезагрузок). И чтобы восстановление после сбоя было быстрое.

        А учиться поздно — для этого есть специально обученные программисты
        За мной математика и генерация сигнала. Все.

        С уважением
          • Мальчик buybuy
            28 января 2023, 21:46
            3Qu, из того, что работает, я почти ничего не озвучиваю

            Просто периодически публикую размышления о возможных методах. Если народ их не понимает и/или считает ерундой — это очень хорошо. Значит, не перевелось еще мясо на бескрайних просторах планеты)

            С уважением
              • Мальчик buybuy
                28 января 2023, 22:06
                3Qu, так я для этого и пишу периодически, дружище)

                Пока все считают это х@ней — я могу спать спокойно)
                Если кто-то задаст хотя бы один умный вопрос — это повод напрячься)

                Во всяком случае мне неизвестен ни один человек (кроме меня), который может объяснить (и статистически доказать), почему такой-то алгоритм будет работать в плюс.
                Ну если не считать традиционных рассуждений: «Представим себе сферического коня в вакууме...», «Пусть рынок — это зашумленная ломаная...» и т.д.

                С уважением
                  • Мальчик buybuy
                    28 января 2023, 22:23
                    3Qu, ну это утверждение, как минимум, требует аккуратного доказательства)

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

                    Пока наилучшим кандидатом был Ларри Вильямс — так он уже 3 раза разорялся...

                    С уважением
                      • Мальчик buybuy
                        28 января 2023, 23:04
                        3Qu, скорее, минут )))

                        1440 — магическое число)

                        Кстати, бро, почти 2 года активность на выхах была маленькая. Сейчас уже 3-ю неделю значимый рост в ночь с Пт на Сб. Не пропусти)

                        С уважением
                          • Мальчик buybuy
                            28 января 2023, 23:10
                            3Qu, хмммм

                            Т.е. ты скачиваешь исторические данные для моделинга с каким-то дробным смещением от стандартной сетки GMT?
                            Эстет, б@ядь...

                            С уважением
                              • Мальчик buybuy
                                28 января 2023, 23:22
                                3Qu, мдааааа...

                                Жаль, дружище, что я сам не понимаю, что тебе нужно от ML...
                                Мне — тем более...
                                Пока все, что я уяснил для себя, что для качественного обучения потребуется нев@ебенно большая выборка паттернов — сильно больше, чем на диск поместится, тем более в оперативу. Ну и не посчитает она все это никогда гарантированно...

                                С уважением
                                  • Мальчик buybuy
                                    28 января 2023, 23:28
                                    3Qu, конечно не твои)

                                    Спасибо за дружеский совет)

                                    Видимо, телескопом забивать гвозди еще хуже, чем микроскопом)

                                    С уважением
  • Magistr
    28 января 2023, 21:10
    пока руками торговать не научишься никакой робот тебе не поможет — робот просто будет множить твои ошибки, которые бы ты делал руками с бешенной скоростью будет развать тебя и обнулять твой депозит на крипте — я раньше руками торговал триста четыреста сделок в день на крипте, на той которая особо волотильна, сейчас иногда дня три четыре не захожу на бинанс для себя выработал стратегию — играюсь строго на 120 баксов и все что за неделю свыше этой суммы, вывожу через п2п, это результат работы в крипте аж с 2017 года. Просто для себя надо уяснить, что ни на бирже на акциях ни на крипте ты никогда ничего не заработаешь — это казино и поэтому тут 99% проигрывают и лишь 1% выигрывает или пишет роботов и продает или рассказывает как на бирже можно заработать. Вон уж до чего Степан Демура был толковым трейдером, а деньги у него завелись только после того как он начал вести курсы как зарабатывать на волнах Эллиота :))
    • Андрей К
      28 января 2023, 21:29
      Magistr, Впервые слышу, что Демура был трейдером. Правда что ли? )
    • Aleks
      28 января 2023, 21:39
      Magistr, все таки биржу сравнивать с казино мне кажется не совсем корректно. В нем изначально игрок поставлен в проигрышную позицию, а в бирже большое зависит от тебя и у тебя в отличие от казино есть возможность использовать и машинку мощную и в реале все обсчитывать. Хочешь — используй теорию вероятности, хочешь машинное, хочешь нейронку. А вот по проценту счастливчиков — согласен 1 на 100. По языкам — мне конечно пайтон нравиться и если что то быстренько испытать и картинку увидеть, то сделаю на нем. А вот если уже что-то серьезное, то последний год на Go. Я не буду доказывать его прелести или минусу, просто он мне нравиться и справляется со всем, что мне надо.
        • Aleks
          28 января 2023, 21:51
          3Qu, мы сейчас про реальное говорим а не про онлайн? я просто помню про Блэк листы которые есть в казино и по которым заход запрещен кто очень хорошо считать в голове умеет. ясное дело что выигрывать надо давать — но в реальности в выигрыше останется все равно казино. А про онлайн — как заплатят, так и напишем код )))
  • Rostislav Kudryashov
    28 января 2023, 22:11
    Лень перечитывать всю эту хрень. Если повторю чьё-то — кашу маслом не испортишь. Итак:
    Самая мощная модель на нейросети после обучения будет выдавать ответ на каждый новый входной сигнал в микро-секунды. Это цепочка матричных умножений. Все математические библиотеки, в том числе и в Питоне срабатывают в момент.
    Реализация в Quik Lua элементарна.
    Типичная нейросеть в несколько слоёв M с несколькими  узлами N в каждом слое. Это M повторов перемножения N матриц размера N. Быстрее мысли.
    • Rostislav Kudryashov
      28 января 2023, 22:17
      Rostislav Kudryashov, 22:11 а для обучения нейросетей не найти ничего лучше среды Python.
      «Deep Learning with Python 2nd Ed»  FRANÇOIS CHOLLET
  • Skifan
    28 января 2023, 22:10

    для хабра статья если честно 
    там в за питон люлей получите ) 

    • Aleks
      28 января 2023, 22:14
      Skifan, про то что статья для хабра пойдет — соглашусь, а люлей там можно получить только от тех, кто по курсам обучился — стань сеньором в python с нуля за 60 минут. 
    • Андрей К
      28 января 2023, 22:36
      Skifan, я тут однажды топик написал. Сильно специфический. Он стал в поисковике появляться и люди с хабра стали сюда приходить и региться, чтобы мне написать )
      Всякое бывает
  • Илья Нечаев
    28 января 2023, 22:13
    3Qu — плюсанул, да — действительно Python прекрасен тем что сел и начал писать, плюс большое коммьюнити сейчас и много примеров в интернете.

    В TSLAB можно например с сайта Finam свечи скачивать и анализировать.
    Для Python где данные берете для тестирования стратегий?
    Какие библиотеки чаще всего используете?
    • Aleks
      28 января 2023, 22:18
      Илья Нечаев, хоть вопрос и не ко мне, но могу частично ответить. если для крипты -берете с биржи API и качаете. Ну и всегда можно взять с того же Finam или Yahoo. В моем случае библиотеки зависят от задачи — для инвестиций одни, для трейдинг другие. Открываешь GitHub и смотришь что надо, Там каждый день умельцы что то изобретают.
  • Rostislav Kudryashov
    28 января 2023, 23:15
    Нет ли здесь логической ошибки?
    3Qu, из того, что работает, я почти ничего не озвучиваю
    Просто периодически публикую размышления о возможных методах. Если народ их не понимает и/или считает ерундой — это очень хорошо. Значит, не перевелось еще мясо на бескрайних просторах планеты)
    С уважениемavatarМальчик buybuy Сегодня в 21:46
    ведь если публикуется ерунда, которая не работает, то вполне логична её оценка как ерунды.
    И неправомерно считать таких оценщиков какими-то неадекватами, «мясом».
  • keekkenen
    29 января 2023, 00:52
    вот, читает неофит этот пост и как на чистом глазу верит, красиво так, опытно написано.. по тексту "лет, эдак 5 назад перешёл на python".. конечно, у лопоухого уже уши отваливаются, чел столько кодил, и вот нашел язык мечты для своего дела.. а потом, ху.к, пишет python так быстро компилируется.. тут-то мои уши и отвалились под весом лапши.. ни один программист не скажет, что язык, на котором он пишет, быстро компилируется, если он является интерпретируемым и компилироваться не может в принципе !
    • Union_Jack
      29 января 2023, 10:23
      keekkenen, так нынешние «программисты» не отличают интерпретатор от компилятора, и int от float. Но гонору у них будто ядро операционки своими руками написали)
  • deke
    29 января 2023, 05:00
    пайтон — единственный в мире язык в котором заново изобрели dll hell
    его разработчикам зарезервирован отдельный котел в аду за полное отсутствие обратной совместимости
  • infinity_warrior
    29 января 2023, 05:28
    Почему-то всегда не самые удачные языки становятся топами по использованию. Хотя если подумать кому это выгодно, то всегда можно найти бенефициара. По Питону это прежде всего производители железа, по С++ мастодонты типа мелких и мягких.
  • Врач-бондиатОр
    29 января 2023, 12:54
    У меня от Питона смешанные впечатления: с одной стороны базовые команды имеют очень простой синтаксис, а с другой каждая сторонняя библиотека содержит мировоззрение ее автора.
    Как результат по библиотекам тысячи страниц документации и тысячи вопросов на форумах.
  • DV_13
    29 января 2023, 15:02

    В поддержку Питона.

    Сам я не программист. Питон изучаю меньше года, кстати, во многом благодаря статьям уважаемого 3Qu, за что ему большое спасибо!

    Раньше ковырялся на C#, это Тслаб и другие известные проекты.

    Из последних «достижений» — за две недели сделал для себя проект — сканер для акций на американском рынке. Примерно 11 тыс. тикеров получаются и обрабатываются (датафрейм, запись в файлы, сортировки и прочее) с частотой 1 раз в 15 сек. Работает стабильно.

    Мое мнение, что для не профессионального программиста — питон идеальный инструмент.

    Хотя, спецы пишут, что Go и др. языки лучше подходит для современного трейдинга. Посмотрим, что через пару лет будет.

      • DV_13
        29 января 2023, 16:14
        3Qu, да SQLite можно попробовать, или что-нибудь из NoSql.
        Кстати, питон еще хорош тем, что можно быстро собрать прототип «на коленке» и грамотно написать ТЗ для профи, оценить сложность и трудозатраты и т.д.
    • Андрей К
      29 января 2023, 17:46
      DV_13, пощадите свой жесткий диск от стольких записей/перезаписей )
        • Андрей К
          29 января 2023, 18:44
          3Qu, с такой частотой записи и таким объемом данных, если это ssd и не серверный, то он приляжет гораздо раньше обычного срока жизни ssd и это будет не приятно 
  • Vitalii Fersanov
    29 января 2023, 21:02
    ))) Блин, какой же я мудрый. Исходные данные: 1) Я торгую лет 10; 2) Я программист лет 100 и питон очень люблю. Тут всякие рассуждения. Выводы: 1) Торговля дело примитивное. И стратегии там примитивные. Если вы их понимаете и психологически устойчивы, то их формализация на любых языках вам нахрен не нужна, а если вы берётесь за формализацию, значит вы их не понимаете и наформализуете то, чего вы не знаете.
    2) Пайтон отличный язык.
  • Vitalii Fersanov
    29 января 2023, 22:08
    Да не надо пялиться. В процессе на открытую сделку периодически посматривать, чтобы решить в определенный момент остаться или дальше периодически посматривать. Сколько у вас моментов входа внутри дня? Ну два. А то и один. Чего ж там пялиться. В общем формализовать можно конечно, да результат будет нехорош. Много вы видели прибыльных формализаций? Ни одной не видели. Причем, судя по движению баров в мониторе вправо, алгоритмов там, за экраном, нареализовано. Вот их их примитивностью и надо пользоваться.
    • SergeyJu
      30 января 2023, 09:58
      Vitalii Fersanov, портфель систем и активов так не потянуть.
  • Vitalii Fersanov
    30 января 2023, 10:19
    Ну, хорошо. Я больше двух раз не вхожу. Потому, что точно знаю, что остальные 10 входов меня не обрадуют)
  • zhorzh
    30 января 2023, 09:03
    Поздно защищать питон от лохов т.к. все лохи уже на него перебрались
  • Socol
    30 января 2023, 09:50
    Спасибо, оч полезный и приятный пост! Только про «лохов» зря. Есть люди с другим отличным, не стоит ходить в гопничество умному человеку.
  • Surmounter
    30 января 2023, 13:25
    Питон прекрасен,
    он позволяет «лохам» вроде меня (не программист я), создать свое нечто для торговли опционами с функционалом гораздо лучше квиковского
  • technic
    01 февраля 2023, 13:18
    Бесконечно можно смотреть на огонь воду котировки и как программисты спорят какой язык лучше))
  • Доктор
    04 февраля 2023, 02:18
    Простота его заключается в том, что вся сложность спрятана под капот.  А прежде, чем пускать слюни на потоки, с целью что-то там ускорить, имеет смысл вылизать алгоритмику и задействовать необходимые средства языка. Многие функции питончика оптимизированы и гораздо эффективнее самописных циклов на нем же.

    lurklurk.com/Python

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

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