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

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

Страницы: 1
Индикаторы. OnCalculate. Количество полных проходов по всем свечам
 
Есть ли вариант сохранения состояния расчета между вызовами OnCalculate?

Вчера пытался в таблицу Settings  добавить свою таблицу рассчитанных при первом проходе значений, чтобы при следующих просто из нее вытащить. Знаю, что в руководстве написано "Типы пользовательских параметров: числа и строки"
До перезапуска терминала (накидал скрипт, пока терминал работал), вроде, получилось: значения и сохранялись, и выбирались.
Но при последующем запуске терминала выводилась ошибка об отсутствии моей таблицы.
Хотел сделать через замыкание, но, опять же, где хранить этот объект?
Индикаторы. OnCalculate. Количество полных проходов по всем свечам
 
Доброго времени суток.

Вот код примитивного индикатора.
Код
name="light"

Settings = {}
Settings.Name = name;
Settings.line = {};
Settings.step = 0
Settings.secId = ''
Settings.size = 0

function OnCalculate(index)
  
  local _ds = nil
  
  if index == 1 then
    
    _ds = getDataSourceInfo()
    Settings.secId = _ds.sec_code
    
    Settings.size = getNumCandles(Settings.secId)    
    Settings.step = Settings.step + 1
    
  end

  PrintDbgStr('OnCalculate. Settings.secId '..Settings.secId..' Index '..index..' . Step : '..Settings.step..' size : '..Settings.size)
  
  return 0
  
end
--------
function Init()
  
  local t = Settings.line;
  
  t[#t+1] = { Name = 'zero', Color = RGB(0,128,255), Type = 0, Width = 1}
  
  return #t
  
end
Вопрос такой:

Если на график предварительно добавить этот индикатор, то при запуске терминала функция OnCalculate трижды пробегает по всем свечам.
Если при запущенном терминале добавить этот индикатор на график, функция OnCalculate пробегает по всем свечам дважды.

Функция OnInit всегда запускается один раз.

Это баг, фича или где-то настройки какие-то есть?

Какие возможны варианты для расчета показателя только один раз?

С уважением, Илья
Индикаторы. Программное изменение Settings для инициирования OnChangeSettings
 
Хорошо, с передачей данных между скриптами разобрались.
Остается вопрос оптимизации частоты этой передачи.
Грубо говоря, в основном скрипте расчет происходит после совершения сделки. Частота расчета значительно ниже частоты срабатывания функции OnCalculate.
Индикаторы. Программное изменение Settings для инициирования OnChangeSettings
 
1. Основной скрипт и скрипты индикаторов работают внутри одного экземпляра Quik (на одном компьютере)
2. Разработка на отличном от Lua (Qlua) языке не предполагается. Все в рамках возможностей QUIK
Индикаторы. Программное изменение Settings для инициирования OnChangeSettings
 
Добрый день.

Есть основной скрипт, в котором в функции main идет расчет (серверная часть).
Необходимо передать его результат в индикатор (клиентская часть) для отображения на графике, но только в том случае, если значение изменилось.

Сейчас данные для отображения в индикатор передаются при помощи стороннего модуля socket при срабатывании функции OnCalculate в индикаторе. То есть, чтобы отобразить новые данные, индикатор должен обратиться к основному скрипту, и уже тогда основной скрипт отправляет ему данные.
Но так как инструментов торговли пара десятков и для некоторых функция OnCalculate может очень часто срабатывать из-за интенсивности торгов, хотелось бы оптимизировать этот момент.

Из документации вычитал, что в индикаторе всего три функции обратного вызова: OnCalculate, OnChangeSettings и OnDestroy.

Посоветуйте, пожалуйста, как можно оптимизировать данный алгоритм:

1. передачу данных из основного скрипта в скрипт индикатора (без использования файлов)
2. Инициировать передачу данных в индикатор со стороны основного скрипта (уменьшить частоту обращения индикатора к основному скрипту)
3. Есть ли возможность из основного скрипта инициировать событие для функции OnChangeSettings ?
Неполные лоты валюта. Коды класса и инструментов
 
Всем доброго дня.

У меня брокер ВТБ. Спросил у их техподдержки, но они не смогли (или не захотели) ответить.

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

Буду благодарен за любую помощь.
Описание статусов TRADESTATUS
 
Спасибо за оперативный ответ.
А что такое "ЦАЗ"? В инете никак найти не могу.
Описание статусов TRADESTATUS
 
Всем доброго времени суток.

При запросе информации параметра "TRADESTATUS" по акции при помощи вызова функции "getParamEx" можно получить несколько числовых значений.
Например: 0 - сессия закрыта, 1 - сессия доступна для торгов. А вот что означают "4","5" ? Причем отловил такую последовательность смены статусов - 1,0,4,5,0
Что можно делать при статусах 4,5 ? и есть ли статусы 2,3 ?
Страницы: 1
Наверх