Избранное трейдера OnlyHuman
Исправлена печать повторных пробоев одного того же экстремума.
По просьбам играющих smart-lab.ru/vopros/703796.php
В Quik'е нельзя только предсказывать будущее.
Индикатор Breakout рисует на графике котировок точки пробоя для экстремумов заданного числа Num баров. Для последнего интервала Num баров показывает уровни экстремумов.
Значение Num и признак Print печати сообщений на пробои можно поменять через параметры индикатора.
Чтобы в Quik'е использовать этот индикатор, поместите нижеследующий код в текстовый файл Breakout.lua, а сам этот файл в подкаталог LuaIndicators в том каталоге Quik'а, где лежит файл info.exe.
Чтобы метки пробоев были виднее, индикатор следует поместить после графика котировок. Эти метки позволят на глазок определить прибыльность пробойной стратегии.
-- Ростислав Дмитриевич Кудряшов, СПб, 2021 -- Индикатор Breakout для Quik: min и max Num баров Settings = { Name = "_Breakout" ,line = { {Name = "Min" ,Color = RGB (255,0,0) ,Type = TYPE_LINE ,Width = 1} ,{Name = "Max" ,Color = RGB (0,255,0) ,Type = TYPE_LINE ,Width = 1} ,{Name = "Lwr" ,Color = RGB (255,255,0) -- Жёлтый ,Type = TYPE_TRIANGLE_DOWN ,Width = 1} ,{Name = "Upr" ,Color = RGB (0,128,255) -- Тёмно-Голубой ,Type = TYPE_TRIANGLE_UP ,Width = 1} } ,Num = 10 ,Print = 1 -- или 0 } Scan = 0 -- При загрузке Quik сканирует 1 раз function Init() return #Settings.line end function OnChangeSettings() Scan = 0 end function OnCalculate (index) local n, mn, mx, ini, fin, upr, lwr, printFlag n = Settings.Num if n < 1 or index <= n then if index == 1 then Scan = Scan + 1 SetRangeValue (3, 1, Size(), nil) SetRangeValue (4, 1, Size(), nil) end return nil end mn = math.huge mx = -math.huge ini = index - n fin = index - 1 for i = ini, fin do mn = math.min (mn, L(i) or mn) mx = math.max (mx, H(i) or mx) end printFlag = Settings.Print > 0 and index == Size() and Scan > 1 lwr = GetValue (index, 3) upr = GetValue (index, 4) if not lwr and L(index) and L(index) < mn then if printFlag then message (Settings.Name ..": Dn ".. mn) end lwr = mn end if not upr and H(index) and H(index) > mx then if printFlag then message (Settings.Name ..": Up ".. mx) end upr = mx end if index == Size() then SetValue (ini-1, 1, nil) SetValue (ini-1, 2, nil) SetRangeValue (1, ini, fin, mn) SetRangeValue (2, ini, fin, mx) else mn, mx = nil end return mn, mx, lwr, upr end -- OnCalculate()
Здесь приведу описание простой тактики от Райана Джонса. ПРОСТОЙ МЕТОД ТОРГОВЛИЯ слишком много говорил об эффективных и неэффективных методах с точки зрения простой логики рыночного процесса. Следующий метод, возможно, самый простой и логичный. Помимо этого, немногие системы или методы дают результаты, которые вы увидите на следующих нескольких страницах. |
--[[ параметры: Procent - процент зигзага --]] Settings={ Name="ZIG_SMA", Procent=2, lim=20, div=2.0, line= { { Name = "ZIG_SMA", Type =TYPE_LINE, Width = 2, Color = RGB(0,0, 0) } } } function Init() y1 = nil y2 = nil x1 = 1 x2 = 1 return 1 end function OnCalculate(index) de = Settings.Procent lim = Settings.lim div = Settings.div vl = C(index) if index == 1 then y1 = vl y2 = vl else if C(index) > y1*(1+de/100) and y1 < y2 then x2 = x1 y2 = y1 x1 = index y1 = C(index) else if C(index) > y1 and y1 >= y2 then x1 = index y1 = C(index) end end if C(index) < y1*(1-de/100) and y1 > y2 then x2 = x1 y2 = y1 x1 = index y1 = C(index) else if C(index) < y1 and y1 <= y2 then x1 = index y1 = C(index) end end end per = math.floor((x1 - x2)/div) if per < lim then per = lim end ss = 0 k=0 for i = index - per, index do if i >= 1 then ss = ss + C(i) k=k+1 end end if k ~= 0 then vl=ss/k end return vl end
Поиск интересных и выгодных среднесрочных закономерностей/тем для заработка является одним из хороших вариантов заработка на бирже.
Под среднесроком я имею ввиду не неделю, месяц или квартал, а интервал от 6 месяцев до 2 лет.
После кризиса 2014 года – рост USD/RUB с 30 до 80 появилась одна из таких тем для заработка. Обратил внимание, что по Si и Brent платят хорошие премии. По Si премия составляла от 1,80 до 1,50 рубля в квартал. По Brent премия составляла от 0,6 до 1,0 $ в месяц.
Соответственно, продавая оба контракта мы среднесрочно забираем обе премии.
Фактически получилось, что торговал от шорта по нефти за рубли (UKOIL*USDRUB).
3 варианта развития событий.
1. Если нефть падает в цене – получаем прибыль.
2. Если UKOIL*USDRUB торгуется без изменений – получаем прибыль за счет премий.
3. Если нефть медленно растет – получаем безубыток, если нефть быстро растет – получаем убыток.
Теория вероятности на нашей стороне – в 2х случаях из 3х получаем прибыль.