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

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

Страницы: 1 2 3 4 След.
Скрипт прекращает работу, а не должен, Скрипт прекращает работу по непонятной причине, как ее выявить?
 
Давно использую скрипт, который работает без ограничения по времени (ночью комп не выключается, утром он обновляет настройки и продолжает работу - очень удобно). В теле main он "бегает" по циклу с определенной паузой.
В последнее время он стал самостоятельно спонтанно выключаться по непонятной причине. При этом логи показывают что функция OnStop не запускается, также в окне "Доступные скрипты" нет указания на какую либо ошибку работы скрипта. Соответствующее окно сообщений пусто. Единственная обнаруженная закономерность - работа прекращается после успешного выполнения транзакции по удалению заявки... (это частое действие и в большинстве случаев оно завершается без проблем...)
Как в такой ситуации определить причину неожиданной остановки скрипта?
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Anton написал:
Цитата
Иван Ру написал:
рекомендации
Выше писал единственный, по-моему, более-менее рабочий вариант: открыть ТВС со ВСЕМИ инструментами и засунуть ее куда-нибудь на дальнюю вкладку навечно. Из столбцов можно один какой-нибудь выбрать, значения не имеет. Правда, с этим тоже были какие-то глюки, если другие ТВС открывать-закрывать
Вроде такой вариант не работает. Полагаю с точки зрения потребления ресурсов компа это также не самое удачное решение.
Попробовал удалить единственный тиковый график, пока, вроде все работает нормально, возможно дело именно в нем.  
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Anton написал:
Цитата
Иван Ру написал:
Тиковые графики работают корректно, у меня одно окно привязанное к таблице текущих торгов, при переключении между инструментами данные перегружаются.
Вот этот момент раньше не был озвучен и, сдается мне, собака здесь и порылась. Если так, то когда
Цитата
устанавливается фильтр с экспортом данных по одному инструменту (инструмент может быть разный)
, этот "разный" инструмент должен быть как раз тот, на котором стоит фокус в таблице торгов (и, соответственно, открыт тиковый график).
Возможно, перепроверю. Будут ли какие-то рекомендации по исправлению проблемы? В любом случае поведение Квика странно.  
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Andrey Bezrukov написал:
Здравствуйте, Иван Ру.

Правильно понимаем, что Ваше затруднение по-прежнему актуально?
Если так - просьба уточнить, независимо от Ваших наблюдений за фильтром в пункте меню Система/Заказ данных/Поток обезличенных сделок - при работе с таблицей обезличенных сделок и тиковыми графиками - получаете ли Вы данные по обезличенным сделкам для наполнения таблица и построения графиков?
Или напротив - в какой-то момент замечаете, что данные перестают поступать - и Вы проверяете настройки заказа данных по обезличенным сделкам, где обнаруживаете сброшенные фильтры?

Также просьба уточнить, до и после (произвольного) отключения заказа данных по обезличенным сделкам - отмечаете ли Вы какие-либо конкретные действия, которые стабильно приводят к описанному эффекту? - какие? Имеют ли место при этом переподключения к серверу/перезапуск терминала/загрузка настроек из файла?

Кроме того - Вы упомянули, что используете некие lua-скрипты. Просьба сообщить, если работать без них - воспроизводится ли описанный эффект?
Здравствуйте! Да, проблема наблюдается постоянно. Пробовал сбрасывать галочку "Фильтр" - выбора инструментов, также добавлять все инструменты с использованием фильтра. Приблизительно через 1-3 часа настройки сбрасываются, устанавливается фильтр с экспортом данных по одному инструменту (инструмент может быть разный). Тиковые графики работают корректно, у меня одно окно привязанное к таблице текущих торгов, при переключении между инструментами данные перегружаются.
Я замечаю проблему по статистике которую выводят роботы (они у меня фиксируют количество колбэков в OnAllTrade и выводят статистику, если цифра не растет - очевидно, проблема). Захожу в настройки и вижу что фильтр сброшен.
Нет, я не вижу каких-либо действий которые приводят к проблеме, кроме того, что у меня функционируют роботы, которые регулярно запрашивают данные по стаканам порядка 10-15 инструментов.
Без скриптов я не работаю (торгую только ими), но попробую провести такую верификацию.  
Сохранение индикаторов в шаблонах графиков, Нет возможности сохранять подборки индикаторов и применять их к другим графикам.
 
Цитата
Денис написал:
А если использовать нижеследующий алгоритм:
1.Выбираем нужный график
2.Нажимаем Ctr+N
3.Имеем два  идентичных графика .
4.Правой кнопкой мыши по графику, выбираем параметры диаграммы.
5. Нажимаем заменить инструмент
6.Выбираем нужный инструмент.
7.Сохраняем.
8.Имеем две одинаковые диаграммы с разными инструментами.
9. При желании переносим график на другую вкладку.

То тогда пусть хотя-бы меняет автоматически заголовк окна на новое название инструмента.

А вообще моя мечта, чтоб двойным кликом в окне
Можно, но так 9 действий, не считая переноса окна, а в нормальном исполнении - одно. Если надо много окон создать - проблема.  
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Старатель написал:
Под импортом я подразумеваю загрузку настроек из wnd-файла вручную.
Да, я так и понял. Просто, насколько я понимаю, если бы дело было в wnd файле, проблема проявлялся бы после перезапуска Квик, но никак не в процессе его работы, - а именно так наблюдается у меня.  
Отправка транзакции в сегменте фондового рынка (акции) - брокеры Финам / Сбербанк, какой формат и где брать код клиента?
 
Цитата
Nikolay написал:
Обычно для фондовой секции требуется добавить символ "/", как разделитель. Плюс, часто брокеры требуют наличие "/" в поле код клеинта.Получается два "/".

Формат такой: client_code/my_comment

При этом число символов ограничено, поэтому после // особо не разгуляешься.
Спасибо, в основном разобрался! СДелал это следующим образом: открыл специальное окно - tri файл, добавил туда заявку отправленную в ручном режиме, проверил форматы полей и код клиента, фирму и т.п.
Пока остается вопрос как делать заявки с переносом на следующий день (дни)
Отправка транзакции в сегменте фондового рынка (акции) - брокеры Финам / Сбербанк, какой формат и где брать код клиента?
 
