Какой индикатор нужен для календарного спреда фьючерсов
Открывая позицию в дальнем и ближнем фьючерсах на один и тот же актив неплохо иметь перед глазами график их разности. И 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()
AlexGood, любая позиция на бирже выигрышна, если только ты угадал будущий ход рынка. Ни один индикатор не указывает будущего. Этот индикатор избавляет тебя от ручного вычитания и индицирует ход спреда.
Rostislav Kudryashov, подскажите как запустить, версия квика 8.7.0.6 сохраняю в нотепаде с расширением lua и кдладу в luaindicators.В индикаторах не находит.
bbbugai, 12:46 Смарт-лаб при вставке цитаты со скриптом вероломно заменил два дефиса "--" на «нечто своё» ("—") и заменил двойные кавычки " на парные угловые (« и »). И две точки ".." одним символом троеточия "…".
Попробуй исправить у себя. С-Л уже не даёт исправить в исходном сообщении.
Квик не «видит» скриптов с ошибками.
Большинство из местных уже нету кого наркота погубила да и перестрелки постоянные ПОМНИМ никогда НЕ ЗАБУДим бизнесу помогали помню платили взносы братьям нас никто не трогал все можно было решить и до...
Денис Сёмочкин, И насчёт Винокурова ты глупость написал. Если бы он хотел скупить акции Магнита, непонятно зачем ему это, но допустим. Он бы наоборот отменил дивиденды, акции бы упали, взял бы кред...
Лютый Комерсант, Сургут имеет валюту на которую ничего нельзя уже купить за рубежом, то есть получается эти уникумы собирали все эти годы деньги, а сейчас всю эту кучу бабла отрезали от внешних рын...
Индекс Мосбиржи 4000, Сбербанк 370 - 400 рублей Вырисовываются 2 сценария развития по Индексу Мосбиржи и Сбербанку.
1. При позитивном сценарии:
По Индексу Мосбиржи картинка вырисовывается пр...
Попробуй исправить у себя. С-Л уже не даёт исправить в исходном сообщении.
Квик не «видит» скриптов с ошибками.