Избранное трейдера Ray Intraday
Продолжаем погружаться в основы языка. Сегодня рассмотрим:
Циклы for … do… end
while do … end
repeat … until
sleep
Как пройти весь массив циклом
Как пройти таблицу по ключам и значением
break
goto
Локальные и глобальные переменные
Функции
Получение даты и времени
Получение данных через getInfoParam
Цикл for … end
for index = start, end, step do -- start – начало отсчета, -- end – конец отсчета, step - шаг -- тело цикла end
Пример:
for i = 1, 10 do -- пройтись от 1 до 10 c шагом 1 (по умолчанию)<br /> message("i="..i) -- вывод i<br /> end
Можно задать шаг:
for i = 1, 10, 2 do -- пройтись с 1 до 10 с шагом 2 message("i="..i) end
Цикл while do...end
while (условие) do -- тело цикла end
Выполняет тело цикла, пока соблюдается условие. Если условие на старте не соблюдается, то цикл не запустится.
Пример:
a = 1 while a < 9 do a = a + 1 message(tostring(a)) end
Цикл repeat … until
Весь материал, который здесь и далее будет рассматриваться по qlua, работает на 10й версии квика. Вполне допускаю, что со временем какие-то функции разработчики перепишут и в новых версиях что-то нужно будет сверять c мануалами, уточнять хелпом и на форумах, но предполагаю, что а) эти изменения будут вводиться очень не быстро и б) синтаксис и основа при этом останутся без существенных изменений.
Сегодня рассмотрим:
message
Выводит сообщение в торговом терминале в формате окна (в прошлой статье говорил, что удобнее отключить, чтобы не отвлекаться постоянно) и в таблице системных сообщений.
Особенности message: функция после вывода делает перенос строки, поэтому если необходимо вывести несколько значений в одной строке нужно делать их слияние (об этом ниже).
Для корректного отображения русских букв необходимо выбирать котировку файла Windows-1251 (об этом также в прошлый раз мы уже говорили). Иногда по этой причине некоторые разработчики пишут только на английском весь вывод текста в терминал, чтобы не заморачиваться с кодировкой, в т.ч. при размещении на github и совместной работе с кодом.
Как уже описывал в предыдущей статье «Движуха в Сургутнефтегаз и алготрейдинг», после эпично роста Сургутнефтегаз и еще более эпичного падения на решении СД, пришло время написать статью о том, какими критериями мы руководствуемся при принятии решения о отключении ботов от торгов и их замены.
В жизни любой торговой системы в алготрейдинге есть несколько этапов. Это идея, когда вам приходит в голову гениальная идея как можно заработать деньги на бирже, затем формализация данной идеи и перенос ее на бумагу (как мы это делаем описал в статье Инструменты трейдера.Блокнот. ), перенос стратегии в программу технического анализа в которых проверяемых на истории правильность заложенных в нее идей и возможности заработать. И если все складывается удачно, то система запускается в работу.
К сожалению, в мире алгоритмической торговли, так же всё не вечно и со временем рынки меняются и системы, которые раньше давали прибыль начинают приносить убытки или работать практически в ноль. В этот момент добавляются еще один этап жизни торговой системы-снятие торговой системы с торгов и замена другой.
Пока готовится ряд статей о тестировании и оптимизации наших торговых систем, товарищ по моей просьбе доработал бота, торгующего на внутридневных данных для торговли дневками. Изначально это было сделано для наших друзей и знакомых, которые хотят приобщиться к теме инвестирования, но нет времени или лень это изучать самостоятельно. Предложение дать деньги в ДУ была сразу отвергнута и как альтернатива было предложено самостоятельно покупать по сигналам наших ботов, которые будем выкладывать в телеграмм. Много времени для этого не надо. Посмотрел с утра есть новые сигналы или нет, если есть выставил стоп на покупку или передвинул Stop-Loss если позиция уже открыта.
Наш бот использует для анализа рынка и принятия решений о покупке или продаже акций только волатильность и временные фильтры. Он работает на основе дневных данных, чтобы было удобно следовать за сделками и показал хорошую доходность на истории. Стратегии торгует только в лонг. Время тестов с 01.01.2013 – 29.03.2023Любители ценят результат отдельных сделок. Подумайте о принимающем, который поймал мяч один раз при очень трудном броске.Профессионалы ценят последовательность. Могу ли я поймать мяч в одной и той же ситуации 9 раз из 10?
Я давно понял, ты можешь быть 30 раз прав, но важным будет именно 31 раз… когда ты не прав и неправ по крупному… Будет ли этот 31 раз обычным трейдом, или трейдом который может сломать всю твою жизнь...?! Я не знаю, никто не знает — ведь все мы люди… Мы ошибаемся и ведем порой себя иррационально… Поэтому у меня есть пара принципов мани-менеджмента которые сильно облегчают мою жизнь, ничего особенного — но возможно кому то станет поможет в торговле...
Разделение счетов.
У меня есть 3 счета:
А — сумма 100-200К. Я его гоняю в течение дня когда нет волатильности, а мозг занять чем то нужно. Он также нужен чтобы иногда расслабить мозг от FOMO. Например, наступает для меня интересная ситуация в СИ, но до ТВХ еще пунктов 300-400… Но мозг отчаянно бомбит мне идею что уже пора набирать позу (приговаривая — если что усреднимся...))) И я беру 10 лотов СИ на этом счете… Это сразу опускает меня на землю и успокаивает, появляется даже небольшой страх… Только страх этот пустой — ведь я рискую всего 10 лотами… И когда наступает момент X — я в 1-2 прыжка беру позу на счете B...
2. Блог им. CzeDOOM | Эмпирическая философия бывалого трейдера
29 января 2016, 01:29|Mao CzeDOOMПечать
1. Никогда не будьте ни в чем уверены. Будущее не знает никто, так как его просто нет. Задача трейдера – оценить вероятности и принять соответствующее торговое решение. Зачастую, лучшее торговое решение – это не входить в рынок. Задача спекулянта – это сохранить капитал, а вторая – попытаться еще и заработать.
2. Стоп должен стоять всегда.
3. Из $100 реально сделать $1 000, а из $1 000 — $10 000, а потом — $100 000. Но если хотите сделать это за свою жизнь – вы однозначно будете превышать свои риски. Абсолютное большинство трейдеров всегда будут это делать. Самый верный риск менеджмент в этом случае – это периодически снимать часть заработанного. Как лучше снимать: по достижению определенной суммы или по истечению определенного времени? Все зависит от самого трейдера. Следует помнить одно – попытки «добить» депозит до определенной суммы за определенное время – это слив. Лучше выводить периодически 50% заработанного, а другие 50% оставлять на торговом счету.
4. Лучше, надежнее и проще торговать в направлении тренда. Цена обычно доходит до намеченной цели, а если тренд продолжается – то идет дальше цели. Если торгуете контртренд – цели должны быть меньше (как минимум в половину). Например, если это трендовый канал, при тренде цель – это противоположная граница канала, а при контртренде – это середина канала. Контртенд можно пробовать торговать на акциях, если идут исторические минимумы/максимумы.
5. Большинство акций (но не все) двигаются «синхронно» вместе с индексами, даже если они в него не входят, а также с «секторами» (например, энергетика – с энергетическим сектором). Поэтому наблюдение корреляции с индексами – весьма спорное занятие. Аналогично на форексе – не стоит тратить время на сопоставление мажоров и кросс-курсов, — все инструменты прекрасно анализируются с помощью теханализа. Лучше анализировать каждый инструмент сам по себе.
6. Уровни, наверное, это самое главное в торговле. Лучше совершать сделки только на уровнях. Лучше строить уровни по теням – цена уже там была, лимитные приказы были активированы. Если не уверены, стройте 2 уровня (тонкие линии) – по теням и по телам – это и будет «зона»: она менее точная, но более надежная.
7. Лучшие ТФ: Форекс (W1 и D1 с промотором H4), акции D1->H4->M5, нефть – М30, природный газ – H1.
8. Лучшие средние скользящие – это ЕМА. Лучшие параметры: D1/M5: (10 (8), 20 (21)) и 50.
9. Часто цена не доходит до профита!? Ответа что делать нет. Можно закрывать части позиций, но это не всегда удобно. Достаточно простой вариант – это открыть 2 одинаковые позиции: 1 – 50 пунктов (но не менее стопа), 2 – поставленная цель. При закрытии 1й сделки по профиту, по второй стоп в бу. Практически любой инструмент проходит 50 пунктов.
10. Если впереди многолетний максимум/минимум – можно смело выставлять отложку на уровень и практически всегда забирать свои 50 пунктов, — цена редко проходит его с первого раза.
11. Паттерн ABC (пробитие, откат, продолжение движения) на М5 работает в 80% случаев.
12. На графике нет ничего лучше самой цены. Минимализм – залог успеха. Потом, по приоритетности лучше наносить: горизонтальные уровни, потом трендовые линии/каналы, потом ЕМА. Почему так? У всех разные параметры индикаторов, а вот уровни – видят все.
13. Лучший таймфрейм – это D1, а лучшее соотношение риск\прибыль – 2% к 6%.
14. М5, особенно учитывая тренд на D1 и имея подтверждение на Н4 дает прекрасные результаты.
15. Оптимально торговать большее количество инструментов, не уменьшая ТФ и не нарушая ММ.
16. Долгосрочные сделки на рынке форекс – опасная затея, так как «потолка» и «дна» у валюты нет и быть не может. Фьючерсы и акции имеют дно – 1 цент за контракт или банкротство эмитента.
17. Перенос сделок по акциям на следующий день – это лотерея. Особенно если брокер не дает возможности торговать на премаркете и афтермаркете. Если уже решили обыграть «кухню», то перед окончанием торговой сессии убирайте тейки и профиты. Лучше крыть прибыли/убытки руками после открытия торгового дня.
18. Нет времени торговать – не лезь на акции или фьючерсы. Долгосрочников с маленьким депо там выбивают с рынка практически моментально. Если нет время – лучший рынок – это форекс, ТФ – D1.
19. Не видно паттерна, не рисуются линии и уровни – значит их там вероятно нет. Если возникает хоть малейший вопрос – торговать не стоит.
20. Есть торговая идея смотрим паттерн уровень, потом паттерн ПА, потом тренд локальный, сверяем на старшем ТФ, ищем дополнительные подтверждающие сигналы. Для более точного входа можно входить на 1 ТФ ниже. Ниже ТФ – менее надежная сделка. Как узнать или вход правильный? Если цена после открытия сделки сразу не двигается в вашу сторону вероятно, что вход был неточным или, что хуже, неверным.
21. Если сделка «верняк» (пин + тренд + уровень + 50% фибо + трендовая линия), то можно войти большим чем всегда объемом. Если всех подтверждающих сигналов нет, лучше войти меньшим объемом. Объем сделки может быть динамическим (но только если это предусмотрено ТС) … Хватит философствовать, поехали торговать!
Татарин — лидеры роста падения планки и еще кое что
function main() local Trades = {} local comission = 0 SearchItems('trades', 0, getNumberOf('trades')-1, function (class_code, trade_num, flags, exchange_comission) if class_code == 'SPBFUT' or class_code == 'SPBOPT' then -- Учитываем только сделки на срочной секции comission = comission + exchange_comission local t = {flags & 0x4, exchange_comission} if Trades[class_code] then Trades[class_code][trade_num] = t else Trades[class_code] = {[trade_num] = t} end end return false end, 'class_code,trade_num,flags,exchange_comission') local total = 0 local maker = 0 local taker = 0 local comission2 = 0 SearchItems('all_trades', 0, getNumberOf('all_trades')-1, function (class_code, trade_num, flags, sec_code) if Trades[class_code] then local t = Trades[class_code][trade_num] if t then total = total + 1 if flags & 0x1 ~= 0 then if t[1] == 0 then maker = maker + 1 else taker = taker + 1 comission2 = comission2 + t[2] end elseif flags & 0x2 ~= 0 then if t[1] == 0 then taker = taker + 1 comission2 = comission2 + t[2] else maker = maker + 1 end else comission2 = comission2 + t[2] end end end return false end, 'class_code,trade_num,flags,sec_code') message(string.format('total: %u\nmaker: %u\ntaker: %u\n\ncomission\nсейчас: %.2f\nскальпинг: %.2f\nстанет: %.2f', total, maker, taker, comission, comission / 2, comission2 * 3)) end