Nikolay (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23
CreateDataSource, не грузятся данные при формир. через CreateDataSource
 
Добрый день.

Подниму тему. Тоже столкнулся с пустым набром данных, если не открыт график.
Вызов SetEmptyCallback() и задержка не помогают.

Правда иногда запущу скрипт - данные появились. В другой раз нет. Закономерности нет.

Пробовал увеличить время ожидания sleep до 1000 - все одно не помогает.

Вызов данных типовой:
           
Код
DS = CreateDataSource(CLASS_CODE, SEC_CODE, INTERVAL)
if DS:Size() == 0 then 
  DS:SetEmptyCallback()
  sleep(200)
end
Отметки на графике QUIK средствами QLUA
 
Цитата
Sergey Gorokhov написал:
Nikolay  ,

Падения не должно происходить.
приведите полный код скрипта индикатора и сообщите версию терминала QUIK
Версия 7.6.1.1 (Сбербанк выше не дает).

Собственно весь код работы с метками такой и есть
Код
function OnCalculate(index)

   if index == 1 and Settings.ChartId ~= '' then
      DelAllLabels(Settings.ChartId)
      AddedLabels = {}
   end
    
   if index == 1 then
      DSInfo = getDataSourceInfo()        
      min_price_step = getParamEx(DSInfo.class_code, DSInfo.sec_code, "SEC_PRICE_STEP").param_value
   end
   
   return myFunc(index, Settings, 37)
end
Внутри функции расчета данных выводится (обновляется) метка
Код
if AddedLabels[1] ~= nil then
   SetLabelParams(Settings.ChartId, AddedLabels[1], label)
else
   local LabelID = AddLabel(Settings.ChartId, label)
               
   if LabelID ~=nil and LabelID ~= -1 then
      AddedLabels[1] = LabelID
   end   
end
Код
if AddedLabels[2] ~= nil then
   SetLabelParams(Settings.ChartId, AddedLabels[2], label)
else
   local LabelID = AddLabel(Settings.ChartId, label)
               
   if LabelID ~=nil and LabelID ~= -1 then
      AddedLabels[2] = LabelID
   end   
end

Падение происходит не каждый раз. Иногда на третий раз применения параметров. Иногда на первый.
Отметки на графике QUIK средствами QLUA
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Вы можете выводить текст через механизм меток.
По другому возможности нет.

Хорошо. Вывел метки индикатором.

Но у меня падает Квик при изменении настроек индикатора. При смене инструмента в привязанном окне падения не происходит, а при нажатии ОК в окне редактрирования, да.


Возникает вопрос - какой метод удаления меток правильный.


У меня падение происходит после добавления такого кода в OnCalculate:

Код
if index == 1 and Settings.ChartId ~= '' then
      DelAllLabels(Settings.ChartId)
      AddedLabels = {}
   end
Также добавлена процедура:
Код
function OnDestroy()
   if Settings.ChartId ~= '' then
      DelAllLabels(Settings.ChartId)
      AddedLabels = {}
   end
end
Отметки на графике QUIK средствами QLUA
 
Подниму тему.

А такое банальное действо как вывод текста в рамках индикатора недоступно?
Простой пример - текущий ATR. Я не хочу выводить линию или что-то еще. Нужно вывести просто текст.

Добавление меткаи есть в скрипте, а в индикаторе? Так много информации надо выводить в рамках индикаора, где нет проблемы идентификации окна.
Я в WLab писал индиктор зиг-заг с выводом процентов каждого движения и поиска моделей. Пости все было текстом в виде меток над свечками. Линий минимум.

Неужели нет этого?  
Возвращаемые данные для отрисовки индикатора
 
Добрый день.

Пишется индикатор с динамическим количеством линий.
Можно ли вместо данных типа ruturn out1, out2, out3 вернуть массив {}. Соответственно, данные линий - это индексные данные массива.

Уж больно некрасиво приходится делать большое количество переменных с запасом.

Есть еще вариант динамического описания кода. Есть ли в интерпретаторе qlua execute("Текст выполняемого кода")?
Открытие заявки
 
Если уж пошла речь про заявки, то, как мне кажется, самая важная функция отсутствует - ввод стопа одновременно с самой заявкой.
В окне ввода заявки просто добавить раздел стопа. При торговле фьючерсами и другими высокорисковыми инструментами можно попасть на ситуации когда просто не успевашеь ввести стоп. Карман транзакций - это, конечно, хорошо, но почему же не сделать удобно. Как я понимаю, эту возможность просят столько людей и столько времени, что становится несколько неудобно за разработчиков. Я понимаю что монопольное положение на рынке позволяет, но все же...
Вилы Эндрюса, уровни Фибоначчи, веер Ганна.
 
Добрый день.

Очень бы хотелось иметь достаточной простой интрумент как вилы Эндрюса.
Также очень хочется существующие уровни Фибоначчи строить не только горизонтально, но и под любым углом. Тем самым получая наклонные уровни.
А уж для полноты картины - веер Ганна был бы очень кстати.

Спасибо.
INDICATORS.ZIP
 
Цитата
Николай Камынин написал:
Быстрее будет, если вместо поиска свечки назад, просто запоминать индекс последней существующей свечки.
При отсутствии свечки брать сохраненный индекс.
Возможно, но не всегда надо именно прошлую свечку. Часто надо -3, -2. Так что просто запоминать будет та еще конструкция. А эта функция универсальна, получив индекс бери любое значение свечи.

Хотелось бы иметь "железную" функцию получения ближайшей существующей свечи к идексу вниз и вверх.
INDICATORS.ZIP
 
Ме помогли данные конструкции.

Нет свечки, тогда значению массива текущей даем предудыщее значение.
Код
if not CandleExist(index) then
CC[index] = CC[index-1] 
return nil
end

Если надо получить значение пршлой свечки, то сначала находим ближайшую существующую прошлую, через эту функцию
Код
function FindExistCandle(I)
   local out = I
   
   while not CandleExist(out) do
   out = out -1
   end   
   
   return out
 
end
Код
local previous = index-1
      
if not CandleExist(previous) then
   previous = FindExistCandle(previous)
end
      
if C(index) > C(previous) then
Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23
Наверх