суббота, 30 сентября 2017 г.

Причем тут картошка?


Два года назад, прогнав в Метастоке тест по простейшему торговому алгоритму SWT-метода я решил, что торговый робот все-таки не помешает: А может все-таки построить робот?
Многие годы, проведенные в качестве разработчика различного рода электронной аппаратуры оставили после себя одно весьма полезное правило: хочешь сделать быстро и правильно - делай сам.
Современная жизнь с зажравшимися программистами, когда каждый малокомпетентный крючок мнит себя пупом земли и задирает ценник до небес, внесла в это правило еще одну редакционную правку. В окончательном варианте оно сейчас звучит так: хочешь сделать быстро, правильно и не слишком дорого - делай сам.

вторник, 26 сентября 2017 г.

Сбылась мечта идиота...



Ну вот и реализован типичный вариант торговли по тренду, с выжиманием движения досуха (или почти досуха).
Процент прибыльных сделок чуть больше 20, но средняя прибыльная сделка в 20 с лишним раз превышает среднюю убыточную. Т.е. множество ошибочных входов ликвидируется с минимальным убытком, а прибыльных входы по тренду держатся до достижения установленных целей.
Тест проведен в пипсах с фиксированным объемом. Цена одного пипса в пятом знаке 1 доллар.
Период тестирования с 24 апреля 2017 года по 24 сентября 2017 года.
Начало теста - начало роста по индикатору долгосрочного тренда, подтвержденному индикатором среднесрочного тренда. Долгосрочный тренд все еще продолжается и перешел к фазе активного роста с целью на 1.3000. Поэтому робот коротких позиций в ближайшее время открывать не будет - запрет по фильтру долгосрочного тренда.



Пока еще незаданный вопрос: 
  — А если бы тренда не было?
Ответ:
— Был бы убыток. Но по индикаторам тренд давно готовился и начался даже немного раньше.

понедельник, 25 сентября 2017 г.

Где-то что-то увязалось

В общем, худо-бедно увязал в единую систему параметры индикаторов и робота. Если по инструменту загружен робот, то он управляет параметрами всех индикаторов, отображенных на графиках. Если робота нет, то режимом фильтрации управляет индикатор SWT. Если нет и индикатора SWT, то оставшиеся индикаторы работают на автономно установленных параметрах. Из нерешенного.- не решена проблема автоматического обновления индикатора SWT и индикатора каналов после изменения режима фильтрации в роботе. Нужно вручную делать обновление графиков.



Вот так это выглядит на картинке, если загружено всё, в чем необходимости обычно нет. По каждому модулю отображается рабочий режим и значимые параметры индикации.

Два выходных дня пролетело

Два выходных дня пролетело в попытках увязать в единую систему параметры робота и индикаторов одновременно исключив влияние на эти параметры режима тестирования.
Увы и ах.
Лучшим решением оказалось развязать индикатор для робота и индикатор для графиков, сделав два разных модуля с разным функционалом. Но лучше все-таки проводить тестирование и оптимизацию параметров робота на отдельном терминале. И там же анализ рынков. На рабочем терминале, где трудятся роботы, это сопряжено с рядом неудобств.
И блин, не работает функция ChartRedraw(). В приведенном фрагменте кода индикатор должен перерисовываться по каждому тику:

int start()
{
ChartRedraw()

Ан нет. Что я только ни делал и какие чайниковские уловки не применял.
Может я чего-то недопонимаю... Но факт есть факт.
Зачем она мне нужна?
Дело в том. что при изменении параметров робота оп режимам фильтрации и рискам соответствующие значения передаются через систему глобальных переменных в индикаторы. Передаются, и меняют значения индикаторов на последнем тике. А нужно изменить все. И приходится ручками выбирать команду "Обновить" в контекстном меню по правой кнопке мышки.

P.S. Да, я вовсе не собираюсь перерисовывать индикатор по каждому тику, а только по условию изенения переменной. Но он сцуко даже по каждому тику не перерисовывается.

В общем - сплошное два раза нет.

суббота, 23 сентября 2017 г.

Будни начинающего алготрейдера: прошла еще неделя



Прошла еще неделя и я снова по уши в трудах. Несмотря на неоднократные заявления, что все уже сделано и делать больше ничего не хочу и не буду. Но заявления заявлениями, а реальность немного другая.

Первое, что нужно было сделать, это увязать в систему и в программы "неожиданно" выскочивший положительный эффект от использования более точных и/или более сложных фильтров.
Неожиданность конечно условная, фильтры были запрограммированы достаточно давно, и индикаторы и роботы на их основе тоже были реализованы и лежали на дальней полке в ожидании своего часа.
Час наступил, когда была реализована автоматическая настройка, которая и позволила выявить потенциал более сложных методов фильтрации.
Сгоряча я хотел идти еще дальше, использовать еще более сложные фильтры более высокого порядка. Но вовремя остановился. И так нерешенных проблем еще хватает. Проблемы эти в основном технического характера, но тем не менее сами они не устранятся. Кто-то должен сделать и эту работу.

среда, 20 сентября 2017 г.

Решение проблем быстродействия



Столкнувшись с торможением компьютера при обработке большого количества инструментов в торговом терминале задумался о быстродействии. И решил отказаться от модульного принципа обработки данных.когда существуют перекрестные вызовы из индикатора в индикатор для получения тех или иных параметров рынка.
Сейчас в каждом индикаторе всё необходимое будет рассчитываться на месте. И фильтрация и волатильность и ширина канала. Короче всё.

Первый эксперимент с базовым индикатором, с которым был объединен блок цифровой фильтрации, дал рост суммарного быстродействия примерно в 3 раза. За это стоит побороться.
На этой неделе, если все будет идти как задумано, переведу на новый принцип и все остальные индикаторы, сократив при этом их количество до минимума за счет объединения всех расчетов в одном модуле..
Потом займемся роботом. Там тоже есть свои резервы.

вторник, 19 сентября 2017 г.

SWT-робот: интересный эффект получается




Боюсь, что моим постоянным читателям грозит частичный снос крыши. Я постоянно говорил, что выбор гребенки фильтров, с помощью которых получаются стохастические волновые тренды - дело произвольное.
И фильтров и наборов трендов может быть бесконечное множество, все тренды разные и все искусственно сконструированы из рынка, выбором тех или иных частотных диапазонов изменения цены и алгоритмов их расфильтровывания.
Говорить говорил, но пользовался все время одним и тем же набором и всех приучил к некоторому постоянству, которого на самом деле в общем случае не существует. И постоянные читатели привыкли думать, что в этом изменчивом рыночном мире есть постоянная величина, опора, с помощью которой можно сформировать объективный взгляд на происходящие на рынке процессы.

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

Так вот. Интересный эффект получается с фильтрами высокого порядка. И выявить это помог робот.

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

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

Короче, я в шоке!!!
То, что я считал практически бесполезной игрой ума, вдруг начало давать эффект там, где я совсем не ожидал. Просто от нечего делать в выходные заложил в робот дополнительные опции по типу фильтров для разделения волн, а робот не просто выделил незаметные глазу различия, но и использовал их с высокой эффективностью.

воскресенье, 17 сентября 2017 г.

Теорема отсчетов и технический анализ рынков




Исторически сложилось так, что в техническом анализе в основе графиков цен всегда присутствовало понятие таймфрейма — сжатого изображения изменения цены на некотором временном интервале. Обычно для этого использовались представления в виде четверки чисел, характеризующих начальное, конечное, максимальное и минимальное значения цен на месячном, недельном, дневном и иных интервалах времени. Т.е. представление информации было заведомо дискретным, да еще и проквантованным на величину минимального изменения котировки, что давало возможность сразу применить цифровые методы обработки данных.

пятница, 15 сентября 2017 г.

Готовься к великой цели...



"Готовься к великой цели..." Песня такая была. "Песня о тревожной молодости" называлась.

Цели конечно нужны, но не как самоцель. Цели - фикция. Жить нужно не ожиданием достижения цели, а ощущением счастья от каждой прожитой минуты, от самого процесса жизни. Даже несмотря на то, что возможно где-то "Аннушка уже пролила масло..."
Если такого ощущения нет, значит вы занимаетесь чем-то не тем.

Какие цели у ребенка. Он просто живет, впитывая каждую минуту. Он счастлив, если нет причин для несчастья.
Его субъективное время бесконечно из-за богатства впечатлений и субъективной новизны получаемой информации. Для ребенка все ново, все интересно, любая мелочь, каждая травинка, букашка вызывает любопытство и эмоциональную реакцию. За день столько всего происходит. Лето - вечность. Ожидание каникул - столетия.

Два подхода к использованию ММ в тестировании стратегий



Несколько банальностей.
Первый раз мне снесло крышу на форексе в 2002 году, когда сконструированный мною нелинейный алгоритм торговой стратегии на минутном графике двухнедельной продолжительности дал 10000% прибыли.
Тест шел в Метастоке, исторических данных в минутах большей продолжительности на сервере компании не было.
Быстро сбегав в магазин и купив пару наматрасников для складирования и хранения денег, я забросил на счет в ныне покойном Акмосе десятку тыщ баксов.
Результат: с крышей все стало в порядке, но деньги были слиты вчистую и очень быстро. Осталось из этой суммы чуть меньше 200 долларов. За пару дней. :)
Забегая вперед скажу, что это был единственный участок рынка на котором тестируемая стратегия работала с прибылью такого  размера. Больше это нигде не повторилось, подъемы чередовались со спадами, обычная рутина. И вся эта прибыль была получена за 8 или 10 сделок с реинвестированием, а рост обеспечен за счет того, что убыточная сделка была всего одна в самом начале теста.
Т.е. колоссальный рост эквити был обеспечен чисто за счет удачного совпадения ММ и серии сделок.
И еще добавлю. Это была не последняя моя потеря на рынке. И не самая крупная. Но одна из самых запомнившихся в плане прочистки мозгов и приведения их в правильное состояние.
Да, 10000% на реале я все-таки получил (Развеселые счета. Экстремальный трейдинг.). И не за две недели, а за 5 дней. Но это тоже по большей части было делом случая, а не результатом осознанных действий. Хотя бы потому. что больше повторить это достижение мне не удалось, правда я после этого успокоился, решив. что "я себе уже всё доказал". И это пошло на пользу, хотя иногда и заносит поторговать с предельными рисками на плече 1:500 или даже 1:1000.