На срочном рынке (фьючи) все работает, а вот отправку транзакции на фондовом рынке никак не могу настроить.
Кому не жалко - покажите фрагмент кода (желательно, отправка с переносом на следующие сутки) и как должен выглядеть код-клиента.
В поддержку финама не дозвониться, код для срочного рынка озвученный сбером никак не подходит... ((

Сам я пользуюсь такими вариациями:
-- Задаем базовые параметры ордера
["CLASSCODE"] = CLASS_CODE ,
["Инструмент"] = SEC_CODE,
["ACTION"] = "Ввод заявки",
["Торговый счет"] = accounForSection,
["Тип"]         = "Лимитированная",
["Комментарий"]         = RoboName,
["К/П"] = tradeDir,
["Количество"] = tostring(NumberOfLots),
["Условие исполнения"] = "Поставить в очередь",
["Переносить заявку"] = "Да",
["Цена"] = tostring(CORRECT_PRICE),
["TRANS_ID"] = "1" ,
["Дата экспирации"] = expDate

 }
else
-- Выставляем ордер без переноса через клиринги
t = {
["CLASSCODE"] = CLASS_CODE , --заявки выставляются только на рынке theClass
["SECCODE"] = SEC_CODE,
["ACTION"] = "NEW_ORDER",
["ACCOUNT"] = accounForSection, --задано в начале функции по умолчанию
["CLIENT_CODE"] = accounForSection, --задано в начале функции по умолчанию !!! раньше было roboNameWithSufix
["COMMENT"] = roboName, --задано в начале функции по умолчанию
["TYPE"]         = "L", -- лимитированные заявки
["OPERATION"] = dir, -- направление продажи ('B' или 'S')
["PRICE"] = tostring(CORRECT_PRICE),
["QUANTITY"] = tostring(NumberOfLots),
["Move order"] = "No" ,
["EXECUTION_CONDITION"] = execCond,
["TRANS_ID"] = tostring(1234234)
}
Мониторинг работы скриптов с помощью телефона, Технология удаленного контроля алгоритмической торговли
 
Цитата
Владимир написал:
VNC
Воот, такое ближе к телу. Хотя, признаться, у этой техники я вижу слабое место -- одна из ключевых проблем, отключение ПК из-за выключения света на длительный срок, или краш Windows. Такие проблемы данная технология не позволит отследить.
А что за функционал для отправки смс?
Мониторинг работы скриптов с помощью телефона, Технология удаленного контроля алгоритмической торговли
 
Цитата
s_mike@rambler.ru написал:
Цитата
Иван Ру написал:
 
Цитата
Kolossi  написал:
Почему-то у меня все просто, наверное что-то не так делаю )

Робот сваливает логи в заданную папку, а Automator отправляет их мне по e-mail по расписанию.
Сообщения, которые кладутся в аварийную папку, Automator отправляет немедленно.
 В таком случае надо регулярно смотреть почту, тут идея немного другая - программа читает лог автоматически и анализирует его, информируя (включая звуковой сигнал) при необходимости. В общем - дополнительная автоматизация процесса и страховка когда Вы на отдыхе.  
настройте телефон так, чтобы он выдавал уведомление со звуком при получении почты. Стардартная функция того же андроида или любых умных часов.
Зачем? Это будет просто регулярное дрыньканье. Информирование нужно именно в случае наличия проблемы (сообщения нет, или его содержание указывает на появление проблемы).  
Мониторинг работы скриптов с помощью телефона, Технология удаленного контроля алгоритмической торговли
 
Цитата
Kolossi написал:
Почему-то у меня все просто, наверное что-то не так делаю )

Робот сваливает логи в заданную папку, а Automator отправляет их мне по e-mail по расписанию.
Сообщения, которые кладутся в аварийную папку, Automator отправляет немедленно.
В таком случае надо регулярно смотреть почту, тут идея немного другая - программа читает лог автоматически и анализирует его, информируя (включая звуковой сигнал) при необходимости. В общем - дополнительная автоматизация процесса и страховка когда Вы на отдыхе.  
Мониторинг работы скриптов с помощью телефона, Технология удаленного контроля алгоритмической торговли
 
Цитата
Anton написал:
Цитата
Иван Ру написал:
Пришла в голову простая схема
Что-то она не очень простая. Я б завел дешманский хостинг, поставил трехстрочный пхп, который проверяет юзер-агент post или даже get запроса и при его правильности (UUID например или хэш какой-нибудь) пишет тело запроса в файл. А другой примитивный пхп этот файл отдает на правильно сформированный запрос, а на неправильно сформированный не отдает ничего или, если не лень, какую-нибудь заглушку, бесполезный* лендинг, чтобы не будоражить кулхацкеров. И смотреть файл можно откуда угодно браузером или примитивной прогой.

* На практике у меня подобная штуковина (не для квика) на вполне себе полезном сайте стоит, для всех сайт как сайт, а для своего юзер-агента еще и апи.

На вопросы:
1. Путем поглядывания на монитор периодически.
2. Не знаю. Я б вообще поостерегся таких конфигураций, дыряво может получиться.
По п.2. - по-сути нужен доступ к одному файлу в отдельной папке и только на чтение, не вижу ничего особо страшного
Мониторинг работы скриптов с помощью телефона, Технология удаленного контроля алгоритмической торговли
 
