Блог им. kurd

Какой индикатор нужен для календарного спреда фьючерсов

Открывая позицию в дальнем и ближнем фьючерсах на один и тот же актив неплохо иметь перед глазами график их разности. И Quik средствами QLua предлагает такую возможность.
Какой индикатор нужен для календарного спреда фьючерсов
Код довольно прост:

— Складывает Value графиков GraphId1 и GraphId2
— При запуске на загрузке Quik'а работает код предыдущей загрузки
— с последними свойствами, полученными из кода или интерактивно.
— При запуске старые бары графика данных сканируются дважды,
— только если есть подключение к серверу.
— При смене тайм-фрейма старые бары сканируются только единожды.
— При загрузке Quik'а первый скан до подключения к серверу.
CandlesOK = true
Settings = { — После смены тайм-фрейма нужно интерактивное подтверждение
  Name      = "_Add"
  ,GraphId1 = «Tag-1» — Перезадать оба после первой загрузки.
  ,GraphId2 = «Tag-2» — Сохраняются при последующих запусках.
  ,Factor1  = 1       — Для GraphId1
  ,Factor2  = 1       — Для GraphId2
  ,Base1    = 0       — Для GraphId1
  ,Base2    = 0       — Для GraphId2
  ,Value    = «close»
  ,line = { — Исчезает прогррамный доступ после 1-го интерактивного изменения
    {Name = «close»
    ,Color = RGB(255,255,0) — Жёлтый
    ,Type = TYPE_HISTOGRAM — POINT, LINE, DASH, DOT, HISTOGRAM,
    ,Width = 2}            — TRIANGLE_UP, TRIANGLE_DOWN.
  }
}
function Init()
  local s = «Indicator _Add:»
  if 0 == getNumCandles (Settings.GraphId1) then
    CandlesOK = false
    s = s .."\n  invalid GraphId1"
  end
  if 0 == getNumCandles (Settings.GraphId2) then
    CandlesOK = false
    s = s .."\n  invalid GraphId2"
  end
  if not CandlesOK then message (s) end
  return #Settings.line
end — Init()

function OnCalculate (index)
  if index == 1 then
    CandlesOK = true
    if 0 == getNumCandles (Settings.GraphId1) or
       0 == getNumCandles (Settings.GraphId2) then
      CandlesOK = false
    end
    --[[message («Settings.Value »… tostring (Settings.Value)
      .."\nSettings.line "… tostring (Settings.line)
      .."\nCandlesOK  "… tostring (CandlesOK))--]]
    if Settings.Value ~= «open» and Settings.Value ~= «high» and
       Settings.Value ~= «low»  and Settings.Value ~= «close» then
      Settings.Value = «close»
      message («Indicator _Add: Value must be open/high/low/close»)
    end
  end
  if not CandlesOK then return nil end
  local candle1 = (getCandlesByIndex (Settings.GraphId1, 0, index-1, 1))[0]
  local candle2 = (getCandlesByIndex (Settings.GraphId2, 0, index-1, 1))[0]
  local val1 = candle1[Settings.Value]
  local val2 = candle2[Settings.Value]
  — Результат return res == 0 and nil or res всегда 0 при res == 0
  if val1 == 0 or val2 == 0 then return nil end
  return (val1 + Settings.Base1) * Settings.Factor1
    + (val2 + Settings.Base2) * Settings.Factor2
end — OnCalculate()

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.1К | ★14
4 комментария
на какую доходность в год можно рассчитывать?
avatar
AlexGood, любая позиция на бирже выигрышна, если только ты угадал будущий ход рынка. Ни один индикатор не указывает будущего. Этот индикатор избавляет тебя от ручного вычитания и индицирует ход спреда.
avatar
Rostislav Kudryashov, подскажите как запустить, версия квика 8.7.0.6 сохраняю в нотепаде с расширением lua и кдладу в luaindicators.В индикаторах не находит.
avatar
bbbugai, 12:46 Смарт-лаб при вставке цитаты со скриптом вероломно заменил два дефиса "--" на «нечто своё» ("—") и заменил двойные кавычки " на парные угловые (« и »). И две точки ".." одним символом троеточия "…".
Попробуй исправить у себя. С-Л уже не даёт исправить в исходном сообщении.
Квик не «видит» скриптов с ошибками.
avatar

Читайте на SMART-LAB:
Фото
«Селигдар» утвердил обновленную дивидендную политику
Полиметаллический Холдинг «Селигдар» (MOEX: SELG) в рамках проведения ежегодного Дня инвестора на Московской бирже сообщил, что накануне Совет...
Займер выплатил акционерам более 1,5 млрд рублей дивидендов
Акционеры Займера начали получать дивиденды сразу за IV квартал 2025 года и I квартал 2026 года. Большинство акционеров уже получили дивиденды на...
Фото
Есть неприятная вещь, о которой редко говорят прямо!
Можно много торговать, накапливать опыт, смотреть рынок каждый день, разбирать графики, помнить десятки удачных и неудачных входов и всё равно не...
Фото
Сбер РПБУ 6 мес. 2026 г. - кому нужны 30% доходности?
Сбер опубликовал финансовые результаты по РСБУ за 6 месяцев 2026 года. Чистая прибыль за полгода работы составила 995 млрд руб. (+20,4%). За...

теги блога Rostislav Kudryashov

....все тэги



UPDONW
Новый дизайн