У меня Quik 7.12. Подскажите возможно ли настроить присутствующую по многих подобных приложениях возможность автопритягивание опорных точек фигур к значимым точкам котировок или локальным экстремумам? Если есть, то как настроить. Замучался уже и глаза испортил "подгонять опоры" под трендовую линию.
Борис Гудылин, ни п.1, ни п.2. Последовательное ветвление по условиям, getCandlesByIndex, SetValue и пара массивов для сохранения предыстории. Мало, 100 строк кода. Это все.
Разработчики Квик, Разумеется пользователи могут писать какой угодно бредовый код и совать его в программу. Система может ругаться какими угодно словами на такой мусор. Но допускать подвешивать кодом Quik так, что решать ситуацию приходится только сбросом в диспетчере задач - это нонсенс. Можно конечно приводить код и искать причину. Но во-первых наверняка я не первый такой и во-вторых нельзя допускать такой ситуации в принципе. Уж не знаю вопрос это или пожелание.
Обращаюсь к знатокам по вопросу, однозначного ответа на который не могу пока найти, ни в доках, ни в сети. Ясно, что индекс для OnCalculate и ds:close - это последовательность от 1 до текущего времени (назовем индекс). Для getCandlesByIndex написано, что третий параметр - это индекс свечи, начиная с 0 (назовем номер). Нет проблем когда все котировки непустые. В случае же появления пустых таймфреймов появляются ли пропуски у номера по отношению к индексу в нумерации позиций? Можно ли считать индекс и номер по сути одинаковыми и отличными только на 1?
Пожалуйста. Не судите строго новичка: Settings = { Name = "AO_AC_TEST", round = "off", Metod = "EMA", --SMA, EMA, VMA, SMMA, VMA VType = "Median", -- Open, High, Low, Close, Volume, Median, Typical, Weighted, Difference line = { { Name = "Down", Type = TYPE_TRIANGLE_DOWN, Color = RGB(255, 0, 0) }, { Name = "Up", Type = TYPE_TRIANGLE_UP, Color = RGB(0, 255, 0) } } }
function Init() func = AA() return #Settings.line end
function OnCalculate(Index) return func(Index, Settings) end
function AA() local AA_tmp={} return function (I, Fsettings, ds) local Fsettings = (Fsettings or {}) local C = C(I) or 0 if I > 40 then AA_tmp[I] = getCandlesByIndex("AO", 0, I, 1)[0].close or 0 if (AA_tmp[I-2] < AA_tmp[I-1]) and (AA_tmp[I-1] > AA_tmp[I]) and C>0 then SetValue(I-1, 1, C) elseif (AA_tmp[I-2] > AA_tmp[I-1]) and (AA_tmp[I-1] < AA_tmp[I]) and C>0 then SetValue(I-1, 2, C) end else AA_tmp[I] = getCandlesByIndex ("AO", 0, I, 1)[0].close or 0 end end end
Создал индикатор, который проставляет на графике метки в Quik. Все в порядке, когда загружаешь или обновляешь индикатор. Но почему-то метки не возникают по ходу появления новых свечей. Как-только обновляю вручную, то метки тут же возникают. Подскажите, что я не предусмотрел? Индикатор основан на получении значений от getCandlesByIndex.
Есть ли возможность получения цвета свечи с графика? getCandlesByIndex выдает только значения. Понимаю, что можно определять цвет по сравнению открытия и закрытия. Но все же, как с цветом?
Космонавт написал: Я уже давно пользуюсь функцией, которая ищет фрактал через GetCandlesByIndex. Не понятно в чём прорыв при использовании вашей функции, если я и так могу это делать.
Код
function SearchFractals ()
local bars_count = getNumCandles (fractal_name)
- - toLog(log,"SearchFractals started. Bars_count = "..bars_count)
for i=bars_count-4,0,-1 do
local candle,_,_=getCandlesByIndex(fractal_name,0,i,1)
if upFractal==0 and candle[0].high~=0 then
upFractal=candle[0].high
upFractalBar=i
--toLog(log," SearchFractals upFractal = "..upFractal.." upFractalBar = "..upFractalBar)
end
if downFractal==0 and candle[0].low~=0 then
downFractal=candle[0].low
downFractalBar=i
--toLog(log," SearchFractals downFractal = "..downFractal.." downFractalBar = "..downFractalBar)
end
if downFractal~=0 and upFractal~=0 then
--toLog(log," SearchFractals all fractals found")
return
end
end
end
Разве этот код находит фракталы? Судя по нему, он просто присваивает хаи и лои локальным переменным с шагом назад. Это не имеет отношения к локальным пикам-фракталам.
Сообщение не умещается в раскрывающемся списке на панели Quik. Ни скопировать, ни подвинуть текст не получается никак. Подскажите как прочитать сообщение полностью?
QUIK дает возможность писать программы для себя сразу на двух языках. Просмотрел форум, но не нашел сравнительного анализа. Прошу знатоков высказывать свое мнение о преимуществах и недостатках каждого.
PS: уточню задачу: имелось ввиду вычислить свечу не по абсолютному(!) значению, а относительному (типа - 95 дней назад). Ну и чтобы можно было использовать эту функцию для циклов перебора больших интервалов дат.
Задался тут вопросом выгрузки свечи по заданной дате и времени из графика котировок валюты. И столкнулся с тем, что нет функции аналога DateAdd например из Visual Studio, VBA и др.. Заносить весь календарь в свою прогу - это абсурд! Плоховато с инструментарием в QPILE... Каким может быть разумный выход в обработке дат и времени? Может есть библиотека наработок?
Подскажите, возможно ли одновременное открытие нескольких окон приложения Quik? Иначе не хватает места на одном экране для отображения всей необходимой информации и хотелось бы использовать дополнительные экраны расширения Windows.