Избранное трейдера Oleg Only Algo
Кратко расскажу принципы и некоторые нюансы работы с графиком в Qiuk в плане создания своего индикатора (здесь и далее – подразумевается использование языка программирования Lua). В конце текста изначально хотел прикрепить видео с демонстрацией и краткими пояснениями работы моих индикаторов, но решил сделать это во второй части статьи, чтобы совместить просто иллюстрацию с небольшим анализом фьючерсов и акций.
На полноту изложения вопроса по работе с индикаторами на графике Quik не претендую. Информация будет полезна интересующимся данной темой, не рассчитана на профессионалов (которые и так все знают, умеют и реализовали – свято в это верю), но все же предполагает наличие определенного уровня знаний Lua.
Зачем мучиться со своими индикаторами? Конечно, в этом нет смысла, если вас устраивают стандартные индикаторы или отсутствуют самостоятельные подходы (методы) торговли, либо визуализация вам в принципе не требуется (не интересна).
В моем случае мне банально захотелось сделать визуализацию своего метода прогнозирования экстремумов цены следующего интервала.
Большая часть потребления газа идет на отопление -так сложилось исторически. Северное полушарие копит газ в хранилищах все летона зиму чтоб не замерзнуть.
А сколько этого газа надо всегда вопрос открытый. Прогноз погоды даже в 21 веке это рулетка. Если накопить газа слишком много а зима будет теплой, то газ останется в ранилищах и для новых постеплуний может не хватить места и тогда цены обваляться, если же газа будет слишком мало и зима будет холодной то цены не минуемо взлетят. Если правильно прогнозировать газовые запасы и климатический календарь, то можно легко понять, что рынок газа очень не поворотлив и когда погодный патерн разворачивается, цены еще долго могут стремиться в противоложном направлении.
Текущий уровень запасов газа в США можно назвать ОЧень высоким но не критично высоким.
Долгосрочный погодный прогноз указывает на то, что с высокой долей вероятности нейтральная климатическая фаза перейдет в фазу Elnino/
Перед прочтением этой статьи — ВАЖНО следующее: основная цель данной статьи заключается в том, чтобы показать как просто можно создать торгового робота, который может торговать российскими акциями или зарубежными акциями. Важно понимать, что создавая бота, вы лично несете ответственность за принимаемые им решения, инвестиционные операции и связанные с ними риски. Я не несу ответственности за решения, которые вы можете принять после прочтения этого материала. И я не даю никаких инвестиционных рекомендаций или советов. Не забывайте, что боты способны принести большие убытки, поэтому используйте их с осторожностью.
Программирование для меня это хобби и любимое дело. А так я сертифицированный системный архитектор. Поэтому прошу не особо ругать за код:‑)
Выбор брокера и библиотекКак вы знаете, брокеров много))) но нам нужны те, у которых есть API — программный интерфейс через который наш торговый робот сможет отправлять заявки на покупку и продажу акций.
Смотрю, зацепило. Зацепило про случайность в рынке. Ну оно и не мудрено. Вроде есть тренды, предсказуемость, треугольники и волны, а вот заработать не получается. Ну этому есть объяснение. Причем это связано со случайностью и еще одним аргументом. Называется это Арбитражный аргумент. Если коротко. Если вам, как токарю, предложат 25 тыс на одном заводе и 26 тыс на другом, то вы выберете второй. Если на акциях можно заработать 30%, а на облигациях 10%, то нахрен кому нужны эти облигации. Что бы понять этот процесс надо разобраться со стратегией Маркет Мейкера. Который, как вы думаете, гоняет цену по рынку. Прежде всего, это не так. К ММ приходит случайный пассажир и просит оказать ему услугу по покупке или продаже. При этом ММ все равно, так как он может сразу дать две цены, покупка и продажа. 101 и 99. Не обращая внимания ни на треугольники ни на тренды ни на волны Вульфа. Такая у него работа. Он же не может сказать: «подожди у меня тут треугольник, приходи завтра». Ему не важно, куда пойдет цена. Ему важно, что бы вы к нему пришли.
Скажите, как часто открывая следующую сделку, вы сверяетесь с каким-либо контрольный списком, чтобы убедиться, что все условия для торговли выполнены? Большинство трейдеров этого не делают. А ведь отсутствие чек-листа может быть одной из причин, по которой доход от торговли на форекс гораздо меньше ожидаемого.
Вначале, вести торговый план или чек-лист может быть очень скучно (чек-лист и торговый план может быть одно и тоже) из-за неправильного отношения. Если рассматривать чек-лист как шпаргалку, которая может сделать трейдера более прибыльным — отношение изменится в корне.
В чек-лист заранее должны быть записаны определенные критерии для торговли. Тогда этот документ будет своего рода фильтром как для определения открывать сделку или нет, так и для поиска ошибок в торговле. Все трейдерам нужен торговый план, чтобы оставаться в торговле и не быть под властью лишних эмоций. Рекомендуется использовать такой план каждый раз, прежде чем приступать к анализу графиков.
--Массив с Тикерами, добавьте нужные тикеры aTickerList = {"MSNG", "GAZP", "LKOH", "SIBN", "GMKN","ROSN", "SBER", "TATN", "NVTK", "IRAO", "RSTI", "SBERP", "PHOR", "SNGS", "TRNFP", "VTBR", "FEES", "MVID", "RASP", "MFON", "AFLT", "MAGN", "ALRS", "MTSS", "MOEX", "RTKM", "MGNT", "NLMK", "SNGSP", "CHMF", "MTLR", "HYDR", "MFON", "RSTI", "PLZL", "BANEP", "POLY" }; --Функция поиска цены function fGetPrice(sTickerName, sNum) --Подключаемся к источнику данных local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1); while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end; if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end; local sSize=ds:Size(); local sCurrentPrice=ds:O(sSize); local sLastWeekPrice7=0; local sLastWeekPrice14=0; --Берем цену закрытия свечи неделю назад sLastWeekPrice7=ds:C(sSize-4); --Берем цену закрытия свечи 2 недели назад sLastWeekPrice14=ds:C(sSize-8); --Вычисляем проценты local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100; local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100; --Заполняем таблицу значениями SetCell(t_id, sNum, 0, tostring(sTickerName)); SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice); SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7); SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14); SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7); SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14); --Текущая цена больше цены прошлой недели - раскрашиваем зеленым if sCurrentPrice>sLastWeekPrice7 then fGreen(sNum); end; --Текущая цена меньше цены прошлой недели - раскрашиваем красным if sCurrentPrice<sLastWeekPrice7 then fRed(sNum); end; --Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели --раскрашиваем желтым if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14 then fYellow(sNum); end; end; --- Функция создает таблицу function CreateTable() -- Получает доступный id для создания t_id = AllocTable(); -- Добавляет 6 колонок AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15); AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15); -- Создаем t = CreateWindow(t_id); -- Даем заголовок SetWindowCaption(t_id, "7 Days"); -- Добавляем строки for k,v in pairs(aTickerList) do InsertRow(t_id, k); end; end; --- Функции раскрашивают ячейки таблицы function fRed(col) SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0)); end; function fGreen(col) SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0)); end; function fYellow(col) SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0)); end; --Основная функция function main() -- Создаем таблицу CreateTable(); --Пробегаемся по массиву тикеров for k,v in pairs(aTickerList) do fGetPrice(v, k); end; end;как выглядит в квике:
В данной статье приведено тестирование свечной модели CandleMax в программе Wealth-Lab. Я уже приводил описание и тестирование этой свечной модели на исторических данных по 32 наиболее ликвидным акциям МосБиржи с 22.09.1997 (начало торгов на ММВБ) и по 29.12.2018.
Вот эта статья:
Тестирование рабочей свечной модели на исторических данных
То тестирование было выполнено в Excel и вызвало ряд дополнительных вопросов, в частности некоторые читатели хотели увидеть эквити системы, а также получить больше статистической информации.
Скорее всего, эти пожелания так и остались бы без ответа, так как систему я не продаю, а для себя все давно уже решил и оттестировал, если бы не один комментарий к той моей статье. Этот комментарий был написан блогером JC_TRADER и содержал ссылку на тестирование моей системы в программе Wealth-Lab. Вот эта ссылка: https://jc-trader.livejournal.com/1628589.html
Пройдя по этой ссылке, я был просто обескуражен. По итогам проведенного JC_TRADER тестирования, система CandleMax позорно показала отношение прибыльных сделок к убыточным как 50.92% к 49.08% при отношении стоп-лосса к тэйк-профиту как 1:1. Соответственно, не могло быть и речи о том, чтобы использовать такую убогую систему, о чем и написали читатели блога JC_TRADER.
Люди приходят с депозитом грубо 50 тыр, им кто-то рассказал, что "опционы — грааль и вообще можно в легкую сделать +1000% за пару дней", встают на весь депозит (в лонг вставать ведь безопасно, мы же все помним про это, да?) — и через недельку с ужасом видят окровавленные ошметки счета. Понятно, что возиться дальше желание пропадает.
Потом приходят чуть поопытней. Им уже рассказали, что "профи в основном продают — и это легкие деньги. 50-60% годовых — не вопрос". Депозит уже тысяч 300. Продают края и, наверное, 5-10 недельных экспираций могут пройти вполне благополучно. Сначала продают по 1-2 лота, потом входят во вкус, продают по 10 лотов. Но бентли на эти копейки не купишь. Начинают грузить ГО по 50-80% в начальный момент. Дело же верное. Управление позицией примерно на уровне рассуждений: "Вот когда фьючерс дойдет до страйка, тогда и буду думать что делать. Или начну делать дельта-хедж, или отроллирую в следующий страйк