Избранное трейдера Zveroboy
В книге «Art of Currency Trading», написанной автором по имени Brent Donnelly, есть 25 правил торговли. Я говорил об этой книге некоторое время назад. Могу подписаться под каждым словом. Выписал правила специально для вас. Вот они (перевод на русском см. в конце):
Brent Donnely’s 25 Rules of FX Trading:
1. Don’t blow up. Avoid risk of ruin above all else.
2. Adapt or die.
3. Do the work. Read the speeches. Analyze, read and study.
4. If you look hard enough, you can always find a tech level to justify a bad trade!
5. “It’s big level” is not a good enough reason to put on a trade.
6. No mo’ FOMO. Never worry about missing it. There will always be another trade.
7. Flat is the strongest position. When in doubt, get out.
8. It doesn’t always have to make sense.
9. Never fade unexpected central bank moves. Jump on them!
10. Making money is hard. Keeping it is harder.
11. Successful traders make more money on up days than the lose on down days.
12. Anything can happen.
13. Keep a trading journal. Thoughts are abstract and fuzzy. Writing is concrete and solid
14. There is a time and a place to go big (очень нравится это правило).
15. Good traders vary bet size.
16. It always looks bid at the highs. It always looks heavy at the lows.
17. You control the process but you don’t control the outcome.
18. Each trade is a drop of water. The market is an ocean.
19. Know your edge.
20. Know your time horizon.
21. Good traders have a plan. They may not always stick to the plan but they always have one.
22. Tight/aggressive wins.
23. Be flexible. Don’t get married to a view.
24. Do not let random, low-conviction trades kill you.
25. Have fun. If you don’t enjoy it, what’s the point?
--Массив с Тикерами, добавьте нужные тикеры 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;как выглядит в квике:
Тут народ в последнее время стал писать про «законы трейдинга». На мой взгляд, базовых законов в трейдинге не очень много, а все эти списки из 150+ «законов» на самом деле содержат всего несколько законов, а всё остальное — это следствия, уточнения, дополнения и прочее, вплоть до каких-то совсем мелких нюансов. Но суть не в этом, это я отъехал в сторону.
Суть же того, что я попытаюсь донести, состоит в следующем: все без исключения реальные базовые законы трейдинга написаны сжатым, емким и доступным языком и понять их смысл не составляет никакого труда. И в этом как раз сложность их настоящего понимания, такой вот парадокс.
Почему многим трейдерам не удается им следовать? В том числе потому, что они написаны слишком просто. То, что они написаны чужой кровью, страхом, потом и слезами, становится понятно не сразу, поэтому в начале мозг воспринимает их как банальность, не утруждая себя. Мозг вообще не любит себя утруждать, его нужно заставлять из-под палки ;)
Для части людей в таких случаях работает визуализация.
4 года и 4 месяца прошло с выхода поста «Торговый робот на LUA для QUIK» (https://smart-lab.ru/blog/200767.php) про конструктор Lbot. За это время он повзрослел, лишился графического интерфейса и… превратился в младшего брата для Lbot3D. И если раньше для Lbot была пробная версия (с одним инструментом и одним лотом), то теперь, фактически, сам превратился в пробную версию для Lbot3D и, с этого дня, предоставляется в свободное пользование с полным функционалом:
Скачать Lbot180.zip можно тут: drive.google.com/open?id=1DL9jGEBm2Uhk89PcQdlK-ObaOe2zihnx
INI-файл написан для демо-QUIK на 3 инструмента — Сбербанк, Газпром и Лукойл. Стратегия на Газпроме — безиндикаторная, на Сбербанке — на скользящих средних, на Лукойле — на пересечениях MACD.
encoding = "UTF-8" FREQUENCY = 1000 account = NL0011100043, 10110 PositionSize = 300000 xy = 421, 0, 859, 118 ;------------------------------------------------------------------------------- [GAZP] Security = GAZP, QJSIM, Gazp_moex WorkSize = 3 // рабочий объем, в штуках; LossLimit = 100 // ограничение на убыток по стратегии OpenSlippage = 10 // допустимое проскальзывание на сделке, в количестве минимальных шагов цены; OpenLong = {Close, 1} < {High, 2} // цена 'close' предыдущей 'полной' свечи превысила 'high' предшествующего ей бара; OpenShort = {Close, 1} > {Low, 5-2} // цена 'close' предыдущей 'полной' свечи принизила 'low' 5-2 баров; StopLoss = 2 TakeProfit = 3, 1, 1 EOD = 18:29:00 //закрытия позиции в указанное время. autoBot = Y [SBER] Security = SBER, QJSIM, Sber_moex WorkSize = 10 LossLimit = 100 OpenSlippage = 10 OpenLong = {Ema1} > {Ema2} CloseLong = {Ema1} < {Ema2} OpenShort = {Ema1} < {Ema2} CloseShort = {Ema1} > {Ema2} autoBot = Y [LKOH] WorkSize = 2 Security = LKOH, QJSIM, Lkoh_moex LossLimit = 225 OpenSlippage = 10 OpenLong = cross(macd_Lkoh.0, macd_Lkoh.1) OpenShort = cross(macd_Lkoh.1, macd_Lkoh.0) ;OpenLong = {Close, 1} < {Low, 5-2} ;OpenShort = {Close, 1} > {High, 2} StopLoss = 30 TakeProfit = 50, 10, 10 autoBot = Y
На данный момент в недельных сериях опционов в связи с праздниками не удобно создавать какие-либо позиции. Поэтому, примеры будут на месячных опционах. На недельных всё то же самое но в четыре раза быстрее и дешевле по премиям.
Первое, что пытаются делать трейдеры при направленной торговле опционами, это купить опцион в предполагаемом направлении движения базового актива. При ожидаемом росте – купить колл, при ожидаемом падении – купить пут. Чаще всего, если движение базового актива было не достаточно сильным, такая позиция приносит убыток. Это происходит потому, что со временем опцион теряет свою цену. Называют это временным распадом опциона. Но есть способ избавиться от такого негативного влияния времени.
Основная идея заключается в следующем: Производится покупка опционов с более дальним сроком исполнения и одновременно с этим, для компенсации временного распада, продаются опционы с более близким сроком исполнения.