Мониторинг работы скрипта - полагаю сверхактуальная задача для большинства поклонников алгоритмической торговли. Особо она важна в тех случаях, когда используются лимитные заявки.
Упал скрипт, упал квик, упал комп, нет соединения... - все эти события могут привести к серьезным проблемам...
Пришла в голову простая схема, как этот мониторинг может осуществляться: скрипт регулярно, скажем с периодичностью в 1-10 секунд, записывает в специальный файл время и статус / результаты работы, например, наличие соединения, величину вариационной маржи, или количество сделок по счету. На мобильном телефоне используется программа, которая регулярно считывает содержимое файла и сигнализирует пользователю (звуковой сигнал, будильник и т.п.), если время значительно отличается от текущего (что-то "упало"), или же статус / результат торговли не отвечает заданным критериям.
Вопрос форумчанам:
1. Как мониторите состояние скриптов Вы? Что думаете по-поводу такой схемы?
2. Знаете ли программу для Андроид, имеющую подобный функционал для удаленного мониторинга ПК, чтения логов и оповещений?
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Старатель написал:
Похоже, при импорте настроек из *.wnd сбрасываются настройки заказа обезличенных сделок.
Нет, это происходит в процессе работы Quik, а не в момент ее запуска.  
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Anton написал:
Поэкспериментировал с тиковыми графиками. Адъ. Единственное "пожелание по развитию квика", которое тут все должны единогласно выразить, это убрать фильтры ТВС. Все остальное только усилит наши страдания. Тиковые графики  тоже ковыряют фильтры .

Закрываем ТВС, сбрасываем все фильтры, очищаем alltrade.dat. Коннектимся к брокеру. Фильтров нет, таблиц нет, графиков нет, ничего не едет, красота. Открываем один тиковый график RIM0 - ставится фильтр по этому интрументу, заказывается ТВС (именно один RIM0, см. ниже как узнал). График плавненько прирастает. Открываем еще один тиковый график RIU0. Добавляется фильтр по второму инструменту и заказывается RIU0, при этом первый график останавливается и стоит, пока второй не дорастет до того же времени, потом оба двигаются дальше синхронно. Можно погадать, чего он стоит-то, но не будем. Лезем в фильтры и ставим все доступное. Опаньки, поехала вся ТВС. Кто ее заказывал? У нас же только два графика открыты? Ладно, ждем, пока доедет вся. Закрываем первый график - фильтр по нему  остается . Закрываем второй график -  все фильтры , в том числе поставленные вручную, сбрасываются. Открываем ТВС по всему доступному. Квик долго жужжит вентилятором (ну почти как при массовой подписке из луа), потом успокаивается и показывает нам ТВС, там все ок. Чего он жужжал? А он, ребятки,  сортировал ТВС в окне . У нас же сперва один инструмент приехал, потом другой, потом все остальные, а в табличке нам все как положено показали. Да, я в курсе, тысячу раз сказано, что квик ничего не сортирует. Это правда, в alltrade.dat оно как приехало, так и лежит. Сортирует  таблица,  ну окно то есть. Как увидеть, как оно в alltrade.dat лежит? А из луа экспортнуть, оно как раз в том порядке и сохранится, сначала (почти) весь RIM0, потом в него вклиниваются записи RIU0, потом гуртом все остальные, а уж дальше как обычно, остатки RIM0 и RIU0 вперемешку с прочими.

Короче вывод - в топку фильтры ТВС. Чем быстрее тем лучше. И всем будет счастье.
Признаться я так и не понял, какой вывод для моей ситуации - вручную поменять  SPBFUT=ALL ?
Тиковые графики у меня есть, пару штук...
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
CreateDataSource нет, но есть многократный вызов Subscribe_Level_II_Quotes(--).
Раньше (до 8ой точно) тот же скрипт работал корректно.
В настроечном файле отображается так как и в квике текущие настройки - всего один инструмент в секции фьючей, хотя вот эта строка меня смущает "req-all-trades-from-curr-moment=0":
[ALL_TRADES_DATA]
EQBR=LKOH, MSNG, RTKM, RTKMP
EQNE=
TQBR=
SPBFUT=BRK0
req-all-trades-from-curr-moment=0
SPBXM=
CETS=
CROSSRATE=
SPBBND=
EQOB=
EQEO=
EQDB=
SMAL=
INDX=
EQRP_INFO=
TQDE=
TQOB=
TQIF=
TQTF=
TQOD=
INDXC=
RTSIDX=
USDRUB=
TQTD=
TQCB=
TQTE=
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Цитата
Anton написал:
Думается, важная деталь упущена: между
Цитата
выбираю все доступные инструменты
и
Цитата
выбранные инструменты вновь переходят в недобавленные
либо закрывалась ТВС, либо завершался скрипт, подписывающийся на тиковые данные. Если так,  официальный ответ уже был .
Ни того ни другого не происходит. Функционирует несколько квиков, везде приблизительно одна и та же ситуация.  
Проблемы с потоком обезличенных сделок, "Обнуляется" список выбранных инструментов
 
Использую квик 8.2.13. брокер Финам
Для торговли в Lua использую поток обезличенных сделок по классу FORTS,
Использую меню Система / Заказ данных / Поток обезличенных сделок и добавляю все инструменты из этого класса в число выбранных, по которым должны импортироваться обезличенные сделки. Однако через короткий промежуток времени (минуты, часы) импорт соответствующих данных прекращается, если зайти в упомянутое выше меню, видно, что там ничего не выбрано или выбран лишь один инструмент, сейчас это ближний фьючерс на нефть).
Что за чудеса?
Обработка ошибок - открыт ли файл., Обработка ошибок - открыт ли файл.
 
При попытке логгирования изредка появляется ошибка доступа к открытому текстовому файлу: attempt toi use closed file.
Как корректно обработать эту ошибку, чтобы она не приводила к остановке работы скрипта? Как проверить открыт ли файл или нет, перед попыткой записи?
Поток обезличенных сделок, Прекращается трансляция обезличенных сделок при стабильно работающем quik (выбранные инструменты вновь становятся неактивными)
 
Используя меню Система-Заказ данных - Поток обезличенных сделок - выбираю все доступные инструменты по классу "ФОРТС фьючерсы" (Добавить все - Сохранить). Однако, по прошествию некоторого времени вижу, что выбранные инструменты вновь переходят в недобавленные - надо повторять операцию по новой. Что это такое? Пытался ставить галку "Получать информацию по всем обезличенным сделкам с текущего момента" - не помогает...
Библиотека w32, аналог под 64 битную версию
 
Цитата
s_mike@rambler.ru написал:
Раз все так плохо, можно взять мою библиотеку bot4sale64 например в  этом  архиве


