Собственно ОСОй я не пользовался (и ниже станет ясно почему), а вот попытки использовать WealthLab и S# (до «кубиков», исключительно как библиотеку) были. Хотел написать, почему я отказался и в конце концов перенес системы с написанного мной на VB+Excel на собственный код в C# (+библиотека alglib), но лучше всего об этом «расскажет» картинка
Так Вы сами программируете или есть программисты в команде?
smart-lab.ru/blog/331436.php
+ изучил связку C# <-> MySQL при помощи примеров с MSDN.
Классы и всякое объектно-ориентированное программирование, графика — это все «мимо».
А вчерашний текст был не про программиста, на мой взгляд, а про то, что человеку подсунули сырую программу, и взали с него деньги. По хорошему, за такие вещи должно быть какое-то расследование и анализ со стороны администрации сайта. Но… мы же все в России )
А сравнивать с WealthLab и S# без резонно. Это же компании с массой пользовательской базой за годы то на рынке. Разве можно сделать конкуренцию лишь выложив свои наработки в интернет. Ну нет же. Метаку на FX никто не пытается делать конкуренцию. Трейдеры не захотят переносить свои скрипты.
Хотите верьте, хотите нет, но это не означает, что вы не используете уже готовые классы. Вы наверняка используете методы статического класса Math.
В той же alglib большое количество статических классов. Всё отличие в том, что не нужно создавать объекты статических классов.
Вас напугал пример из S#. Но там всего-то нужно было создать объект класса оператором new, а дальше обращаться к методам этого объекта точно также как в привычной вами alglib или Math.
Я вообще многого из новых названий не понимаю. В 70-80-е те же нейросети назвали бы «самообучающиеся алгоритмы», а сегодня это «искусственный интеллект». Вот и сейчас «объекты, классы», а в 80-е «библиотеки, функции» и я, как пользователь, не вижу никакой принципиальной разницы.
А к документации S# из ссылки только одна претензия: если создаёте новую библиотеку (уж позвольте это так называть), то опишите коды всех функций из нее, как это сделано в MSDN для того же «класса» (пусть будет «класс») Math или создателями alglib.
Представляете сколько человек работает над MSDN и какой у них бюджет. А тут ребята энтузиасты. Нормальная у него документация. Всем кто понимает ООП все понятно.
А что касается MSDN, то конечно понимаю, сколько там людей, но ведь и alglib сделали энтузиасты, которых хватило на вполне понятный хэлп для пользователей безо всяких знаний об ООП. И «работает как часы».
У меня претензия собственно и не хэлпу, а к позиционированию S# в 2012-2013, как ПО для алготрейдеров. Позиционировался бы он, как API для программистов — нет вопросов.
Я давно там не был на сайте, но сейчас посмотрел — там «другая картина». На главной совершенно правильно написано
S#.API — библиотека для профессиональной разработки торговых роботов на языке C#. Для тех, кто программирует в Visual Studio, и является профессиональным программистом в области алготрейдинга.
А переходим по ссылке и снова то, к чему я и придрался:
S#.API — бесплатная библиотека для начинающих и профессионалов в области алготрейдинга.
Я уже ни раз тут писал, что для меня алготрейдер — это тот, кто создает правила ЕСЛИ. А мы уже вроде тут разобрались, что для этого ООП знать не нужно, а для пользования S#.API, наоборот, необходимо. Получается логическое несоответствие в заявленном.
И собственно мой корневой топик в части ОСЫ и был о том, что, возможно, с ней и повторяется эта «первородная» неточность в позиционировании S#. И отсюда возникает недовольство обучающихся алготрейдеров, не знающих тот же ООП.
Ведь если б я пришел на курсы по S# и они начались с того, что написано в приведенной мной ссылке, то тоже возмутился в стиле: «фигня какая-то, а не ПО для алготрейдеров!». И наверняка попытки написать что-нибудь с использованием S# без изучения ООП напоролись бы на ошибки в VS без ошибок в написании кодов и их логики, что собственно для меня и является «багами».
P. S. Я, кстати, прекрасно знаю, что профессиональный программист и не алготрейдер может успешно работать с S#. У нас в Форуме был программист и на период отпуска я передал ему свою программу. Так он просто удалил то, что я написал с использованием Транс2квик и переписал эту часть на S#. У него все работало.
А потом вернулось ко мне и тоже работало до того момента, пока мне не понадобилось расширить число торгуемых инструментов. И простое увеличение размера пары массивов в коде привело к тому, что VS Express, отказался создавать десктопное приложение, «ругаясь» на эту часть с S#. Вернул свою с Транс2квик и все сформировалось на «ура». А помочь программист мне уже не мог — он к тому времени уволился.
Но он был чистый программист, у нас писал «приводы» для плазы, таблицы для квика на qpile, в качестве хобби игрушки в эплпэй, а вот торговыми алгоритмами не занимался.
MSDN как документация — прекратил свое сущестование. Теперь раздел Learn. Качество описания методов снизилось на порядки — learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.renderhandle.render?view=aspnetcore-6.0 Описание методов — ни о чем. Но появился другой тип описания документации learn.microsoft.com/en-us/aspnet/core/blazor/components/templated-components?view=aspnetcore-6.0 более обширный. У S# на мой личный опыт этот же подход.
То что вы советуете — это как раз как про образование СССР. Оно когда-то было, но в эпоху глобализма потерпело крах. Надо было по другому строить.
Мы в обычной жизни имеет дела с законченными объектами (например, автомобилем), а не запчастями. Класс это чертеж какого-то объекта, который может что-то делать (по вашему, имеет функции), и имеет какие-то свойства (по вашему, переменные). Если нужно воспользоваться объектом, его следует создать из чертежа (класса) оператором new.
Если класс статический (например, Math), то создавать его не нужно. Например, для вычисления корня просто обращаемся к методу статического класса Math.Sqrt(x). Если бы класс Math был не статический, пришлось бы сначала создать объект класса: Math m = new Math(); А только потом обращаться к его методу: m.Sqrt(x).
Классы очень удобно использовать. Например, можно создать класс Order, который будет знать о себе некоторые свойства (инструмент, цену, направление, объем). И уметь что-то делать (например, отправлять себя на биржу, превращаться в сделку и т.д.).
Библиотеки (например, alglib) содержат несколько или даже много классов. Если классы статические, то вы их путаете с функциями, потому что они не требуют создания объектов.
ООП очень простой и удобный механизм. Когда (и если) разберетесь в ООП, не будете понимать, как раньше программировали в процедурном стиле.
Я читал где-то, что там с использованием памяти компа что-то отличается для статического класса и не статического, но это уж точно не для простого пользователя.
Это вам сейчас не надо. Вам надо ухватить концепт. Вот простейшая программа отправка заявки на биржу по условию:
Opder ord = new Order(p1,p2,p3); // Создаем заявку с параметрами p1,p2,p3
if (условие) ord.Send(); // Отправляем заявку методом Send() класса Opder
Библиотека статических классов это гараж. Статические классы это автомобили. Нужен автомобиль, берете едите. Новый еще такой же автомобиль создать нельзя. Например, если бы класс Order был бы статический, то создать вторую заявку с другими параметрами нельзя. Статические классы удобны, например, для размещения мат.функций.
Библиотека обычных классов это склад чертежей домов. Нужен дом с определенными параметрам, берете подходящий чертеж, устанавливаете характеристики, создаете дом, пользуетесь. Нужен еще дом, пожалуйста, нет проблем. Например, удобно создавать множество заявок с разными параметрами, имея класс Order.
Да в текстовом файле сделать новую строку с другими параметрами вообще без проблем. Я постоянно ставлю стоп-лимит заявки с одной ценой и разными объемами на 5-6 счетов. Снимается вообще одной командой: «снятие заявок по условию» (задаю в поле «комментарий» это условие при установке и всего делов). И все работает. Зачем мне команда Order, у которой:
а) какие-то ограничения (с Ваших же слов);
б) в хэлпе нет ни описания параметров p1,p2,p3, ни примеров кода, зато куча слов про какой-то класс и методы get и put (я понимаю зачем они нужны при стыковке в проектах, пишущихся разными разработчиками, но это лишнее в ПО для алготрейдера).
Почему не сделать аналог синтаксиса команды заявки в текстовом файле или на тех же qpile или lua c простым примером кода, который заносится в программу копипастом и работает?
Почему из алготрейдера надо делать соразработчика проекта?
Я уже писал, что для хорошего программиста там все понятно и просто, но для человека, у которого задача создать правила ЕСЛИ и прикрутить к ним закачку данных и отправку-снятие-исполнение заявок все это «наведение тени на плетень».
Кстати, вспомнил еще один курьез с S# в 2012-м. Не знаю, как сейчас, но когда я настроил квик в соответствии с прилагаемой к S# инструкцией, то он один у меня «сожрал» 8Гб оперативки и сделал трафик 10Гб в день. А с моими настройками 5 квиков не занимали и 4 ГБ с трафиком меньше 2Гб.
Order это не команда, это класс. Вы можете сами его написать и сами определить нужные вам параметры. p1,p2,p3 это просто мой абстрактный пример. А можно воспользоваться каким-нибудь TSLab'ом. Там программисты написали кучу классов на все случае жизни. И хелп есть.
qpile умер. А вот на lua довольно много простых примеров. Причем как вы любите, в процедурном стиле. lua плохо приспособлен для ООП.
Вы даже не представляете какими абстракциями оперируют хорошие программисты ). А все эти торговые платформы для обычных пользователей с небольшим программистским бэкграундом.
Вы сами себе противоречите:
и ранее
Для того, чтобы писать самому обмен заявками с программой интернет-трейдинга через ее API совсем недостаточно небольшого программистского бэкграунда.
Небольшой программистский бэкграунд и у того, кто писал коды, например, на VB+Excel.
Не пытайтесь меня убедить, что ООП существенно упрощает создание проектов, особенно в случае нескольких разработчиков в рамках одного проекта. Я с этим не спорю.
Я же говорю о другом: для алготрейдера, не являющегося профессиональным программистом, любой класс, созданный другим(-и) программистом (-ами) без полного полного описания функций с примерами кодов — это бесполезный «сферический конь в вакууме».
Для S# не программировал. Открыл ваш пример. Первый раз вижу код. Всё ясно, вопросов особо нет. Создается заявка (объект). Прямо во время создания заявки в фигурных скобках устанавливаются её свойства. Какие свойства понятно из их названия (Type, Volume, Price, Direction и т.д.). Последняя строка в коде — созданная заявка отправляется на биржу. Там еще и описание на русском есть. Всё как вы хотели ).
files.tslab.ru/docs/2.0/ru/api/class_t_s_lab_1_1_script_1_1_base_cache_context.html
Молодцы ребята, критику восприняли и сделали как надо.
Ключевое слово class в c++ от struct ничем не отличается кроме области видимости.
В C# отличается, но не ориентированностью подхода.
Объектно-ориентированный подход это не про ключевые слова, а про структуру программы, использование полиморфизма, инкапусляции и наследования.
А собственно учет позиций и расчет цен заявок (стоп-лимит заявок) делает мой код.
Базу прошлых цен минуток по двум фьючерсам и 7 акциям делаю в MySQL и держу на случай тестов. Если понадобится что-то новое, то прошлые данные скачаю с Финама.
хоть в кубиках хоть в крестиках хоть на си...
идея в том что функционал качественный… все эти конекторы с резервированием серверов и расписанием торгов...
хоть акции хоть фьючерсы хоть опционы хоть хфт
идея в том, что можно отдать тслабу подключение, расписание, реконект, преподключение к резервному серверу, хранение данных, контроль исполнения приказов и набор позы… а самому сваять код под с# какого нибудь отдельного особо важного индикатора… и вставить этот индикатор в бот
Бары в TSLab — это векторные массивы или обычные? Если векторные, то и операции могут быть только векторные, а преобразование векторного массива в обычный — те еще «тормоза» на C#. И код этого преобразования в вэлсе строчек 5 с 5-ю встроенными функциями.
вообще всегда есть возможность скопировать данные из вектора в любой удобный массив и делать с ним все что угодно по таймеру или внешнему событию
мне поэтому и нравится тслаб… что можно вопрос задать…
таймфрейм можно делать искусственно… любой… из кратных… т.е из 1 мин можно сделать таймфрейм 1-2-3-...145мин… там есть блок сжать...
мне периодически хочется намисать что нибудь величественное на си… но имхо бот должен быть простым и в кубиках
Мне поще написать индикатор, чем разбираться, что там неизвестный кодер напутал.
А. Г., несколько лет назад я тоже сидел на связке текстовых файлов и VBA.
Потом понял, что как минимум при тестировании трачу слишком много времени на изобретение велосипеда + теряю в скорости расчетов, и поэтому решил изучить нормальную алго-прогу. Тогда из-за сырости ТСлаб 2.х я выбрал Multicharts с привлекательным мне (в том числе как упертому паскалевцу) Easy Language. И много лет жили мы с ней душа в душу, если бы не глюгнутый квик-коннектор.
При этом я как it-шник несколько раз в жизни пытался изучить си шарп тем же методом что и английский в советской школе — «не фигово было бы» + бестолковая зубрежка слов. Даже придумывал себе небольшие практические задачки. Но все заканчивалось написанием 1-2 консолек, и все равно «в душу не западало». В смысле — как только появлялась какая-нибудь реальная потребность (не обязательно в трейдинге) — типа распарсить файл и т.п. — я мигом ее закрывал на связке Excel+VBA, которыми владею много лет — и меня это более чем устраивало.
И котировки до недавнего времени качал на этой связке тоже без проблем.
А потом мне подогнали ботов на ТС Лабе, настроили все за меня и запустили в работу на моем счете. И я из-за дня в день смотрел как ТС Лаб работает себе сволочь и работает. Нет ну было пару раз — длину номеров заявок на бирже меняли, финам чего-то там не обновил — не без этого. Но по сравнению с моим режимом постоянной боевой готовности с Multicharts — это было небо и земля. И моя вера пошатнулась...
И я полез потихоньку грызть кубики. Времени было не много, грыз медленно.
При этом я продолжал работать it-директором в крупной компании, и времена на работе пошли тяжелые — и по свободному времени, и по перспективам выживания. Понимая, что я носорог-мамонт :) — попытался освоить Питон — не пошел (хотя качалку на него таки переписал). Но это отдельная песня.
Вроде в ООП все одно и то же, и когда читаешь очередной учебник / смотришь курс — вроде бы все понятно. Лампочка светит, наследие наследит и т.п. Но утром уже все забывается как какая-нибудь формула из термодинамики, нахрен не нужная в реальной жизни или вызубренное вчера в короткой памяти английское слово.
ТС Лаб тоже несколько курсов смотрел — тот же Саро неплох, до середины курса даже что-то понимаешь.
НО мое ИМХО на текущий момент:
1. ТС Лаб реально крут и удобен. Самый лучший курс по кубикам - курс Павла Целищева (вернее модуль в курсе маркет стат, который ради этого можно и вытерпеть, либо даже адаптировать под себя. Ну либо искать на скла… нах и смотреть только ТС Лаб). Модуль по ТС Лабу ОЧЕНЬ короткий — изучил его буквально за день. Павел объясняет очень кратко и толково, поэтому совершенно никаких проблем.
2. Связка С# API TSLab реальна крута и удобна — если есть желание дополнительно чуток вложиться в новые знания. И здесь моя картина мира (в плане отношения к си шарпу) поменялась после древнего и валяющегося на всех ресурсах курса Родиона Скуратовского. Блин, он все те же сущности ООП C# объяснил буквально на пальцах. И главное — я их (в очередной раз :) понял не в режиме «зубрежки», а как практическую реальную потребность — на барах, индикаторах, ордерах. Безусловно, есть некоторые заковырки и тупики — и иногда мне хочется поколотить ответственного за документацию TSLab (думаю его просто нет — это сейчас очень модно — типа сам код и есть документация — жми F12 и проваливайся в вызываемый код). Но я слишком олд-скульный чувак чтобы в это верить. Поэтому иногда матерюсь. Ну или еще проще — написать в чат техподдержки, где с вероятностью 80% помогут (20% — возможно уже моя наглость в ожиданиях). Ребята там реально классные и очень профессиональные!!!
Так или иначе, возможности * скорость * гибкость — этой связки, как говорится, the best. Даже для меня — откровенного новичка в си. Однозначно рекомендую! Excel и VBA вспоминаю как дошкольную любовь — с теплом в груди, но с четким пониманием что при объективном сравнении у них просто нет шансов.
А.Г., буду прям на грани хамства — мне уже полтинник, т.е. мозги откровенно не те, что прежде. Но к моей неописуемой радости в реальности порог входа в «кубиковый» ТС Лаб оказался в разы ниже, чем я думал. Настолько, что я по инерции замахнулся и на c# (после своих то многочисленных бестолковых попыток выучить его как классический язык программирования без привязки к реальной потребности, т.е. до курса Родиона). И снова — был приятно удивлен, что в реальности все гораздо проще, чем я боялся.
Эх, жаль Родион куда то пропал :(. Впрочем, есть Дмитрий Власов, который хоть сейчас и не публичный, но тоже успел выдать целую гору материала уже для ТС лаб 2.х Так что — may be, may be… А.Г., если надо — готов Вам помочь чем смогу.
примерно в это же время делал выбор между ТС-Лаб и МТ5. В итоге живу в МТ5, хотя пришлось во многочисленных косяках разбираться самостоятельно.
Легкость входа != правильный выбор :)
Дмитрий Овчинников, но и Тяжкость входа != правильный выбор :)
Все зависит от того является ли данный критерий важным для выбирающего. Для меня — да.
да я тоже не стахановец ни разу. просто получилось сделать правильный выбор :)
Вопрос то не в том, как закодить десятка два-три формул, а какие собственно взять. А тут «от печки» идти надо: модельку для цен построить, погонять на повторяемость, проверить на непротиворечивость и вывести формулы, как достаточные статистики. А вот с идеями таких моделек как то с возрастом все медленнее получается. За последние лет 10 я только пару проверил — «пустышками» оказались. А до этого одну в год всегда «прогонял». Правда в 70% все равно «пустышки», а парочка «в заначке», потому что не лучше работающих. А в этом году в прибыли вообще одна и, что удивительно, самая первая найденная, ещё в 1998-м году.
А с учётом того, что главный Грааль в трейдинге — иметь команду некоррелированных ТС, то высок шанс намыть требуемое количество золота уже не за счет уникальных слитков-идей, а банально за счет кратного увеличения скорости просева грунта идей, пусть и средненьких. А Кальмар команды из 20 середнячков порой может быть выше, чем у команды из 5 звездных идей. Особенно в наше уникальное и неповторимое время.
Да и еще — велс я не осилил от слова совсем. До сих пор тошнит. В ТСлабе же мне не хватает только портфельного тестирования. Но по слухам (возможно уже устаревшим) он уже в бета-тесте.
Мой опыт показывает, что на одном и том же инструменте, с примерно одним и тем же средним временем в позиции это нереально. Ёмкость да, увеличивается, но корреляция прибыльных ТС положительная и достаточно большая. А значит нужно варьировать или инструменты, или среднее время позиции. Но с варьированием второго сложно, если закладывать проскальзывание+комиссия 0,2% от теоретической цены операции.
А с инструментами вообще никаких проблем: берём все, где ликвидность позволяет укладываться в заданное проскальзывние и тестим то, что есть. Потом портфелируем.
Но моя основная мысль была проста — никогда не говори никогда.
Пример из нетрейдерской жизни.
Раньше я ездил на механике и автомат считал, что для девочек. Короче точно не мой вариант — я же пацан :).
Но потом случился незапланированный полет с зимней трассы — какая-то фура решила на полном ходу поиграть мной в кёрлинг. Хотя я мирно стоял на месте — правда поперек ее борозды (после 6 попыток вылететь с полотна в ходе ритмического заноса).
В следствии того, что первые следы приземления в кювете находились в 22м от полосы, автомобиль был «слегка помят». Поэтому я «временно» пересел на автомобиль жены, который был с автоматом.
Ну а дальше всё как у многих — «временно» длится уже несколько лет. Недавно был в гостях у родителей, и батя щедро дал поюзать свою механику. Угадайте с трех раз кто глох как новичок после автошколы? :)))
Причина/следствие: хрен кто меня сейчас стащит с автомата. Оказалось это офигеть как удобно!!!
К чему я написал такой длинный опус?
Исключительно к тому, что с ТС Лабом у меня получилось то же самое. Совершенно случайно заюзав его по бразильской системе (начав торговать уже готовых ботов) я постепенно, но безвозвратно вкусил все прелести цивилизации. И обратно даже не тянет, хотя навык никуда не делся.
Самое большое препятствие которое у меня было — мой собственный таракан в голове. Звали его УбежденностьВТомЧтоНаЭтоНужноПотратитьСотниЧеловекоЧасов.
Более того — фактически я их почти и потратил, но только потому что:
а) не знал правильного ответа (читай — правильных курсов);
б) я через чур люблю учиться — это ж легче чем работать :).
Видать придется запилить отдельный небольшой пост — может кому-то поможет сэкономить свое время.
Очень жду, когда наши черные, азиаты, обучатся программингу и будут щемить белых выродков в этих, считающимися «высокотехнологичными» сегментах. В общем, примерно как в US узкоглазые и индусы щемят реднеков.
Сегменту рынка программных разработок остро нужна встряска и здоровая свежая кровь. Поблажки и нытьё от госорганов лишь усугубляют ситуацию.
Жду.
Борян Филиппов, вы очень сильно переоцениваете старых разработчиков. Современный подход и инструменты решают одни проблемы, а старые инструменты и технологии решали другие проблемы.
А в старые добрые времена, люди сразу рождались с учебником по С++ в зубах и их учить не надо было, а на пятиэтажный дом они даже без разбега запрыгивали ?
Чтобы такое смелое заявление делать, нужно это видеть где-то изнутри. Поделитесь пожалуйста, в какой IT-компании вы работаете и на какой должности?
1. Подход и инструменты ушли далеко вперед с тех пор. НЕ ушли — КАДРЫ! Кадры — ОТСТАЮТ! Взбадривать надо этих выродков. Лишь в единицах контор есть нормальные KPI, контроль качества, мотивационные планы.
2. В «старые-добрые» это были энтузиасты. Эксперты. Пионеры. Горели глаза. Хотели — делать. Сейчас — совсем другое. Инфантильность и ох%ение (я о средней температуре по больнице). Почему так? Да потому, что разрабов стало требоваться на порядок больше, а такого кол-во светлых голов в реальности — нет. Поэтому в профессии просто КУЧА непрофпригодных.
3. Не поделюсь.
4. По вашему комментарию вижу, что вы побаиваетесь «острых углов». Видимо — старость. Посмотрите на ситуацию трезво, если вы в игре с прошлого века.
doc.stocksharp.ru/topics/CreateNewOrder.html
Хотя мне нужен был просто код выставления заявки для вставки в программу на C#, куда бы я мог подставить свою цену и номера счетов.
И это при том, что опыт программирования на С++ под MSDOS и даже на ассемблере у меня лет 10 в 80-х-90-х.
Может быть. Но область у нас уж больно специфичная. Поиск по словам «выставление стоп-лимит заявки Quik на C#» в гугле ничего путного не выдает.
А пример хэлпа, в котором поиск нужного кода занимает у меня от силы 10 минут вот
www.alglib.net/translator/man/manual.csharp.html
и все работает «с полоборота».
А сколько времени надо потратить, чтобы разобраться в таком? Я же привел пример хэлпа, где разбираешься за минуты какой код вставить, хотя и написан он по английски.
Почему для того, чтобы получать А, Б,… и реализовывать стрелку я должен разбираться, как работает какой-то фреймворк? Для кого написана такая программа: для пользователя или программиста, знающего, что такое фреймворк? Я, например, про виндовский фреймворк знаю только то, что он нужен для отладки кода в VS и создания выполняемого приложения и поэтому должен быть установлен на компе.
Если программа написана для человека, который должен разбираться как работает тот же фреймворк, то как раз про это и моя картинка в топике.
Все в картинках
Сосредотачиваюсь именно на алгоритмах а не на языке программирования
У меня конечно все на C#, и переводить торговлю на 1С не планирую, но вот журнал сделок не так давно на 1С перевел.
Как трейдер я самоучка.
Больше, пожалуй, и не знаю специалистов в 1С.
forum.mista.ru/users.php?id=34349
Само собой пароль к тому нику я давно забыл и пользуюсь другим.
Но картинка вспомнилась и стал читать пост. Хоть он и по другой теме.
Куда на этой картинке его (ооп) «прикрутить»? И, главное, зачем.
из личного опыта, когда код робота переваливает тыщ за 15-20 строк кода, все таки ориентировать по проекту на основе классов будет полегче и наверняка уменьшит сам объем кода.
Хотя я вот сейчас очень много разрабатываю под ядро линукса (порядка 20т строк кода), там чистый Си, если руку набить, то навигацию и понимание кода тоже можно вытащить на хороший уровень, но классы бы не помешали )
Я вообще не понимаю зачем нужны эти классы для вычислительных алгоритмов. Нет, может во всяких графических юзабилити без них никак, но в вычислении или обмене данными я совершенно не понимаю необходимости этих «накруток».
Но все современные ЯП объектно ориентированы, просто примите это как данность и изучите ООП, для человека с Вашим бэкграундом это не проблема.
Согласен, что для кодирования торговых алгоритмов ООП нужен как белке третий глаз.
Тут консенсус :). Но я то ещё и том, что зачем «огород городить» с ООП, если всего то и нужно дополнить этот код загрузкой текущих данных и выставлением-снятием- исполнением заявок. Ведь для тестов и это не нужно, так как историю можно откуда угодно загрузить.
А разрабы всех этих систем ориентируются на большинство пользователей и хотят сделать им удобно. Вот например MQL5 уже поддерживает ООП! А MQL это классика жанра.
Механика была экономичнее, но это в прошлом. Для обгона есть кнопочка «Sport», нажимаешь и она рвет с места. А еще видел машинку Pajero Sport с автоматом, тоже удивился, как это. Оказалось вполне себе джип. Там есть кнопочка блокировки дифференциала и даже 3 колеса можно крутить.
Ну это Вы о каких-то «крутых» машинах говорите, у меня в семье три машины на двоих с женой, но все бюджетные. Форд и Рено — с автоматами, Шевроле — с механикой. Их и сравниваю.
Тем более, что правила ЕСЛИ (см. картинку выше) все равно где-то кодить надо и алготрейдеру.
Но я как раз и дал ссылку туда, где ничего этого нет.
И нужно то было решить всего две новых задачи: закачку минуток из квика (в Еxcel — это просто делалось по штатным «приблудам» квика) и постановку-снятие заявок: на паре счетов это можно было делать и копипастом в формы квика, а трастменеждеры, связанные с моим VB+Excel, мне писали помощники, которых не стало.
А десктопных вычислительных программ я написал с десяток и каждая на 5000 и более операторов. И после выявления ошибок все считали точно.
У меня все тесты торговых алгоритмов были на VB+Excel и все цифры были верные, полностью совпавшие с тем, что потом было перенесено на С#. А то, что я писал на С++ под МSDOS, потом и на Эльбрусе полностью повторилось (коды для Эльбруса писал не я).
PS. Я, кстати, до сих пор визуально сравниваю цифры уровней, рассчитанные в Excel с тем, что считает и ставит мое десктопное приложение. Всё совпадает уже лет 10.
Под багами имелось в виду именно баги фреймворка, которых по определению овермного.
В теории фреймворки предоставляют расширенные возможности для тестирования и реализации чего нибудь эдакого. На практике можно и арбитраж в квике на lua запилить, а вот нейросеть наверное трудновато будет, а на s# попроще, т.к. есть какие нибудь библиотеки на c#, которые можно использовать в s#, а вот в wealthlab они не влезут.
Посмотрел по Вашей ссылке мануал. На первый взгляд все не сложнее чем Trans2Quik API.Странно, что у Вас это вызывает вопросы, если с VB и c# работали работали. Может быть стоит проникнуться основами ООП…
Где то же самое по указанной ссылке на документацию S#? А ссылку на alglig я и привел, как пример нормального хэлпа.
Документация по S# понятна программистам на C#. А этот продукт именно для них.
Мне проще на VBA+Exсel. Потому что могу делать что хочу, легко и непринужденно. А в опенкванте ты все равно чувствуешь себя как в клетке. Конечно, по сравнению в велслабом — круто. И явных ошибок я не нашел. Но неудобно было лично мне. Да и денег стоит, странно платить за неудобство.
Всегда было так: мизер элиты, создающей системы и множество обычных наймитов, решающих текучку.
Ключевое: то, что я написал — это трезвая оценка сегмента рынка труда.
Личные чувства и амбиции здесь ни при чём.
Я же не ХФТ, н и дневок или часовок мне мало.
Да и вообще исторически VB+Excel у меня был до всяких квиков, а C# был выбран потому что сказали, что под WealthLab «так надо». Это только потом выяснилось, что мой код с векторными массивами несовместим. Мне конечно помогли это сделать через «конвертацию» векторного массива в обычный и обратно, но эта процедура «тормозила» WealthLab секунд на 15-20, «грузила» процессор (I7) на 100% и съедала 8Гб оперативки.
Я могу себе легко представить простенький исполнитель на купайле. Но писать что-то для бэктеста, волкфорварда, монте карло — увольте.
Это точно не про меня. Я и форума такого не знаю и туда никогда ничего не писал. Ники, наверное, просто совпали. У моего ника в рунете просто длинная история, еще с форума Тора-центра с осени 1997-го, потому и не меняю.
Вот та тема где Вы мне ответили