среда, 13 сентября 2017 г.

Объединение разных алгоритмов фильтрации в единую платформу...



... пока что принесло только головную боль.
При объединении влепил баг.
Сижу, вижу как робот в тесте на демо-счете кроет позиции там где крыть ничего не должен, и ни хрена не понимаю.
Три часа искал, заработал дикую головную боль, нашел, головная боль осталась.
Мля, 900 строк кода прошерстить тяжеловато. Нашел в общем-то случайно... А вот влепил не случайно...
Сделал автоматическую замену переменных и не учел, что кое-где есть символы, которые замену сделать не позволят...
Так и не нашел бы, по крайней мере так быстро, если бы не выскакивающий непонятно откуда графический объект, источник которого был в строке, где спрятался жирнющий жучок...

Не зная ни сна и ни отдыха...

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



Пока робот днем вкалывал я успел пробежать 5 км, поспать два раза, убрать избыточные настройки параметров робота и занялся объединением в одной системе фильтров разного типа и порядка. А учитывая тот факт, что за день я хорошо выспался, я спокойно работал всю ночь. И только в 7 утра лег поспать на 3 часа, которых вполне хватило.. Сейчас закончу этот текст, и снова на прогулку-пробежку.

Боюсь, что моим постоянным читателям скоро начнет начнет слегка сносить крышу. Они (читатели) уже привыкли к тому, что стохастические тренды дают некоторую постоянную картину и совсем упустили из виду мое замечание, что комбинаций таких трендов может быть бесконечное множество. А еще в августе "Остапа понесло" и количество упрощений, объединений и разного рода модификаций уже не поддается учету. Из плюсов только одно - все меньше параметров, которые необходимо настраивать, все больше степень автономности в действиях торгового робота.

