Блог им. Amadeus

Как не надо учиться писать роботов в ВЕЗЛ ЛАБЕ

Чтобы написать своего первого робота в ВЕЛЗ-ЛАБЕ достаточно одного дня, Но каждый имеет право портить себе жизнь как хочет !



Как не надо учиться писать роботов в ВЕЗЛ ЛАБЕ
 
Вообще, если честно, складывается впечатление что от народа специально скрывают как на-учиться писать роботов в ВЕЛЗ-ЛАБЕ, а наоборот хотят запутать. Для этого посылают на х.. учить С#
 
При том что для написания роботов он вообще не нужен, а достаточно школьных знаний.
 
 И все кто решит «вначале я досконально изучу C#» и зациклятся на этом — безнадёжно потеряны, потому что, чтобы досконально изучить язык программирования надо минимум несколько лет, хотя бы два года изучения + работы. Это как учить английский.  
 
А теперь секретная информация как СУПЕР-ЭФФЕКТИВНО научиться писать роботов :)
 
1. изучаем 10 страниц текста в хелпе-велзлаба. Help -> WealthScript QuickRef   (это займет 4-5 часов)
 
2. выборочно читаем-просматирваем Wealth-Script Programming Guide (HELP ->  Wealth-Script Programming Guide ) (2-3 часа) 
 
3. учимся писать скрипты у ВЕЛЗ-ЛАБОВСКОГО генератора скриптов. Этот генератор из заданных правил на основе выбранных сигналов индикаторов генерирует скрипты. Т.е. сначала генерируем похожего робота с помощью генератора ВЕЛЗ-ЛАБА а потом открываем его код и учимся как это делать быстро, правильно и эффективно.
 
(это займет еще пару часов)
 