require "bot4sale64"
result=bot4sale64.PlaySound(sound_file)
// Returns TRUE if successful or FALSE otherwise
Спасибо, все работает! А какой еще функционал библиотеки можно использовать? Нигде не нашел описания...
Библиотека w32, аналог под 64 битную версию
 
Использовал библиотеку w32 для звуковых оповещений в Квик. Однако, с обновлением до 64 битной версии 8 она перестала работать.
Есть ли аналог?
Проблемы после перехода на 64 бит (Финам), Обновил квик от Финам до 64-битной версии, возникли проблемы с работой скриптов
 
извиняюсь, картинка не вставилась, ошибка: "bad argument #3 to match (number expected got string")
Проблемы после перехода на 64 бит (Финам), Обновил квик от Финам до 64-битной версии, возникли проблемы с работой скриптов
 
Нет, так не получается, выдает ошибку в модифицированной строке

[img]data:image/png;base64,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[/img]
Проблемы после перехода на 64 бит (Финам), Обновил квик от Финам до 64-битной версии, возникли проблемы с работой скриптов
 
На днях обновил Quik который использую при работе на Финам до версии 8.02, 64-битной вместо старой 32-битной.
Скрипты перестали работать, при этом обнаружил две проблемы.
1. Очевидная - скрипт выдает ошибку при попытке загрузки или использования библиотеки w32, которую я применяю для озвучки разных событий.
Кто-либо знает о 64-битной версии библиотеки которую можно использовать взамен прежней?

2. Перестал работать следующий код:
datetime = {}
datetime.month, datetime.day, datetime.year = string.match(os.date(),"(%d*).(%d*).(%d*)")
соответствующие значения времени оказываются пустыми = nil

Необновленные квики работают корректно...

Кто-то сталкивался / решил подобные проблемы?
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
Цитата
vgi написал:
isConnected
Спасибо. В принципе я так уже и сделал.
Функция вызывается из нескольких мест, в примере видно только одно, в частности она вызывается при смене даты. Рекурсию надо убрать конечно и в принципе нигде ее не допускать, в данном исполнении она действительно может превратиться в бесконечный цикл с запуском бесконечного количества экземпляров функции.  
Время окончания вечернего клиринга и начала вечерней сессии, getParamEx возвращает некорректные значения.
 
Цитата
Sergey Gorokhov написал:
Иван Ру,
Здравствуйте,
А визуально значение в таблице торгов изменилось?
Если нет, то значит изменение не попало на сервер брокера и разбираться надо брокеру с биржей.
Перепроверил. Сегодня удлиненный клиринг. В таблице "Состояние счета" можно видеть верные значения, функция getParamEx также возвращает верные значения.
Возможно это действительно проблема брокера. Она также наблюдалась вчера.  
Время окончания вечернего клиринга и начала вечерней сессии, getParamEx возвращает некорректные значения.
 
Цитата
Sergey Gorokhov написал:
Иван Ру,
Здравствуйте,
А визуально значение в таблице торгов изменилось?
Если нет, то значит изменение не попало на сервер брокера и разбираться надо брокеру с биржей.
Кажется нет. На 100% не уверен. Обращу внимание в следующий раз. Для меня удивительно как брокер (Финам) может транслировать такой важный параметр с ошибкой.
В результате отправляются заявки в неторговый период и получаеш штрафные баллы за спам от Биржи.  
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
Цитата
Павел Bosco написал:
напоминает шутку про индийского программиста, который чтобы узнать завтрашнюю дату, делал в программе sleep на сутки.зачем вообще рекурсия?сделайте в main while dDT.year == nil do   InitEveryDay ()   sleep(xxx)  if stopped then    break  endendwhile not stopped do-- основной циклendа в InitEveryDay уберите и рекурсию и sleep, там это не нужно.не нужно из колбэков вызывать тяжёлую и долгую логику, будет подвисать весь квик
Коллеги, просьба вести диалог в уважительном тоне, или хотя бы читать внимательнее!
При предложенном Вами исполнении, Павел Bosco, функция InitEveryDay  будет вызваться в лучшем случае единожды за все время работы скрипта -- тогда когда будет впервые установлено соединение с сервером. Выше несколько раз было сказано, что необходима ежедневная реинициализация параметров, т.е. многократное обращение к функции InitEveryDay , собственно, это даже из ее названия  понять можно!
Принципиальное решение  мне понятно -- функция вызывается при соблюдении двух обязательных и достаточных условий - соединения с сервером и смены даты. При этом ее вызов должен происходить один раз (нужен флаг сбрасываемый при смене даты).
Что касается замечания vgi, еще раз отмечу, принципиально то, что рекурсия в данном случае находится не в коллбэке. Не имеет значение откуда вызывается функция с рекурсией, она у меня может вызываться разными способами, в т.ч. и не из коллбэка, но результат плачевный в любом случае. Поэтому я и задал важный уточняющий вопрос  для Sergey Gorokhov -- я вижу что рекурсия приводит к подвисанию независимо от того в коллбэке она или нет.  
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
"Во вторых, как уже было сказано, нежелательно их использовать только в колбеках, а значит..."
Насколько я понимаю, функцию InitEveryDay, где имеется рекурсия не относится к коллбэкам.

ВОПРОС: "Все зависит от того что для Вас "реинициализация""
ОТВЕТ: ежедневное обновление ключевых параметров скрипта, это не OnInit, которая является коллбэком, а функция InitEveryDay. Она вызывается из OnInit, а также из еще одной функции (не колл-бэка) скрипта, которая фиксирует смену даты.

ВОПРОС: "И что мешает все тоже самое сделать в цикле "while stopMain do", а в колбеках оставить только переменные?"
ОТВЕТ: Так все-таки не получится. Этот блок проходится (функционирует) единожды -- когда скрипт инициирован (запущен), но не завершена его инициация. InitEveryDay вызывается ежедневно, в том числе, когда этот блок пройден. Я рассчитываю что мой скрипт должен работать много дней без перезапуска, собственно для этого и нужна функция InitEveryDay  
Время окончания вечернего клиринга и начала вечерней сессии, getParamEx возвращает некорректные значения.
 
