• С чего начать алгоритмическую торговлю?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Для начала спросите себя, действительно ли вы этого хотите? Во-первых, вероятность того, что кто-то даст торговать реальными деньгами на реальном рынке стремится к нулю. Окей гугл, форекс кухни. Во-вторых, какие-бы современные алгоритмы не были бы использованы, всё таки по-настоящему эффективных алгоритмов нет. Почему? Нет, серьёзно задали этот вопрос? А вы действительно всё ещё хотите в финансы? Ну ладно, банально потому, что достаточно (не идеально, а лишь достаточно) эффективный алгоритм лишил бы работы бОльшинство трейдеров. Как бы нам не хотелось верить в деньги из воздуха (хотя технически деньги и правда из воздуха, так как при изготовлении используется органические соединения, содержащие углерод как основной компонент, источник которого - атмосфера, углекислый газ точнее - фотосинтез; простите, не удержался)... В общем, как бы нам не хотелось верить в деньги из воздуха - спекуляции - зло, необходимое зло свободного рынка. По той простой причине, что роль санатора рынка они выполняют как нельзя плохо (рисковые вложения сегодня ну очень популярны), стабилизацией они тоже занимаются посредственно (благо агенства вроде Bloomberg строят рейтинги, ограждая крупных игроков, да да - игроков, рынка от излишне спекулятивных операций), ну а что до материальных благ, то и тут они ну совсем не создают; сродни голодным волкам, бросающимся на любой кусок мяса, даже тот, который их кормит. Но! Даже к этим голодным волкам вас не допустят - мало денег. Нет. Ну очень мало денег. Капля не в море, но в океане. Контракты на миллиарды и триллионы долларов заключаются еженедельно, ежедневно, ежечасно. С целью получить выгоду хотя бы в тысячу долларов. Единственный удел простого смертного - кухни, разной степени никчёмности. Выиграть тут можно, но знайте одно - владелец кухни всегда, всегда в плюсе. Те крохи, что останутся трейдерам поделят самые удачливые. А потому, что не дадут вам поиграть на адекватных плечах, ибо 1:20 - самый нереальный максимум, что может себе позволить опытный трейдер. Риск, штука которую можно рассчитать. Но выбирая плечо больше - есть неиллюзорная вероятность потерять ВСЕ вложения.

    Ну ладно, если всё ещё желаете попытать счастье здесь, то напомню. Алгоритма нет. Да не потому, что никто не делится. Если бы был алгоритм - это сразу бы заметили. Есть лишь жалкие попытки, тучи систем анализа данных, но серьёзные решения всегда принимает человек.
    Вообще, существует грубо три варианта работы алгоритма. Первый, кибернетический - анализ сигнала. Точнее - сигналов. Кибернетика - наука об обратных связях. То что в мире финансов они есть - абсолютно точно. В какой-то степени - самый результативный способ. Если смотреть по прошлому. Сколько-нибудь далёкое будущее предсказывать ну абсолютно не умеет.
    Второй, алгоритмический. Датамайнинг сложным конечным автоматом. Без построения систем диффиринциальных уравнений, а банальным множеством захардкоженных условных переходов. Можно точно сказать, таким пользуется абсолютное большинство.
    Ну и третий, нечёткие алгоритмы, генетика, нейронные сети. В общем и целом, самое перспективное направление. Суть - создать ИИ, или хотя бы его подобие. Проблемы две - сугубо философская "имеем ли мы право" и сугубо техническая "возможности". В остальном - флаг в руки. Однако стоит понимать, что ИИ здесь нужен тот, который будет не принимать решения, а рассчитывать риски. Решение может и решка принять. А вот подсчитывать риски - основная задача здесь - не умеет никто, даже человек считает их весьма и весьма грубо. Просто кто-то чуть более удачлив, ибо рассуждая об успешных трейдерах мы забываем упомянуть про миллионы погоревших его коллег. Не потому, что они тупые или не прозорливые, нет, просто потому, что им не повезло.
    Ответ написан
    21 комментарий
  • Конструкция "class{}Name;" вместо "class Name{};"?

    Olej
    @Olej
    инженер, программист, преподаватель
    class ClassName {
       //...
    };

    - создаёт описание класса, как тип, который вы можете в дальнейшем использовать; никакие объекты в коде при этом не создаются.
    class {
      //...
    } ClassName;

    - создаёт описание структуры анонимного (не именованного) класса и тут же создаёт объект с именем ClassName (поэтому имя очень неудачное, уместно было бы ObjName); поскольку класс не имеет имени, вы больше не сможете создать объектов такого класса ... разве что так:
    class {
      //...
    } Obj1, Obj2, Obj3, ...;
    Ответ написан
    Комментировать
  • Что делает программиста программистом?

    AMar4enko
    @AMar4enko
    В подобных вопросах стоит для начала определиться с терминологией.
    Какого именно специалиста вы подразумеваете под тегом "программист"?
    Разработчик на ABAP для вас программист? QA для вас программист (они зачастую сценарии пишут на различных ЯП)?
    Я бы в вашем случае воспользовался термином "инженер-разработчик программного обеспечения".
    И слово "инженер" тут, на мой взгляд, самое главное. А "программист" я бабушке говорю, когда она спрашивает, чем я занимаюсь.
    Ответ написан
    Комментировать
  • Почему в указатель типа char можно передать string?

    Olej
    @Olej
    инженер, программист, преподаватель
    можно передать string

    ... а вот со словом string в C++ будьте осторожнее - в C++ он означает совершенно конкретный тип (пришедший из STL) ... а не всё что попало ...
    Ответ написан
    1 комментарий
  • Почему в указатель типа char можно передать string?

    @MiiNiPaa
    Строковый литерал имеет тип const char[x], где x — размер массива необходимого для размещения строки.

    Такой массив может быть неявно преобразован в const char*.

    Некоторые компиляторы не уважающие стандарт позволяют отбрасывать const у строковых литералов.
    Ответ написан
    Комментировать
  • В каких случаях удобно использовать поле EntityID вместо дополнительных таблиц?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    вам нужно наследование (table inheritance) и разные типы объектов для разных типов нотификаций. Это если брать "обычно".

    p.s. при работе с доктриной проще оперировать сущностями и взаимоотношением оных а не таблицами. Это domain-centric штука, а не data-centric.
    Ответ написан
  • Чем отличается синхронный сервер от асинхронного сервера в boost?

    Сразу оговорюсь, могу ошибаться, я boost asio не использовал

    С синхронным всё верно. При этом клиенты обрабатываются по очереди.
    С асинхронным иначе.

    1. В конструкторе tcp_server зовётся start_accept, который зовёт async_accept и возвращается управление обратно.
    2. Затем зовется io_service.run(), судя по всему, где-то внутри он-таки принимает подключение и вызывает handle_accept, который был забинжен при start_accept и пункта 1.
    3. handle_accept зовёт start, который зовёт async_write, т.е. не дожидается отправки данных, а опять же сразу возвращает управление. По окончании отправки вызовется handle_write
    4. затем снова start_accept -> async_accept и возврат

    Т.е. в синхронном случае второй клиент не подключится, пока первому полностью не ответят
    В асинхронном случае вызывается async_write, и до окончания ответа первому клиенту, в принципе может уже подключиться второй.

    Вообще асинхронный способ для того и нужен, чтобы, приняв соединение клиента, сразу начинать принимать следующего, а с первым клиентом работать уже отдельно.
    Ответ написан
    1 комментарий
  • Стек последних техологий для веба на asp.net?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    облако тэгов: webapi, mvc razor, nancyfx, signalr, bifrost, entity framework (code-first), owin, oauth 2.0, rx extensions, tpl dataflow
    и про js не забываем: knockout, angular
    Ответ написан
    1 комментарий
  • Как обойти видимость в файле hosts в windows?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    нет

    можно 1000 пустых строк и в конце добавить, а авось не заметит
    Ответ написан
    Комментировать
  • Как обращаться к памяти на C#?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Гуглите про работу с указателями в C#
    Ответ написан
    Комментировать
  • World Editor war3 на с++ и openGl?

    @MiiNiPaa
    WC3 хранит ландшафт в файле как непрерывный массив точек (построчно). Каждая точка занимает 7 байт.
    Первые 2 байта это высота ландшафта в данной точке. Дальше 2 байта высоты воды + служебный флаг, 4 бита флагов, 4 бита — тип ландшафта (поэтому больше 16 текстур в карту не запихаешь, как ни пытайся) 1 байт украшений ландшафта, 4 бита тип обрыва и 4 бита уровень обрыва.

    Все эти «треугольники» это фикция — они рисуются игрой в момент рендеринга для игрока на лету используя информацию о ландшафте и не имеют никакого влияния на симуляцию самой игры.
    Ответ написан
    1 комментарий
  • Затемнение в wpf?

    sivabur
    @sivabur
    Заблокировали просто так!
    Изменяйте цвет шрифта на очень близкий к белому. И границы там у кнопок и других элементов. Фактически есть для этого формула.

    или Наложить сверху белый контейнер/панель и задать ему определенную прозрачность.
    Ответ написан
    2 комментария
  • Как разрабатываются кросс-платформенные библиотеки на Си в 2015 году?

    @MiiNiPaa
    1) GCC и... всё. Можно ещё clang проверить, а больше нормальных развивающихся компиляторов С и нет вроде (у Microsoft компилятор С — гадость редкостная, в отличие от их же С++ компилятора)

    2) Сmake

    3) Блокнот. Можете попробовать Eclipse, он вроде как кроссплатформенный, но чую я что установка и настройка будут болезненными.

    4) Cmake. Написал скрипт один раз, используют все.
    Ответ написан
    1 комментарий
  • Как сделать простенький блог на C++?

    @vilgeforce
    Раздолбай и программист
    Начните с изучения протокола HTTP, в частности того, как же именно передается куки.
    Ответ написан
    Комментировать
  • О какой памяти идет речь в этом куске кода?

    Olej
    @Olej
    инженер, программист, преподаватель
    Препод говорит, что 10 не в диапазоне памяти.Можно указать число в квадратных скобках от 0 до 9.

    Правильно говорит ;-)
    int* x = malloc(10 * sizeof(int));
    - размещает массив из 10-ти элементов, x[10] ...
    - элементы массива из 10-т элементов индексируются так (начиная с 0): x[0], x[1], ... x[8], x[9] (10 штук)
    - индексация x[10] - за пределами выделенной массиву памяти, 11-й элемент, очень грубая ошибка.
    Ответ написан
    7 комментариев
  • За что программист получает деньги?

    @torwig
    C++/Qt
    Кто-то умный написал, что программист помогает зарабатывать деньги или уменьшает издержки. Вот за это и платят.
    Ответ написан
    1 комментарий
  • Как в WIndows Form обратится к компоненту в файле .cpp?

    GavriKos
    @GavriKos
    Нужен не просто инклюд, но и еще и передать в функцию, которая обращается, указатель на эту форму. И уже у указателя брать label1 и прочее.
    Ответ написан
    1 комментарий
  • C++ шаблоны - можно ли генерировать разный код в зависимости от размера передаваемого типа?

    maaGames
    @maaGames
    Погроммирую программы
    Не стоит привязываться к размеру, стоит привязываться к типу.
    Но и к размеру тоже можно, если преобразовать размер в тип:

    template< int SZ >
    struct SizeType
    {
    enum { TypeSize = SZ };
    };

    SizeType и SizeType - разные типы.
    Ответ написан
    Комментировать
  • C++ работа с dll из ресурсов?

    @vilgeforce
    Раздолбай и программист
    Да. Выделяете память, копируете в нее DLL с перемещением секций как это делает загрузчик, потом импорты-экспорты-релоки правите... В общем, нужно писать собственный загрузчик.
    Ответ написан
    Комментировать
  • Выбираю между C++ и C#. Что выбрать?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    В свое время выбрал С++ и ничуть не пожалел.
    Если знаешь С++, то С# и учить то нечего.
    Но вот с Шарпа слазить на плюсы мне кажется не очень будет (привыкание к сборщикам мусора и т.д.).

    С++ - это язык высокого уровня, на нем можно писать как драйвера, так и игры.
    С# - это язык высокого уровня, и дрова на нем уже не попишешь. Он заточен под приложения и игры.

    Так что если под фриланс, берите плюсы, в дальнейшем можно перейти на более серьезные проекты.
    На Шарпе же только в игровую индустрию и идти, ибо на фрилансе ему спроса практически нет.
    Ответ написан