Всё.
★42
34 комментария
со всем согласен. +
avatar
Тунеядец, слишком однобокое суждение. Достаточно оторваться от небес, и спуститься на землю (увидев результаты аспиранта и ЮТ), чтобы понять — знания языка программирования (в т.ч. C#) must have
avatar
Спасибо!
avatar
Смотря какие стратегии писать. Мои стратегии в WLB вообще писать гемморойно из-за «технологии» DataSeries. Также трудно там запрограммировать стратегии с «крестиками-ноликами» с переменным выбором «шага» (по волатильности). А тестирование на минутных данных с 2008-го года вообще вырубает комп на сутки.
avatar
А. Г., ну…

ваши стратегии даже знатокам С# будет тяжело писать )
avatar
Амадей_МФ,

Да ничего особенного. Неужели трудно вычислить несколько несложных функции, начиная с некоторой точки в прошлом и решить: новая точка — это новое начало отсчета этих функций или нет?

Вот в технологии DataSeries этот алгоритм не реализуем в принципе, а на любом языке — это элементарно.
avatar
А. Г., некоторые алгоритмы довольно сложно реализовать на нестандартных языках. Например, возился дня 2, что бы реализовать фрактальный барометер, т.к. алгоритм работает с понятиями прошлый/предыдущий, а SQL ориентирован на множества
avatar
RuTicker.com,

Во-во, именно это я и говорил про Wealth-Script — это пример нестандартного языка, основными операциями в котором являются поэлементные операции с DataSeries. А далеко не каждый алгоритм можно описать в этих операциях и я не удивлен, что Вам потребовалось два дня, чтобы совместить алгоритм фрактального барометра, с нестандартным языком SQL.

Лично мне знающие люди тоже за неделю реализовали итерактивный алгоритм, описанный выше, на Wealth-Script. Но когда он при тестировании вырубил машину на 5 часов (при том, что на обычном C# работал минуты 2), а код на 30% состоял из функций, не описанных в helpe, я понял, что мне бесполезно этим заниматься.
avatar
А. Г., ну вообще то это типичная диллема инструментов высокого/низкого уровня.
Мой опыт подсказывает, что не стоит даже тратить время на инструмент, который за 5 минут позволяет написать стратегию «привет, мир!». Это значит, что шаг влево — шаг вправо — либо не работает, либо работает раз этак в 700 медленней
avatar
А. Г., насколько я знаю wealth-sript уже давно не используется WL, кажется от него отказались еще в 5 версии, те года 3 как.
Сейчас основной язык C#, даже стратегии, которые вы делаете в конструкторе транслируются в код. Вы можете привести пример функции, которую у вас не получилось реализовать за 5-10 минут?
avatar
at60hz,

Там специфический С#, работающий с массивами. А алгоритм, который не реализуется в нем за 10 минут: простой нарисовать «крестики-нолики», у которых следующий «крестик» или «нолик» рисуется по k*волатильность минуток, прошедших за период рисования предыдущего «крестика» или «нолика».
avatar
А. Г., честно говоря не вижу проблем, и специфичности никакой не вижу. Проходите про TimeSeries поэлементно, собираете данные, вычисляете волу за период, пока не готовы отрисовать новый блок (крестик/нолик), рисуете, собираете данные дальше. Может быть я чего-то не понял в сути задачи, но проблемы не вижу. В любом случае, в реальности, если писать робота на любой платформе, на любом языке вы будете работать с тем же временным рядом, который сами будете собирать из сделок на лету.
avatar
at60hz,

Угу, первое с чем у меня был «затык» — это код, который мне дал специалист, выбора элементов из TimeSeries в конечный массив. Там я ничего не понял из-за использования функций, не описанных в хелпе. Ну и про время работы я уже писал.
avatar
А. Г., хелп по функциям в велсе очень скудный. Там и его собственные функции описаны довольно поверхностно, а описания функций C# там вообще нет. Но это не значит, что он их не поддерживает.
avatar
Антон Кротов,

В том то и дело, что описания этих функций нет и в справочнике микрософта по С#, но, правда, они есть в бумажном англоязычном руководстве по скриптам WLD 6.
avatar
А. Г., да не, обычный C#. Просто для классов DataSeries есть перегруженные операторы сложения, умножение, сдвига и пр. Так что реализация рисования крестиков и ноликов сопоставима с обычным C#, а учитывая спец. функции для рисования в координатах цена-бар, наверное, даже быстрее.
avatar
Антон Кротов,

Тут не простые «крестики-нолики», а динамические и со специфическим расчетом.
avatar
А. Г., это, как говорил Мюллер, вопрос технологии, а не принципа. Есть возможность поэлементного обращения к массивам (оупенов, клоузов и пр.), так что можно вычислить волатильность в любой точке с любыми параметрами.

Другое дело, что оформить это в виде обычного индикатора посредством операций над массивами (над DataSeries'ами) может и не получится (хотя, не факт). Но C# в велсе — это обычный C#, который позволяет создать свой массив, заполнив его своими элементами и вывести его на экран в предпочтительном для себя виде (хоть в виде крестиков, хоть в виде снежинок). Wealth всего лишь предоставляет небольшую надстройку в виде библиотеки с классами и функциями.
avatar
Антон Кротов,

Да все, что Вы описали, можно, но на порядок проще и главное с более высоким быстродействием реализуется в связке C# (а можно и C++, delfi или piton и даже обычный VBA)+база рыночных данных. И смыcла в программировании таких стратегий в WLD никакого нет. Один гемморой и потеря времени.

Вот если у Вас стратегия реализуется на языке операций поэлементного сложения, вычитания, деления и умножения DataSeries, то тут WLD хорошее подспорье, а в остальных случай тормозящая и усложняющая жизнь надстройка.

Мы даже столкнулись с тем, что часть запаянных в WLD индикаторов не совпадает с результатами их расчета вне WLD по формулам, которые приведены в руководстве. В-частности, индикатор Frama.
avatar
А. Г., насчет «проще», наверное, зависит от подготовленности программиста. Без велса так или иначе придется реализовывать какие-то базовые функции, какой-то интерфейс и т.п., которые в велсе уже реализованы (если, конечно, не работаем «в лоб»). Насчет быстродействия — согласен (сам сейчас сделал себе велслаб-подобную оболочку, делающую вычисления в 60 раз быстрее).

Важно еще, что велс, являясь специализированной программой, имеет уже готовый набор средств оценки качества стратегии. Он, конечно, не полон и не покрывает всех возможных запросов пользователя (в частности, мне нужна была оценка линейности получаемой эквити, ее пришлось дописывать самостоятельно), но без велса (или подобной программы) все эти средства придется писать самому.

Насчет несоответствия индикаторов тоже согласен. Нарвался на стохастике. Ну, а где нет багов? :)
avatar
Антон Кротов,

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

А говорил я в этой теме только о том, что если для стратегии не подходит работа с поэлементными операциями DataSeries, то лучше не с вэлсом, ни с амиброкером (в его языке реализована такая же идеология, но гораздо более простым языком) не связываться, так как прямая реализация будет и проще по написанию, тестированию и быстрее по работе.
avatar
А. Г., на тиковых вы имели в виду? ВСЕ минутные свечи по ММВБ это всего навсего 12 млн. штук
avatar
RuTicker.com,

Нет, минутные. Просто в алгоритме параметры зависели от дневных данных, а исполнение могло происходить на любой минуте (пробойный алгоритм). Поэтому за основу были взяты минутные и из них делались дневные. Ну и пересчет параметров осуществлялся каждый день и они «действовали» только на минутах следующего дня.

Ну и алгоритм расчета параметров был итерактивный, как я описал выше.
avatar
а если писать не роботов, а собственные индюки, типа Gom Volume Ladder в Ninja — то сколько дней?
Или на тестирование все возможности ВЕЛЗ-ЛАБа заканчиваются.
avatar
UlySseS,

Смотря какой индюк. Надо понимать, что в скрипте WLD основные операции — это операции с временными массивами. Вы можете их поэлементно складывать, вычитать, делить, умножать, еще можете сдвигать друг относительно друга и потом делать перечисленные выше операции.

Если у Вас есть алгоритм расчета индюка в таких операциях, то написать своего индюка в WLD пара пустяков, а если нет, то наживете гемморой.
avatar
А. Г., я про то, сколько написано индикаторов для Нинзьи, расширяющих платформу (есть целые форумы) и сколько для Велза.
Т.Е. о том нужен ли Велз для ручников, ведь для них история если и повторяется, то на этом не заработать.
avatar
UlySseS, это одинаково

там разве что немного сложнее одновременно доступаться к данным разных тайм-фреймов и разных инструментов и потом их синхронизировать, а так все однообразно
avatar
кстати а кто что скажет про прогу smartTrade от айти инвест?
avatar
alexvitk, насколько известно, адаптер был для WLD 4, который работал через SmartCom — на форуме АйТи Инвест информация об этом.
Я вообще в последнее время перешел на SmartX, а робот под старый добрый тормознутый Quik на Qpile и S#
Надеюсь, команда Stock# скоро выпустит StockSharp Studio, тогда будет значительно интереснее и проще тестировать стратегии/делать роботов.
Для того чтобы вырезать аппендикс некоторые учатся 6 лет. Хотя реально можно прочитать пару форумов и посмотреть видео. Слава богу что такие как автор, пишут роботы для себя, а не оперируют других.
avatar
Cheshirscy, так потому и учатся 6 лет, что деятельность с риском для жизни, если бы рисков не было, хватало бы 4х месячных курсов
avatar
Второй пост подряд по программированию. =)

Скорее надо знать не сам C#. А основные базовые понятия ООП(оно везде). Рассказать их вкратце можно(основные), можно за часа 2.
Но использовать, какие либо компоненты, не зная как внутри они работают, чревато, не корректным результатом.

Если идеи интересные, можно ко мне обращаться. Можем вместе подумать.
avatar

теги блога Амадей_МФ

....все тэги



UPDONW
Новый дизайн