Пытаюсь использовать функцию getParamEx(class_cod, sec_code, 'EVNSTARTTIME').param_value для того чтобы получить время окончания вечернего клиринга, которое, как известно обычно - 19.00, но иногда смещается на 19.05
Однако, в те дни, когда клиринг смещается на пять минут, функция как обычно возвращает "стандартное" значение "190000".
В частности, такая ситуация была отмечена 10 января, тестировалось по ближайшим фьючерсам газпрома и других ликвидных базовых активов.
В чем дело?
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Из документации:
Цитата
Функции обратного вызова обрабатываются в основном потоке терминала QUIK. Поэтому пользователю необходимо оптимизировать время исполнения таких функций.

В связи с чем любой бесконечный или долгий цикл в любом колбеке может подвесить терминал.
Надо перенести проверку в функцию main
Правильно ли я понимаю, что в таком случае рекурсия в принципе недопустима ни в одной из функций скрипта Lua? Корректная последовательность приблизительно такова: функция должна быть исполнена до конца, вернуть условное негативное значение, после чего, с некоторой паузой должен произойти ее повторный вызов из main, в моем случае видимо из блока while stopMain do...

Коллеги, можете ли поделиться примерами ежедневной реинициализации скрипта?
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
Рекурсия - когда функция ссылается сама на себя - вещь не самая удачная в программировании, однако иногда она все же нужна для работы роботов в Луа.
В частности у меня написана функция инициации робота, которая вызывает сама себя, в случае, если нет соединения с сервером. Иными словами, в определенной точки функции, если не считаны параметры времени сервера (т.е. очевидно нет связи с ним), оператором sleep инициируется пауза в работе скрипта, а затем, функция вызывает сама себя и запускается с начала.
Выглядит это в общих чертах  так:

function OnInit()
theDate = 0 -- инициируем переменную, которая будет содержать текущую дату
InitBeforSession = false -- инициация перед началом сессии
InitEveryDay () -- ежедневная инициализация
end

function InitEveryDay ()
message ('Proliv InitEveryDay start')
sleep (100)

-- Индикаторы состояния торговли
isTempStoped = false; -- временная остановка работы скрипта
isTrades = false; --есть ли торги по фьючерсам?
isTradesPrevious = false
isConnectedPrevious = false
isConnected = false

-- Флаги работы скрипта
is_run = false -- флаг работы цикла Main


-- Проверка на наличие соединения
if dDT.year == nil then -- если значения полей пустые, значит нет соединения с сервером !!! по-видимому здесь происходит какое-то зацикливание из-за которого quik намертво виснет при запуске  в период когда нет соединения с сервером
message ("Error: no connection")
sleep (5000) -- стоим на месте
InitEveryDay ()
end -- если значения полей пустые

end -- конец функции

function main()
-- Задерживаем старт main до исполнения кода onInit (после его завершения флаг stopMain будет переведен в false - см. выше)
message ("main - stopMain ")
while stopMain do -- старт  стопора while
sleep (500)
message ("main stopMain is  "..tostring(stopMain))
end -- конец стопора while
end

---------------------------

Проблема в том, что при неблагоприятных условиях, в частности если скрипт стартуется при отсутствии соединения с сервером, скрипт виснет и вешает Квик, приходится аварийно перезагружать программу.
Эта схема рекурсии с паузой и оператором sleep, как я увидел, неработоспособна и во всех других случаях, когда она регулярно (многократно) срабатавает.
В чем проблема? И как реализовать данную задачу корректно: скрипт многократно пытается инициироваться, пока не наступят благоприятные условия.
Уведомление, когда скрипт перестал работать/не запустился
 
_sk_ спасибо за комментарий! Однако, предложенная схема вызывает некоторые вопросы.
Не совсем понимаю, как РЕГУЛЯРНАЯ связь реализуется через почту? Это какое же количество сообщений будет генерироваться за торговую сессию?
Более удачным кажется вариант постоянной связи терминала с удаленным клиентом - по аналогии с тимвьювером. Кстати, возможно удаленный клиент мог бы поддерживать постоянную работу того же тимвьювера и, в таком случае, он бы был способен еще и обрабатывать некоторые ошибки связанные с работой квик или скрипта, например, прекращение работы скрипта.
Упс, естественно установлен, думаю, как и у всех других торговцев. Беда, что не надолго его хватает... Интересно - каким образом реализована отправка сообщений при выключении питания. Специальное ПК-шное приложение? Родное приложение UPS?

П.С. Думаю интегрированное универсальное приложение с устойчиво работающей схемой было бы весьма востребовано в среде (алго)трейдеров.  
Уведомление, когда скрипт перестал работать/не запустился
 
Цитата
Евгений Петров написал:
Здравствуйте,

Пожалуйста уточните, как можно понять, что скрипт lua перестал работать или не запустился вместе со стартом квика (например по ошибке) и отправить в результате сообщение?

Хотел написать отдельный скрипт на autoit, но непонятно к чему привязаться, как отслеживать отвалившийся Lua скрипт?
Коллеги, хотелось бы присоединиться к обсуждению и оживить тему - уже давно раздумываю над ее решением, вызрела собственная идеология и алгоритм.

0) ВВОДНАЯ. При выставлении лимитных ордеров и/или отсутствии стоп приказов контроль за работой скрипта принципиален с точки зрения риск-менеджмента.

1) Оптимальное решение -  контроль за работой скрипта с другого устройства - ПК или мобильного телефона, который сигнализировал бы при наличии проблемы. Иначе необходимо будет сидеть за терминалом постоянно, торговлю уже нельзя считать полностью автоматизированной

2) Проблема с работой скрипта отнюдь не ограничивается самим этим скриптом (по моему опыту приблизительно в половине случаев она лежит за его пределами). Иерархия (от частного к общему) типовых проблем такова :
- ошибка в работе скрипта
- потеря соединения с сервером брокера
- ошибка в работе Quik (нехватка памяти, падение программы)
- проблемы в работе ПК (падение системы, отключение в результате отключения электричества, отсутствие Интернета)
- проблемы у брокера (отсутствие соединения с биржой по каналу брокера -- такой на моей памяти дважды случалось у Альфа-директ)
Любая из указанных проблем лишает скрипт работоспособности и чревата потерями, но вот масштаб проблемы и ее решения в каждом случае разнятся ))

