Спрашивал многих — на чем вы моделируете и отрабатываете стратегии? Ответы — Луа, С #, Delphi, C++, Java, php и пр. Хорошие языки, спору нет. Но хороши они для релиза. И лишь немногие при моделировании стратегий работают с Python.
Чем хорош Python?.. Это простота изучения — с нуля можно начать за считанные дни. Это громадные библиотеки — математические, машинное обучения, преобразования, работа с векторами и сложной графикой. Это простота моделирования — слабать стратегию можно за вечер.
Да, когда придет время релиза, придется все это переписывать на другой язык, но библиотеки можно оставить из Python — они оч быстрые, написаны на С++. Интерфейсы ко многим языкам имеются.
Для проверки ваших рыночных гипотез и моделирования стратегий переходите на Python. Чем могу, помогу. Но не обучаю, для этого книги есть- ничего сложного. По книгам и среде посоветую, для начала.
PS. Так, для справки, если покопаетесь в инете, то увидите, что NASA уже почти все пишет и моделирует на Python, и уже потом критические участки кода переводит на С++.
Андрей Первозванный, И тем не менее, никто уже не пишет на Ассемблере, Мало кто пишет на С. так что за питоном будущее и подобными языками. Сложность кода растёт, как и мощности вычислительные, так что на первый план выходит как написать побольше и побыстрее.
Зажиточный бюргер, Это вы очень ошибаетесь про си и ассемблер, но для обычного трейдинга это конечно лишнее :)… что не скажешь о хфт и их фпга девайсах если конечно еще такое делают.
CloseToAlgoTrading, я не очень ошибаюсь я вообще не ошибаюсь. Достаточно взять и посмотреть какую долю популярности раньше ассемблер и с занимали и сейчас.
Но вообще не совсем корректно. Стратегии пишутся не на языке, а на язык-фреймворк-платформа[-библиотека]. На питоне без какой-то платформы, библиотеки для тестирования именно стратегий ну можно таблички векторно посчитать, распределения построить, графики всякие, но это не стратегии, а если стратегии, то простые, а если не простые то для каждой стратегии нужно заново делать одни и те же телодвижения.
Короче язык тут не единственное действующее лицо, вот что хотел сказать. Но питон приятен без сомнений).
Алексей Никитин, не ко мне вопрос, но проще всего НС использовать в качестве программируемой (обучаемой) логики. Т.е., логику не пишешь сам, а она пишется сама, при условии, что ты сам знаешь, какая она должна быть.
Roman Ivanov, во всех топовых западных вузах, идет как первый язык, а дальше уже каждый сам решает надо ему углублять знания или нет. Но я помню как тут советовали первым языком учить C# это вообще финиш.
Goreloff, Питон оч простой язык -вхождение за несколько дней с нуля. Все о чем вы говорите, можно оставить на потом без вреда для ваших программ. Чем Питон и ценен.
_xXx_, у питона вообще С++ по капотом, он весь на нем написан.
Но кроме того есть еще и разница в скорости работы, гигантская. между случаем. когда ты например в цикле функцию применяешь к каждому элементу итератора, или к массиву numpy сразу. целиком.
Математика. статистика — это библиотеки numpy, scipy, sympy.
Из sympy можно Си-код генерировать даже.
_xXx_, JIT есть в питоне. да.
как конкретно работает — не разбирался
вот взгляните (если будет разборчиво):
возведение в квадрат чисел от 0 до 10000 — 2.7 миллисекунды просто в питоне.
и 15.6 микросекунды с помощью массива numpy
Mityan, спасибо, мощно.
Обычно в примерах пишут что С раз в 30 быстрее питона.
А тут нампи в 150 раз быстрее питоньего кода.
Т.е. еще в 5 раз быстрее, чем тот же код на С.
сейчас без знания питона (простите программисты ибо я ламер) только региональные финансисты и управы еще обходятся, в Мск без начальных знаний количественного анализа Ты вообще ноль. Думаю через поколение финансистов (адвизори, портфельные управы, инвест советники) которые бы не знали основы Питона и дата сайенса вообще не будет. Язык будущего ИМХО. Тож чуть-чуть моделирую на нем. Реально топ.
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));
}
};
Turbo Pascal, аналогично. У меня не такой большой перечень я пишу только на с++. А начало было совсем экзотика , разработка логики контроллеров. Писать приходилось сразу бинарный код. Я думаю что людям которые пришли в профессию уже во время 14-17 стандарта, питон намного легче заходит ..
Не согласен. С основами разбираться да не проблема. Пару сотен строк простого кода могу написать на третий день знакомства на любом языке. А вот дальше идут средства разработки, фреймворки, библиотеки и прочее. Это уже несколько иные вещи требуется приличный срок,, мотивация и время
Разработчики Python изобрели dll hell во второй раз. С несовместимыми версиями библиотек можно сойти с ума. В одном месте исправил — в другом поломалось.
deke, не вижу ничего криминального. Любая среда программирования, в этом смысле, аналогична — везде есть несовместимости со старыми версиями.
Короче, наплевать и забыть.)
3Qu, я такой дичи нигде не встречал, а у меня этого добра навалом и дома и на работе. Огромная цепочка зависимостей, которую менеджер пакетов pip не в состоянии разрешить. Тотальная несовместимость всего и вся — это тоже уникальная особенность питона.
deke, да, да, весь мир работает, масса организаций, включая NASA, работают — все справляются, одному deke все не так. Случается. Не надо драматизировать.
deke, Можно и распространять, в комплекте со всеми используемыми модулями. Как оно и делается.
Я не понимаю, по моему любой софт все аналогично. Скажем, с с++ все тоже самое. Без либ соответствующей версий не пойдет, и надо либы включать в установщик, либо устанавливать отдельно.
3Qu, Питон все же под Линукс больше заточен, на Винде не все библиотеки есть и нормально разрулить в инсталляторе все зависимости не получится. Я пробовал пару лет назад — запустить получилось только в Linux Subsystem, но после установки второго проекта все рухнуло и Linux больше не запускался. Проще оказалось отдельный VPS под каждый проект запускать, чем виртуальные среды настраивать.
В С++ я рантайм слинкую сразу, а все либы положу в папку программы. И больше никаких проблем и перекрестных зависимостей. Для этого есть redistributable пакеты у нормальных библиотек.
Не зря у Питона куча пакетных менеджеров понаписана — пип, поэтри, конда. Сделать один раз нормальное решение не позволяет идеология.
А обратная совместимость — это просто песня. У какоего еще языка программирования нарушается совместимость в минорных релизах?
deke, не пугайте народ, для моделирования стратегий не так много модулей и надо, в основном общего назначения, которые есть в любой ОС.
Собственно, и распространять нам ничего не надо. И бог с ними, с недостатками. Недостатки есть у всего, вопрос лишь, критичны ли они для нашего конкретного применения.
3Qu, так я разрабатываю продукты для конченых пользователей и смотрю со своей колокольни. Если что-то ковырять у себя дома на коленке, то вопросов нет.
Efan, Смотрите, по 24 году вероятно капитал будет итоговый около 200. По стратегии банка консервативно ROE 20+, значит заработать хотят 46+. За пол года 23, получаем 223 капитал, если акций останет...
Sloikin, мозгового) Сбер следующие на сокращение штата по типу ГП. кредитование на котором гребут бабло банки скукоживается, штат раздут, ЗП космос, дармоедов толпа.
Arctic Blast Повышает Форвардные цены На Природный газ
ся:
Фьючерсные цены на природный газ выросли в период с 9 по 15 января, поскольку ожидалось, что на следующей неделе полярный вихрь значитель...
🖥Arenadata. Перспективы роста
Котировки группы чаще всего выглядят не только сильнее айти сектора, но и рынка в целом. Как могло случится, что компания, недавно вышедшая на рынок, сумела заинтер...
Николай Помещенко, чтобы акции вырасти не надо снимать санкции, надо ток что бабло на ожиданиях зашло на покупку и обеспечить новостной фон, а что там фундаментально дело 10 ое
Эльзар Тимирбулатов, я как лонгуст по жизни тока за двумя руками за именно такие предпосылки,
а в чем проблема то?
на рынке всегда льется кровь, иногда бычков иногда медведей, а в боковике пр...
количество глюков и ошибок в геометрической прогрессии
Python тема чё).
Но вообще не совсем корректно. Стратегии пишутся не на языке, а на язык-фреймворк-платформа[-библиотека]. На питоне без какой-то платформы, библиотеки для тестирования именно стратегий ну можно таблички векторно посчитать, распределения построить, графики всякие, но это не стратегии, а если стратегии, то простые, а если не простые то для каждой стратегии нужно заново делать одни и те же телодвижения.
Короче язык тут не единственное действующее лицо, вот что хотел сказать. Но питон приятен без сомнений).
Я бы не назвал lua хорошим языком.
Они уже написаны в библиотеках, от scilearn до tensorflow.
3Qu, мне тоже. С чего начать вообще непричастному?
Но кроме того есть еще и разница в скорости работы, гигантская. между случаем. когда ты например в цикле функцию применяешь к каждому элементу итератора, или к массиву numpy сразу. целиком.
Математика. статистика — это библиотеки numpy, scipy, sympy.
Из sympy можно Си-код генерировать даже.
как конкретно работает — не разбирался
вот взгляните (если будет разборчиво):
возведение в квадрат чисел от 0 до 10000 — 2.7 миллисекунды просто в питоне.
и 15.6 микросекунды с помощью массива numpy
Обычно в примерах пишут что С раз в 30 быстрее питона.
А тут нампи в 150 раз быстрее питоньего кода.
Т.е. еще в 5 раз быстрее, чем тот же код на С.
Из Дубая как-то раз приезжает…
Код на пайтоне:
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
Это я к тому, что с++ уж очень безобразен становится последнее время
Блин, Питона освоить не могу, вот реально, раза три пробовал. Он ваще нелогичный, тупой язык.
Короче, наплевать и забыть.)
Для внутренних проектов он хорошо подойдет, но распространять такую поделку конечным пользователям — самоубийство.
Я не понимаю, по моему любой софт все аналогично. Скажем, с с++ все тоже самое. Без либ соответствующей версий не пойдет, и надо либы включать в установщик, либо устанавливать отдельно.
В С++ я рантайм слинкую сразу, а все либы положу в папку программы. И больше никаких проблем и перекрестных зависимостей. Для этого есть redistributable пакеты у нормальных библиотек.
Не зря у Питона куча пакетных менеджеров понаписана — пип, поэтри, конда. Сделать один раз нормальное решение не позволяет идеология.
А обратная совместимость — это просто песня. У какоего еще языка программирования нарушается совместимость в минорных релизах?
Собственно, и распространять нам ничего не надо. И бог с ними, с недостатками. Недостатки есть у всего, вопрос лишь, критичны ли они для нашего конкретного применения.