вторник, 12 сентября 2017 г.

SWT-робот. Hft-трейдинг? Нет, торговля по тренду

По следам одной заметки.
P.P.S. Господа!!! 


Повторный анализ графиков выявил  тот прискорбный факт, что я ошибался. То, что я считал за время сделки было интервалом фиксации прибыли. Сами сделки длились от 2 до 5 и даже более дней. Так что никакой это не HFT - обычная торговля по тренду и рост, когда тренд таки пойман.



Интересные результаты вылезли из анализа сделок робота.
Робот долго ждет подходящую ситуацию, понемногу зарабатывая или теряя. А основные деньги делаются очень быстро.
Серия сделок 1 - 5 минут
Серия сделок 2 - 10 минут
Серия сделок 3 - 2 серии сделок в пределах одной минуты каждая.

Есть над чем подумать.

P.S. Кроме спреда снимается комиссия.


воскресенье, 10 сентября 2017 г.

Воскресный опус о здоровье и физических нагрузках



Сегодня в Минске проходил ставший традиционным ежегодный полумарафон.

Краткий курс начинающего трейдера


Давным давно я написал "Краткий курс начинающего трейдера" - своего рода "Краткий курс истории ВКП(б)" для трейдеров. :)
Курс разошелся по интернету, кто его только не перепечатывал, а у меня этого текста не было. :)
Теперь будет: Краткий курс начинающего трейдера

GOLD - 10.09.17. Стратегической целью роста остается уровень долгосрочного сопротивления 1575


пятница, 1 сентября 2017 г.

Жизнь онлайн


Вот, в комментариях пришло...
Еще одна тема из важных.



Я стараюсь возмещать недостаток физической активности бегом или прогулками в быстром темпе. Район у нас не то чтобы хороший, а очень хороший. Зеленый, ухоженный и красивый. Даже пару участков леса среди домов. Один на территории громадного старого оврага, берега и дно которого давным давно заросли деревьями (Медвежино, небольшой участок застроен коттеджами, таун хаусом и малоэтажными многоквартирными домами в 3 этажа). Другой - кусок смешанного леса между двумя микрорайонами (лесопарк Медвежино).

Что главное в жизни трейдера



Что главное в жизни трейдера из плюсов?

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

Главное в другом. Это одно из немногих дел, занимаясь которым ты не считаешь тягостные минуты до окончания рабочего дня, чтобы пойти и принять участие в более интересных мероприятиях.
Нет, ты конечно можешь пойти и в бассейн и в ночной клуб, и в ресторан, и вообще куда угодно и когда угодно (если есть деньги конечно). Но ты увлечен и своим делом, оно тебе не в тягость и ты можешь заниматься им в любом месте в любое время дня и ночи, если возникает такое желание и есть возможность для его реализации. Это тот редкий случай, когда работа не в тягость. И здесь не играет особой роли ни уровень и вид образования, ни степень квалификации. Каждый может найти для себя интерес в этой сфере деятельности.

P.S. Да, забыл добавить еще одно несомненное преимущество.
Это легко масштабируемый вид деятельности, и при одних тех же усилиях ты можешь зарабатывать и десятки долларов и десятки миллионов. В отличие от землекопа, парикмахера или стоматолога.