2) Отдельное сообщение от скрипта не устраняет большинства рисков, для контроля за работой скрипта он должен отсылать сообщения регулярно.
Наличие ошибки должно определяться либо по отсутствию регулярного сигнала (в результате падения ПК или отсутствия Интернета на нем), или же на основе особых состояний сигнала ( / Quik не запущен / торговая сессия идет, связи с сервером нет / скрипт не запущен).

3) Как верно отмечено - контроль должен быть реализован в стороннем по отношению к Quik приложении, которое должно функционировать на базовом и удаленном устройстве.

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

Интересно послушать мнения о возможностях технической реализации, в первую очередь протоколах передачи данных и каналах связи. Возможно попытаюсь реализовать задачу своими силами.  
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
Иван Ру написал:
Цитата
DeSan DeSan написал:
привет
у биржи есть плата за транзакции
как я понял текущая формула - если транзакций больше 2000
(количество транзакций -(комиссия за день * 40 ) )*0,1руб
это за транзакции постановку - снятие и мув - сотальные дороже
вопрос - а где взять все эти транзакции - их свойства и так далее
сделки ордера свои вижу - в транзакции это что
Формула расчета штрафных баллов и комиссии биржи приведена здесь:  https://www.moex.com/a3825
Из пояснения биржи не ясно:
1. Штрафные баллы начисляются начиная с момента проведения 2000-ой транзакции или, при превышении этого порога, они начисляются на все осуществленные сделки.
2. Транзакция - размещение заявки, завершившаяся сделкой (заявка исполнена целиком), учитывается в расчетах?
Ошибся "на все осуществленные транзакции", Т.е. если у меня 2003 неэффективных транзакции - биржа насчитает мне 2001 штрафной бал или только 3 штрафных балла ?
Плата за транзакции - а где их взять, У биржи есть плата за транзакции - вопрос в том где их взять
 
Цитата
DeSan DeSan написал:
привет
у биржи есть плата за транзакции
как я понял текущая формула - если транзакций больше 2000
(количество транзакций -(комиссия за день * 40 ) )*0,1руб
это за транзакции постановку - снятие и мув - сотальные дороже
вопрос - а где взять все эти транзакции - их свойства и так далее
сделки ордера свои вижу - в транзакции это что
Формула расчета штрафных баллов и комиссии биржи приведена здесь: https://www.moex.com/a3825
Из пояснения биржи не ясно:
1. Штрафные баллы начисляются начиная с момента проведения 2000-ой транзакции или, при превышении этого порога, они начисляются на все осуществленные сделки.
2. Транзакция - размещение заявки, завершившаяся сделкой (заявка исполнена целиком), учитывается в расчетах?
Линии тренда
 
Цитата
Александр М написал:
Цитата
Иван Ру   написал:
Цитата
Egor Zaytsev   написал:
Цитата
Ilya   написал:
Тогда у меня еще один вопрос. Можно ли получить в Lua координаты точки 1 и точки 2 из таблицы как на скриншоте?

   Скриншот таблицы    
Добрый день.

Илья, такой возможности тоже, к сожалению, нет.
Все просят сделать простейшую вещь. Прошло три года, а воз и ныне там. Это удивительно.
Кому надо давно уже решили данную проблему сами :) На моем сайте например есть и индикатор трендовой линии и канала.
"Кому надо" здесь обсуждают проблемы, а не занимаются саморекламой.
Линии тренда
 
Цитата
Egor Zaytsev написал:
Цитата
Ilya   написал:
Тогда у меня еще один вопрос. Можно ли получить в Lua координаты точки 1 и точки 2 из таблицы как на скриншоте?

 Скриншот таблицы  
Добрый день.

Илья, такой возможности тоже, к сожалению, нет.
Все просят сделать простейшую вещь. Прошло три года, а воз и ныне там. Это удивительно.
Положение ярлыков наносимых на график с помощью LUA, Ярлык находится в позиции раньше на несколько баров, чем нужно.
 
Цитата
Sergey Gorokhov написал:
Цитата
Иван Ру   написал:
При использовании такого параметра функция вообще не работает
Параметр точно рабочий, если не работает пришлите полную версию кода.
Цитата
Иван Ру   написал:
насколько я помню - ALIGNMENT нет в спецификации в числе параметров доступных AddLabel
На этот случай есть документация. Вот скриншот:
Да, Вы правы, причина в чем-то другом. Буду разбираться.
Положение ярлыков наносимых на график с помощью LUA, Ярлык находится в позиции раньше на несколько баров, чем нужно.
 
Цитата
Sergey Gorokhov написал:
Цитата
Иван Ру   написал:
Однако, позиционируется ярлык на 1-2 бара раньше чем нужно? С чем это может быть связано? С путаницей времени начала и конца свечи? Иди с тем, что к началу бара привязывается край значка?
Описанная проблема у нас не воспроизводится.
Возможно причина не в смещении координат метки, а в ее визуальном отображении.
Попробуйте добавить параметр ALIGNMENT = "RIGHT",
При использовании такого параметра функция вообще не работает, насколько я помню - ALIGNMENT нет в спецификации в числе параметров доступных AddLabel
label.ALIGNMENT = "RIGHT" -- привязка
local labelId = AddLabel(chart_name, label); -- устанавливаем метку

П.С. Версия квик 7.19.0.51
Положение ярлыков наносимых на график с помощью LUA, Ярлык находится в позиции раньше на несколько баров, чем нужно.
 
Я наношу на графики значки / ярлыки с использованием функции AddLabel
Один из ее параметров - дата и время свечи.
Я получаю время свечи из источника данных с помощью
Выглядит для постановки ярлыка на последнюю свечку это приблизительно так:

local DATE, TIME = fCheckLastBarDateTime(ds)
fAddLabel (TheBaseSec.chart_name, "=", lastprice, DATE, TIME, R, G, 20, FONT_HEIGHT, HINT)

