Блог им. kurd |Грааль для терпил. Фьючерс. Через тернии к звёздам

Всё что нужно — растущий в долгосроке актив. Секрет — в капитализации. Индекс ММВБ уже разбирали. smart-lab.ru/blog/739123.php

Вот кое-что получше. История золота с сентября 1997 по сентябрь 2021. Рост в долларах в 5.6 раза. Но капитализация промежуточных выигрышей творит чудо.
Покупаем на ММВБ каждый 3-месячный фьючерс на золото, выделяя на ГО условно 10% от объёма позиции. На момент написания статьи, 10:50 15.11.2021, цена контракта GDZ1 $1862.1, объём 135338.92 руб и ГО 9230.99 руб. Т.е. ГО составляет 6.8%. Но для спокоя души заложим избыток. Для фььючерса на индекс ММВБ MXZ1 ГО составляет 11%.
Кроме того, резервируем 8% от этого объёма контракта на просадку позиции, по исчерпании каковой суммы фиксируем убыток. А дождавшись 15% прибыли, фиксируем выигрыш. Или закрываем на экспирации.
Т.к. такой длинной истории фьючерса у меня нет, обойдёмся графиком котировок золота в долларах за унцию. Не суть. Просто разбиваем историю на 96 кварталов и смотрим, что получилось.

В столбце money показана сумма в 0.18 (0.10+0.08) цены позиции. Т.е. на первой покупке контракт стоил $321.40.

( Читать дальше )

Блог им. kurd |Нужны ли тиковые данные для тестирования торговой стратегии?

Из общих соображений максимальной реалистичности тестирования ответ должен быть положительный. Но есть несколько «но».
Первое. Я не знаю примеров торговых стратегий на тиках. Только на свечах-барах — от минуток до дневок. Поэтому, сгрузив с qscalp.ru тики фьючерса на индекс РТС, я конвертировал их в секундные бары. И получил потрясающую доходность на простейшем алгоритме. Лонг по Close каждой чёрной свечи и шорт по Close каждой белой свечи. Увы, этот выигрыш виден только при нулевой комиссии. С комиссией выигрыш превращается в проигрыш.
Так что реагировать на движение цены не то что на тиках, но на секундах — пустой номер.

Второе. Если кто-то  для большей реалистичности захочет тестировать торговую стратегию не по ценам сделок, но по ценам очереди заявок, он может сгрузить эти тиковые данные с qscalp.ru
Но для ликвидных бумаг вроде фьючерса на индекс РТС это будет ловлей блох, т.к. спред очереди заявок таких бумаг равен шагу цены. Т.е. учесть этот спред можно, задав величину проскальзывания сделки.

( Читать дальше )

Блог им. kurd |Индикатор Загзаг для Quik'а - лучший демонстратор тренда (и волн Эллиота). Даром

Всем известен старинный индикатор Пробоя. Этот индикатор для Quik'а найдёте на smart-lab.ru/blog/704033.php
Когда-то по нему торговали, покупая на пробое вверх максимума предыдущих N баров и продавая на пробое минимума. Похоже, сегодня эта стратегия вышла из моды.

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

Мало кто пытался строить торговую стратегию на основе Зигзага. Самое ходовое возражение против Зигзага — он не предсказывает тренд. Абсурд. Никто и ничто не предсказывает будущего!
Более того. Зигзаг даёт самое объективное и наглядное представление о чередовании трендов заданной силы.

Я некоторое время назад уже предлагал вниманию публики индикатор зигзага для

( Читать дальше )

Торговые сигналы! |Индикатор пробоя Breakout пришлось исправить

Исправлена печать повторных пробоев одного того же экстремума в том же сообщении.
smart-lab.ru/blog/704033.php
На минутных барах этот печатный долбёж очень досаждает.


Блог им. kurd |Индикатор пробоя. В Quik'е можно всё (почти). Исправление

Исправлена печать повторных пробоев одного того же экстремума.
По просьбам играющих 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()

Блог им. kurd |Добавим Фьючерс ММВБ на золото. Двойной Грааль для терпил. Исправленный

Это дополнение «Снова Фьючерс на индекс ММВБ. Грааль для терпил» smart-lab.ru/blog/699619.php
На этот раз гоняем историю фьючерса GOLD. Но для сопоставимости с MXI сразу конвертируем доллары в рубли по курсам на каждый день торгов.
Игнорируем, что фьючерс на золото торгуется в контанго. Не суть! Используем почти тот же алгоритм, что в предыдущей статье, на те же 73 квартала с марта 2003.
Изменение в том, что WealthLab заглючил на истории золота и в одном баре не закрывает позицию по заданной цене. Пришлось делать роллирование по цене открытия дня, следующего за экспирацией.
Оптимизированные параметры: триггер скользящего стопа 25%, реверс 5%, убыток 10%.
Выигрыш 120788.33 руб. Просадка 30820.10 руб на 08.03.2021. От максимума цены позиции 154559 руб на 06.08.2020 это 19.94%.


