Блог им. 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()

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

Читайте на SMART-LAB:
Фото
На чьих обязательствах держится рынок облигаций
Российский долговой рынок вырос на 20% за прошлый год. Доля облигаций в портфелях частных инвесторов увеличилась до максимума с конца 2020...
Фото
✅ ПАО «МГКЛ» завершило размещение второго выпуска облигаций на СПБ Бирже
ПАО «МГКЛ» успешно завершило размещение биржевых облигаций серии 001PS-02 на СПБ Бирже объёмом 1 млрд рублей. Выпуск был размещён в полном...
Фото
«Ренессанс страхование» запускает сервис проверки юридической чистоты сделок с недвижимостью с гарантией выплаты компенсации
«Ренессанс страхование» вывел на рынок сервис, объединяющий юридическую экспертизу документов при покупке недвижимости и страховую защиту...
Фото
Нефтяной срез: выпуск №8. Перекрытие Ормузского пролива + рост цен на нефть против слабых отчетов за 4-й квартал 2025 и 1-й квартал 2026? Ищем лучших в все еще слабом секторе
Продолжаю выпускать рубрику — Нефтяной срез.  Цель: отслеживать важные бенчмарки в нефтяной отрасли, чтобы понимать куда дует ветер.  Прошлый пост:...

теги блога Rostislav Kudryashov

....все тэги



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