function fCheckLastBarDateTime(ds, index)
local lastbar_index
if index then
lastbar_index = index
else
lastbar_index = ds:Size() -- индекс последнего бара
end
local datetime = ds:T(lastbar_index)
local sdatetime = {} -- стринговая переменная с датой и временем
-- Приводим параметры к значению хх (вместо х)
for k, v in pairs (datetime) do -- перебираем таблицу datetime извлеченную из временного параметра последнего бара для добавления символов к одиночным значениям
local param = tostring(v) -- параметр в которое считывается значение отдельного поля
if #param == 1 then param = "0"..param ; end -- если только один символ, значит усечен 0 и его надо вновь добавить
sdatetime [k] = param -- записываем измененный параметр
end -- конец перебора полей таблицы времени
-- Формируем дату и время в нужном формате
local ddate = tostring(sdatetime.year)..tostring(sdatetime.month)..tostring(sdatetime.day) -- дата в виде строки
local ttime = tostring(sdatetime.hour)..tostring(sdatetime.min)..tostring(sdatetime.sec) -- время в виде строки
return ddate, ttime,  datetime
end


Однако, позиционируется ярлык на 1-2 бара раньше чем нужно? С чем это может быть связано? С путаницей времени начала и конца свечи? Иди с тем, что к началу бара привязывается край значка?
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Цитата
Egor Zaytsev написал:
Цитата
Иван Ру   написал:
Цитата
Anastasia  Gordienko   написал:
Цитата
Иван Ру   написал:
Проблема появилась повторно - с предложенными Вами настройками, увы, они не спасают.
Случилось это после аварийного завершения работы Quik (выключился свет).
Судя по работе скрипта Lua (а он тоже не мог получить котировки фьючерсов, за исключением FSU8 и SiU8) . Возможно отдельные модули Lua и QUik пытаются получить доступ к большому объему архивных данных котировок, но не могут этого сделать, может быть из-за перегрузки канала связи с брокером?
Сейчас помог повторный перезапуск терминала.
Для оптимизации работы терминала можете выполнить следующее:
1. Уменьшить количество заказываемых классов, инструментов и параметров по ним через меню Система/Заказ данных/Поток котировок;
2. Закрыть не использующиеся стаканы, таблицы обезличенных сделок и тиковые графики;
3. Выставить настройки:
Система/Настройки/Основные настройки/Программа/Получение данных/Исходя из открытых пользователем таблиц и
Система/Настройки/Основные настройки/Программа/Сохранение данных,Данные отражающие текущее состояние
4. В папке, где установлен Quik, можете удалить все файлы с расширениями *.log и *.dat, кроме файлов:metastock.dat,alerts.dat, portfolio.dat, scripts.dat
Цитата
Иван Ру   написал:
Еще один параллельный вопрос. Если я получаю данные о сделках с использованием опции "Исходя из открытых пользователем таблиц" - это удобнее, т.к. не надо менять списки каждый раз после того как происходит замена календарных фьючерсов. В то же время есть и проблема - у меня грузится информация по большому количеству классов и инструментов, которые нигде в таблицах не использовались никогда и не открыты.
Как Вы поняли, что терминал грузит эти данные, если информация по ним не доступна ни в одной из открытых таблиц?
. Меня смущает то, что эти классы и отдельные инструменты выбраны в настройках Заказ данных / Выбор принимаемых параметров и инструментов.
Добрый день.Такое может быть.
Дело в том, что опция "Исходя из открытых пользователем таблиц"   работает она немного интеллектуальнее и формирует заказ инструментов и  параметров не только по открытым таблицам, но и исходя из потребностей  модуля QMargin и внешних модулей. Для модуля QMargin запрашиваются все  инструменты, которые по настройками имеющихся дилерских библиотек  считаются маржинальными. Также запрашиваются все инструменты, у которых есть лимиты по бумагам.
Действительно? Я торгую только российскими фьючерсами. Там много классов, которые, как кажется, не могут иметь к ним никакого отношения - те же американские акции, непонятно для каких расчетов могут потребоваться их котировки.  
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Цитата
Anastasia Gordienko написал:
Цитата
Иван Ру   написал:
Проблема появилась повторно - с предложенными Вами настройками, увы, они не спасают.
Случилось это после аварийного завершения работы Quik (выключился свет).
Судя по работе скрипта Lua (а он тоже не мог получить котировки фьючерсов, за исключением FSU8 и SiU8) . Возможно отдельные модули Lua и QUik пытаются получить доступ к большому объему архивных данных котировок, но не могут этого сделать, может быть из-за перегрузки канала связи с брокером?
Сейчас помог повторный перезапуск терминала.
Для оптимизации работы терминала можете выполнить следующее:
1. Уменьшить количество заказываемых классов, инструментов и параметров по ним через меню Система/Заказ данных/Поток котировок;
2. Закрыть не использующиеся стаканы, таблицы обезличенных сделок и тиковые графики;
3. Выставить настройки:
Система/Настройки/Основные настройки/Программа/Получение данных/Исходя из открытых пользователем таблиц и
Система/Настройки/Основные настройки/Программа/Сохранение данных,Данные отражающие текущее состояние
4. В папке, где установлен Quik, можете удалить все файлы с расширениями *.log и *.dat, кроме файлов:metastock.dat,alerts.dat, portfolio.dat, scripts.dat
Цитата
Иван Ру   написал:
Еще один параллельный вопрос. Если я получаю данные о сделках с использованием опции "Исходя из открытых пользователем таблиц" - это удобнее, т.к. не надо менять списки каждый раз после того как происходит замена календарных фьючерсов. В то же время есть и проблема - у меня грузится информация по большому количеству классов и инструментов, которые нигде в таблицах не использовались никогда и не открыты.
Как Вы поняли, что терминал грузит эти данные, если информация по ним не доступна ни в одной из открытых таблиц?
Спасибо. С принципами оптимизации я знаком и их использую, думаю что не в этом дело
По второй теме - (загрузка данных по ненужным классам) Вы задали хороший вопрос! У меня на отдельной вкладке открыта таблица где строкой идут данные по всем обезличенным сделкам, "левых" данных, которых нет в других открытых таблицах, в частности данных по котировкам американских акций там вроде не проскакивает. Меня смущает то, что эти классы и отдельные инструменты выбраны в настройках Заказ данных / Выбор принимаемых параметров и инструментов.  
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Цитата
Anastasia Gordienko написал:
Цитата
Иван Ру   написал:
Вот сейчас, например, не вижу стаканов ни по одному основному фьючерсу за исключением FSU8, по акциям видно все. Чаще бывает что не видны стаканы только по некоторым значимым фьючерсам.
В "Потоке котировок" и   "Потоке обезличенных сделок", конечно, включен показ для всех фьючерсов. С чем может быть связана проблема?
П.С. Набор "непоказываемых" стаканов становится видным сразу после старта и в течении сессии не меняется.
П.С.С. При попытке подписки на стакан средствами Луа возвращаются нулевые значения бид/аск
Добрый день.
Выставите настройки: Система/Настройки/Основные настройки/Программа/Получение данных/Исходя из открытых пользователем таблиц. После выполнения настройки понаблюдайте за информацией в терминале, все должно отображаться корректно.
Проблема появилась повторно - с предложенными Вами настройками, увы, они не спасают.
Случилось это после аварийного завершения работы Quik (выключился свет).
Судя по работе скрипта Lua (а он тоже не мог получить котировки фьючерсов, за исключением FSU8 и SiU8) . Возможно отдельные модули Lua и QUik пытаются получить доступ к большому объему архивных данных котировок, но не могут этого сделать, может быть из-за перегрузки канала связи с брокером?
Сейчас помог повторный перезапуск терминала.