Теперь для подсчёта прибыльности я беру не конечную цену актива, но среднюю за все дни, равную 52641.90 руб.

Связанные средства: ГО + резерв = 9306.61 * 1.25 = 11633.26 руб; Вариационка = 52641.90 * 0.25 = 13160.48 руб.
Итого: 24793.73 руб. округлим до 25000 руб.
При среднем выигрыше за квартал 1654.63 руб это даёт квартальную прибыльность 6.62%. На год в среднем 26.47%.
Следует отметить 6 проигрышных подряд кварталов 2012-2013 и ещё 5 случаев по 2 проигрыша подряд. Учитывая, что ФРС уже почти израсходовала свой боезапас, вряд ли возможно повторение 2012 года.



( Читать дальше )

Блог им. kurd |Снова Фьючерс на индекс ММВБ. Грааль для терпил

Это дополнение к «Фьючерс на индекс ММВБ. Математические ожидания и реальная ретроспекция» smart-lab.ru/blog/699584.php
Т.к. фьючерс на индекс ММВБ торгуется в бэквордации, его историю можно заменить более длинной историей самого индекса, если: 1) умножить индекс на 10 и 2) роллировать позицию в дни экспирации по цене (Open+Close)/2.
И тогда можно представить, как можно было, играя в MXI (малый фьючерс), пережить и 2008, и 2020 годы.
Подробности алгоритма в предыдущей статье. Последний тест на 73 кварталах от марта 2003 дал для фьючерса MXI выигрыш 50549.20 руб. Наибольшая просадка выигрыша 10923.10 руб на 18.03.2020 от максимума 44498.90 руб 20.01.2020 с объёмом позиции 32268.90 руб (33.85% от объёма).
В 2008 просадка скромнее, Но относительном объёма позиции примерно та же.

Средний выигрыш на квартал 692.50 руб. Относительно связанных средств 15000 руб (завышенная оценка) это даёт квартальную прибыльность 4.62% или 18.47% годовых.
Стоп-лосс сработал только однажды, 06.08.2008. Скользящий стоп фиксировал прибыль 15 раз. Оптимизированные параметры: триггер скользящего стопа 20%, реверс 0%. Убыток 25% на квартал я назначил из психологических соображений.
Следует также отметить три проигрышных подряд квартала в 2011. И ещё два случая по два проигрышных квартала подряд.
На графике показан выигрыш индекса ММВБ, не умноженный на 10

Снова Фьючерс на индекс ММВБ. Грааль для терпил

Плоские участки в 2008 показывают досрочные закрытия позиции.
Игра в купи и держи даёт выигрыш 39501.70 руб с просадкой 13610.70 руб.


Блог им. kurd |Фьючерс на индекс ММВБ. Математические ожидания и реальная ретроспекция

Можно много рассуждать о возможностях положительного матожидания для фьючерса на индекс ММВБ и даже написать не одну статейку.
smart-lab.ru/blog/699550.php
А можно один раз сделать тестовый прогон по истории торгов. У меня набрана история 26 кварталов MXI (малый фьючерс) с экспирациями с марта 2012 по сентябрь 2019.
Покупаем по открытию после дня предыдущей экспирацции и закрываем либо по убытку (25%), либо скользящим стопом (триггер 25%, реверс-10%) либо по закрытию дня экспирации. И без проскальзываний. Комиссия купли-продажи 1 руб.
С этими оптимизированными параметрами выигрыш 10825.50 руб, на 16.06.2017 просадка 5782 руб от предшествующего максимума выигрыша 7525.50 руб (24.78% от объёма позиции 23332.50 руб на 03.01.2017). Средний выигрыш за квартал 416.37 руб. Убытка в 25% не было ни разу, и только однажды скользящий стоп прибавил тыщонку к выигрышу.
Если закрывать только на экспирации, выигрыш 9423.40 руб, просадка 5781 руб.

Теперь о прибыльности. Гарантийное обеспечение 28.05.2021 на фьючерс MMM1 3911.88 руб. Цена контракта на закрытии 37180.50 руб. Резерв вариационки в 25% от объёма контракта равен 9295.12 руб. Резерв 25% на ГО равен 977.97. Итого связанных средств: 3911.88 + 9295.12 + 977.97 = 14184.97. Округляем до 15000 руб.
Со среднего выигрыща 416.37 руб это даёт на квартал прибыльность 2.78%. На год 11.12%.
Правда, в историю не попали провалы 2008 и марта 2020. Для этих периодов могут потребоваться другие стопы. 



( Читать дальше )

Блог им. kurd |Как конвертировать файл дненых котировок в недельные. Качайте пока дают

Мой диск https://disk.yandex.ru/d/Hvh_UGAveZDbCg
Утилиты командной строки лучше всего запускать из файловой оболочки Far.
Это продолжение к https://smart-lab.ru/blog/687764.php

....все тэги
UPDONW
Новый дизайн