в последний раз (третий) говрю, именно так, как и написано в примере кода. то есть ВМЕСТЕ с getscriptpath
p.s. вместе с той же getscripthpath у меня есть и вполне отлично работающий пример. главное, чтобы путь и файл были корректными и РЕАЛЬНО существовали.
так что ещё раз хочу отметить абсолютно нет никакой разницы есть gescriptpath или нет в скрипте.
мне неинтересны ваши предупреждения да и в общем-то диалог с вами. судя по вашим ответам - вы не обладаете необходимой минимальной компетенцией, чтоб отвечать на вопросы пользователей по квику. Советую для начала, набраться опыта - хотя бы до уровня Михаила Булычева (это единственный человек, компетентность которого не вызывает сомнений).
поэтому, вы можете меня смело забанить на этому форуме. я от этого абсолютно ничего не потеряю.
если б всё было так просто разработчики бы не писали свой qchart.dll на чистом gdi. все эти многочисленные обёртки, да ещё и байт-код сишарпа впридачу, а если ещё умножить на то сколько это сжирает памяти и удельного быстродействия на отрисовку одного контрола - тут думаю всё понятно. при том, что мы работаем, по сути, в режиме реального времени, и то, что было "вчера" ( мгновение назад) может в корне изменить ситуацию. если непонятно о чём это я: в квике, отрисовка чартов, GUI, доступ к источнику данных, основные тела скриптов и их колбеки (каждого скрипта) - всё работает в одном потоке.
ваша задача, как разработчиков - обеспечить 100%-ную стабильность квика - дабы он при любом раскладе не зависал от скриптов. если скриптовая система ( в клуа-вской реализации) заведомо не обладает устойчивостью к действиям пользователя то, спрашивается: на хрена козе баян??
делал всё именно так, как написано в скрипте-примере.
и вообще, причём здесь, с ней или без неё? getScriptPath - одинаково доступна и в обычных скриптах и в скриптах-индикаторах. по кр. мере - так сказано в вашей документации.
я думаю, что можно было и заплатить такие деньги при условии, что вся эта кластерная и прочая маркетдельта чудо-хрень была бы действительно панацеей. Но, помимо агрессивной рекламы, я, что-то пока ещё не встречал стабильно зарабатывающих на этом, за исключением, разумеется самих программистов:))))
В этой теме буду выкладывать переходящие из версии к версии баги QUIK и QLUA. Для себя уже давно составил коллекцию уязвимостей скриптов на QLUA и скриптов QLUA-индикаторов. Для справки: QLUA-индикаторов в QUIK используется отдельная усечённая sandbox-реализация LUA VM.
Итак, вот "код", а точнее, BUG в формате OnePageLesson:
Код
--testBUG#0001
Settings=
{
Name = "test Labels",
ChartID1 = "rima",
line =
{
{
Name = "test Labels",
Color = RGB(0,0,255),
Type = TYPE_LINE,
Width = 1
}
}
}
labelparams1 = {
TEXT = "",
IMAGE_PATH = getScriptPath() .. "заведомо отсутствующий файл и путь",
ALIGNMENT = "RIGHT",
YVALUE = 0,
DATE = "19000101",
TIME = "100000",
R = 0,
G = 0,
B = 255,
TRANSPARENCY = 0,
TRANSPARENT_BACKGROUND = 0,
FONT_FACE_NAME = "Arial",
FONT_HEIGHT = 18,
HINT = ""
}
function Init()
lab1 = AddLabel(Settings.ChartID1, labelparams1)
return 1
end
function OnCalculate(index)
return nil
end
function OnDestroy()
DelAllLabels(Settings.ChartID1)
end
Действия:
при успешно загруженном квике создаю график RIM5 с идентификатором "rima"
накладываю на него этот "индикатор". Индикатор успешно наложился, что подтверждается добавлением подписи на pane чарта. (то, что сам индикатор "пустой" - в данном случае, не суть)
сохраняем настройки окон (и, соответственно индикаторов) в файл info.wnd (стандартными средствами через соответствующий пункт меню)
отключаемся от сервера и выключаем квик
пытаемся вновь запустить квик и, ... ждём. долго так ждём, потом опять ждём. а тем временем, на экране:
старина QUIK нам каГбе намекает, что ждать можно чуть меньше чем (ну вы поняли... :) )) )
-----------------------------------
Пояснения: сам файл скрипта-индикатора находится в стандартном месте, в папке LuaIndicators. -----------------------------------
Возможные причины: Индикаторная "песочница" LUA VM слабо устойчива к параметрам и их корректности в функции AddLabel. И похоже даже использование pcall - не спасает. Кроме того, перед запуском QUIK, а точнее QLUA парсит всю папку и подпапки LuaIndicators, пытаясь запустить каждый, находящийся в ней скрипт (а это уже повод для использования в вирусописательстве). -----------------------------------
Методы устранения: все, абсолютно все параметры передаваемые из пользовательских скриптов обязаны проверяться на валидность прежде чем целиком и полностью заглатывать таблицу (в данном случае). То есть, внутри AddLabel (qlua-side) сперва должна быть проверка на валидность параметров. Уверен, что она у вас итак есть. так что спишем на недочёт. Кроме того, для скриптов просто обязан быть watchdog-таймер (даже в интернет-браузерах это есть и пользователю всегда предлагается отключить тормозной скрипт) -----------------------------------
Советую обратить внимание на фразу, что даже если у нас индикатор не наложен ни на один график НО! присутствует в папке индикаторов - баг (зависание) обеспечен.
rozmin пишет: Российская компания, которая создаст современную альтернативу quik для нашего рынка - озолотится)))
проблема в том, что весь наш рынок - это рынок трёхсот эмитентов. Из них: наберётся не больше десятка действительно ликвидных. Поэтому тут "озолотиться" по определению ни у кого не получится. ни у брокеров, как покупателей торговых платформ, ни у разработчиков. Ввиду всего этого, а именно, из-за вышеуказанной микроскопичности нашего рынка с него уходят деньги (трейдеры).
хоть и не хочется это признавать но, сам терминал (quik) и технологии в него заложенные очень даже неплохой и весьма серьёзно эволюционировал. Другое дело, что все эти многочисленные "заплатки" порядком надоели за 15 лет. Просто разработчикам пора задуматься не над обеспечением поддержки старых возможностей (т.к. это существенно ограничивает потенциал продукта), а пора бы уже представить новый продукт (нефакт, что совместимый со старым) но, который не ограничен существующими рамками поддержки legacy
касательно volfix и его супер-мега-пупер чартов и прочей кластерной хрени - благодаря qlua (при всей её м-м, ... э-э... так называемой реализации в квике) и её возможности подключать "C-библиотеки" можно сделать не менее эргономичные чарты и в самом квике. просто на это уйдёт полгода.
тут принцип один: что разрешено свыше - то может (но не обязано) быть разрешено снизу. всё что в это не укладывается - является основанием для проверок всяких фсфр (не помню, как сейчас называется) и возможным отзывом лицензии.
Дмитрий пишет: Насколько я понимаю, информация в таблице "купить/продать" о возможности открытия коротких позиций относится именно к конкретному брокеру.
разумеется. и к текущим рискам по клиенту.
ещё раз, инфа поступает с биржи брокерам. модуль рисков расчитывает исходя из клиентского профиля, что ему выдать в таблице. единственное обстоятельство, которое (если оно в кои-то веки произойдёт) стоит обсуждать - это если в биржевых данных бумага НЕ маржинальная, а клиент умудрился её впарить.
то что на сайте несвоевременно, что-то обновляется говорит лишь о "лавочности" конторы и наплевательском отношении админа сайта к своим обязанностям, и, соответственно, руководства.
торговля идёт не из сайта и не по данным сайта, а из информации с биржи, далее это всё фильтруется по рискам компании и клиентам.
Дмитрий пишет: по ссылке видно, что "Открытие" разрешает всем открывать короткие позиции как минимум по 28 акциям, плюс еще одна - "Э.ОН Россия".
разрешает открывать, а модуль учёта рисков может и не разрешить. всё зависит от достаточности капитала клиента + истории маржинколлов (так у некоторых брокеров) за последние полгода.
Цитата
Дмитрий пишет: Возможно, сейчас расхождение фактических разрешений с перечисленными на сайте еще больше, так что в результате выходит 34 акции.
нет смысла сравнивать сколько там на бирже разрешено или запрещено. для вас - ваш брокер - бог и царь. сколько он сочтёт нужным инструментов - столько и предоставит. биржа даёт общие требования, а брокер уже фильтрует ситуацию по текущим рискам и клиентам.
в той ссылке, что-то не видно про линукс-терминал. сам терминал состряпать недолго даже и не являясь крупной ит-компанией с деньгами. сложнее построить действительно во всех отношениях стабильный терминал, а также, обеспечить его развитие, как успешного и долгосрочного бизнес-проекта.
я думаю, что для каждого клиента брокером включается свой профиль настройки и учёта лимитов. и уже исходя из него для разных клиентов даже одного брокера существует разное представление доступности тех или иных бумаг для шорта и лонга.
в таком случае, каким образом плагин графика (qchart.dll) узнает шаг инструмента? для графика любой инструмент - это прежде всего таблица свечек и не более. с другой стороны, можно попросить зарегистрировать пожелание на доработку этого плагина, чтоб в него передавался и учитывался шаг инструмента
Alex пишет: Так же интересен регламент обработки тикетов ? он вообще существует? или хочу отвечаю хочу молчу?
здесь нет тикетной системы, какая существует во всех крупных уважающих себя компаниях. и, соответственно, разработчики не несут никакой ответственности, что ваши пожелания вообще будут зарегистрированы и рассмотрены. прежде чем добиться регистрации пожеланий: натолкнёшься на немалый троллинг от разработчиков: "а зачем" "а почему" "не понимаю о чём вы говорите" и т. п.
история сделок - не сохраняется. она доступна только в течении одного торгового дня. однако, вы можете написать скрипт на qlua, который будет вести историю ваших сделок, либо, воспользоваться готовыми платными и бесплатными поделками примеров которых навалом в интернете.
не являясь сторонником разработчиков, вынужден признать, что их поделка под названием таблицы "Состояние счёта", пожалуй самое лучшее из их бесплатного функционала.
Michael Bulychev пишет: Либо нажать на кнопку Run и попытаться остановить скрипт из терминала. В этом случае привод так же не реагирует на действия пользователя и пишет какой-то лог в сотни мегабайт.
красный квадратик на картинке и продолжающиеся сыпаться null в combobox красноречиво каГбе намекают нам, что скрипт УЖЕ остановлен и по идее уже не должно быть никаких сотен мегабайт логописательства и выбрасывания нулевых указателей.
Michael Bulychev пишет: Либо нажать на кнопку Run и попытаться остановить скрипт из терминала.
этот случай я тоже расписал: кнопка RUN в скрипте включена далее, останавливаю скрипт из меню квика - происходит описанное выше. ----------------
Ваша задача, как разработчиков, обеспечить 100%-ную стабильность квика и тем самым 100% исключить "зависания", аварийные остановы. Вы похоже совсем не пытаетесь нас понять - наши скрипты управляют нашими, РЕАЛЬНЫМИ деньгами и пусть лучше скрипт остановится, чем квик "зависнит" из-за этого. так хоть у пользователя будет меньше времени затрачено на ьто, чтоб его "передёрнуть". В идеале, мы хотим от вас получить фреймворк в котором не надо целый день приглядывать за скриптами, а можно оставить их хоть на целый день.
я, конечно, понимаю, что многое в этом вопросе зависит и от скриптописателей но, как не трудно заметить, есть и куча "косяков" с вашей стороны. и при том, вы (арка с её technologies) абсолютно никак финансово не компенсируете нам, конечным пользователям результаты своих "огрехов".
---------------------- p.s. я больше не буду продолжать развивать эту тему бо как мне моя нервная система дороже. так что, делайте уже, что хотите. пользователи со временем, сами во всём разберуться, поймут вас и накажут тем, что просто будут закрывать счета у тех наших российских "недоброкеров", которые даже не в состоянии позволить иметь у себя СВОЙ торговый терминал. и даже привязка к аренде платформы ваших серверов ни их, ни вас не спасёт. 15 лет прошло с начала вашего проекта под названием quik. Спрашивается, где итоги? Почему платформа до сих пор не стабильна? (это риторический вопрос - ответ не обязателен и не отслеживается)
арка уже отучила читать её "справку" с её скудным описанием и кучей неточностей. кому нужна такая система, которая полностью меняет себя от версии к версии и при этом умудряется за 15 лет всё оставаться нестабильной?
прошу ЧЁТКО и ПО ПУНКТАМ расписать, что конкретно сохраняется в шаблонах. К примеру. количество панелей (pane) в чарте по-видимому не сохраняется. таким образом, имея диаграмму, скажем, с тремя вертикальными панелями и графиками - однозначно нельзя сохранить такое представление в шаблон. на основании вышеописанного, предлагаю:
зарегистрировать пожелание о том, чтоб сохранять текущее представление диаграммы ПОЛНОСТЬЮ дабы, потом при желании, можно было отразить его на любом инструменте
как написано было выше, предлагаю, ЧЁТКО и ПО ПУНКТАМ расписать, что конкретно сохраняется в шаблонах.
весьма интересно откуда у вас это имя? я его нигде не давал. и значит ли это, что и я вправе распоряжаться вашими личными данными по своему усмотрению, а также, общаться с вами по вашему личному email?.... (на этот вопрос требуется обязательный ответ)
Цитата
Michael Bulychev пишет: опишите подробно по шагам последовательность действий (можно с картинками), попытаемся воспроизвести у себя.
Михаил, специально для этого я расписал выше, как я этого добился. Честно сказать, мне уже надоел этот троллинг со стороны разработчиков, советую ещё раз пересмотреть мультфильм про страуса, зарывающего голову в песок. (без обид)