Еще один параллельный вопрос. Если я получаю данные о сделках с использованием опции "Исходя из открытых пользователем таблиц" - это удобнее, т.к. не надо менять списки каждый раз после того как происходит замена календарных фьючерсов. В то же время есть и проблема - у меня грузится информация по большому количеству классов и инструментов, которые нигде в таблицах не использовались никогда и не открыты. Например, по части американских акций. С чем это связано и как этого избежать?
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Цитата
Anastasia Gordienko написал:
Цитата
Иван Ру   написал:
Вот сейчас, например, не вижу стаканов ни по одному основному фьючерсу за исключением FSU8, по акциям видно все. Чаще бывает что не видны стаканы только по некоторым значимым фьючерсам.
В "Потоке котировок" и   "Потоке обезличенных сделок", конечно, включен показ для всех фьючерсов. С чем может быть связана проблема?
П.С. Набор "непоказываемых" стаканов становится видным сразу после старта и в течении сессии не меняется.
П.С.С. При попытке подписки на стакан средствами Луа возвращаются нулевые значения бид/аск
Добрый день.
Выставите настройки: Система/Настройки/Основные настройки/Программа/Получение данных/Исходя из открытых пользователем таблиц. После выполнения настройки понаблюдайте за информацией в терминале, все должно отображаться корректно.
Спасибо. Работаю неделю с такими настройками - пока полет нормальный.  
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Тиковые данные при этом поступают нормально.
Проблемы с получением данных по стакану., Периодически по части инструментов (фьючерсы, акции) не видны стаканы.
 
Вот сейчас, например, не вижу стаканов ни по одному основному фьючерсу за исключением FSU8, по акциям видно все. Чаще бывает что не видны стаканы только по некоторым значимым фьючерсам.
В "Потоке котировок" и   "Потоке обезличенных сделок", конечно, включен показ для всех фьючерсов. С чем может быть связана проблема?
П.С. Набор "непоказываемых" стаканов становится видным сразу после старта и в течении сессии не меняется.
П.С.С. При попытке подписки на стакан средствами Луа возвращаются нулевые значения бид/аск
Расчет финансового результата - проблемы для некоторых фьючерсов, Изменение шага цены после дневного клиринга создает сложности для расчета финансового результата нерублевых фьбючерсов (RI и т.п.)
 
Я довольно успешно использую следующий механизм для расчета текущего (пока позиция не закрыта) и окончательного финансового результата торговли в рублях.

Без подробных разъяснений код выглядит так:
local rublesFor1pointPrice = getPointsToRublesMultiplier('SPBFUT', sec_code) -- расчитываем рублевую стоимость 1 единицы цены лота (для большинства российских акций = 1, для товарных фьючерсов будет отличаться)
local last_price = tonumber(getParamEx('SPBFUT', sec_code, "last").param_value)
if rublesFor1pointPrice and last_price then -- если получили значение
local Margin = lotBalance * rublesFor1pointPrice * last_price -- расчитываем цену позиции в рублях
theStrategy.margin.P = Margin -- расчитываем цену позиции в рублях и записываем ее в поле E (enter) поля margin отражающего финансовый результат работы стратегии
theStrategy.margin.R = theStrategy.margin.E + Margin - theStrategy.margin.C
...

Для большинства инструментов расчет всегда оказывается корректным, но для фьючерсов, валюта которых отлична от рублей, например для RI возникают проблемы. После прохода через дневной клиринг результат по позициям открытым с 10 до 14 часов оказывается некорректным. Полагаю, это оттого, что в клиринг пересчитывается величина rublesFor1pointPrice в связи с изменением курса рубля (в приведенном случае - к доллару). Т.е. даже при снижении цены для короткой позиции результат может оказаться убыточным. Насколько я понимаю и вижу из данных таблиц Quik "Нереализованная прибыль" и "Вариционная маржа", финансовый результат рассчитанный с применением новых значений некорректен и в нашем случае необходимо использовать старое значение шага цены как для момента входа, так и для момента выхода, или же новое значение, для момента входа в позицию и ее закрытия.
Кто как решает эту проблему?
Акции - нет доступа к котировкам, не считываются данные, Из списка доступных классов исчез класс акций ММВБ
 
Из списка доступных классов исчез класс акций ММВБ (пятница вечером). Через creatdatasource / lua источники данных не грузятся, графики не строятся и не обновляются. При редактировании таблиц этот класс не отображается. В чем дело не могу понять.  
Страницы: 1 2 3 4 След.
Наверх