Названия параметров метки TEXT, DATE, TIME, как и прочих, должны быть записаны в верхнем регистре. Дополнительно убедитесь, что графику, на котором необходимо создать метку, присвоен идентификатор "TEST", а значения DATE, TIME и YVALUE находятся в видимой области.
Что-то не получается у меня выводить метки в индикаторе. Сделал простой тестовый индикатор. Линии рисует, а текстовую метку не выводит. Что я делаю не так?
Settings = {} Settings.Name = "PercentLevel"
label={ text = "Метка 333", FONT_HEIGHT = 25, YVALUE = 301, date = "20240305", time = "170000" }
function Init () return 2 end
function OnCalculate(index) AddLabel("TEST", label) return 300, 298 end
Anatolii написал: Используйте индикатор с TYPE_HISTOGRAM в Settings.line Пример: if math.fmod(index, 1000)==0 then SetValue(index, 1, C(index)) end Рисует вертикальные линии до цены в каждой 1000-й точке. Палка отображается только в диапазоне свечей окна (до нуля не тянется и масштаб графика не ломает)
Если подразумеваете в виду автоматическую разметку, то такой возможности нет.
Наверное стоит уточнить вопрос, можно ли написать на LUA индикатор, который будет рисовать границы торговых сессий? Не нашел, как рисовать вертикальные линии.
Подскажите, а я правильно понимаю, что нельзя стандартными средствами сделать индикатор, который будет рисовать разделение сессий вертикальной линией?А еще лучше залитыми областями. Например, утро желтый прозрачный, день розовый прозрачный, а вечерка голубой прозрачный.
Использую Ваш скрипт получения Греков. Сделал из него функцию и встроил к себе. Получилось не плохо. Но сейчас появилась задача получать греки не по всем опционами серии, а по конкретным. Скрэт это прекрасно умеет, но как правильно его использовать, если этот список меняется. Например, я хочу выводит только те опционы с греками по которым у меня открыта позиция. Но позицию я могу менять. Покупать опционы, продавать и соответственно список будет меняться динамически. И в целом понятно как это сделать, но смущает функция CreateDataSource. У меня открыты потоки на определённые инструменты. И мне нужно как-то на старые закрыть , а на новые открыть. Или закрывать ничего не нужно, просто отрывать на новые? В общем, как-то я подзапутался....
Nikolay написал: Очень советую не полагаться на отладчик, а немного пересмотреть подход к написанию скриптов. В частности, покрывайте тестами свой код, проверяйте входящие переменные по типу и значению. Критически важные участки, оборачивайт в pcall, чтобы обработать исключение. Вы же пишете скрипт на клиенте, а значит Вы должны работать в ситуации когда в любой момент времение у Вас обрывается связь с непредсказуемым временем восстановления. Также Вам никто не гарантирует время ответа от сервера на ваши запросы и команды. А значит Вам все равно надо проерять все, что Вы ожидаете.
А дебаг, Вы же, скорее всего, будете делать лог файл. Так отладочную информацию можно и нужно выодить в лог по уровню дебаг. Тогда, включая режим отладки, увидите сообщения отладки, а в простом режиме будет просто информационная часть лога. Тем более, что если Вы передаете скрипт заказчику, то о возможных ошибках Вы только из лога и узнаете.
Вы все правильно пишите. Но иногда отладчик очень полезен.
Появилось желание пересчитать греки с учетом свои нужд. Полез в тело скрипта и появились вопросы. Подскажите, пожалуйста, что это за функция? Что за константы в ней использованы? Можно увидеть формулу "на бумаге" Заранее спасибо!
Код
function N(x) --Нормальное среднее
if (x > 10) then
return 1
elseif (x < -10) then
return 0
else
local t = 1 / (1 + 0.2316419 * math.abs(x))
local p = 0.3989423 * math.exp(-0.5 * x * x) * t * ((((1.330274 * t - 1.821256) * t + 1.781478) * t - 0.3565638) * t + 0.3193815)
if x > 0 then
p=1-p
end
return p
end
end
Павел Bosco написал: если выбрать скрипт в списке, то в окошке под ним будет написана ошибка, по которой он отвалился. с номером строки. желательно обрабатывать OnConnected / OnDisconnected, проставляя переменную и анализировать её в скрипте. тогда проблемы быть не должно. некоторые функции работают и без сервера, а некоторые дают разного рода некорректные данные.
Спасибо. не обратил на это внимание. Была не определена переменная обращение к которой было только при отсутствии связи.
Подскажите, почему скрипт QLUA переходит в неактивное состояние после ночи? Ночью QUIK отваливается, т.к. брокер гасит сервер, утром крик снова подключается, а вот скрипт QLUA остается не активным.