Просмотр сообщений
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Игорь1603
1
« on: дХТаРЫп 09, 2021, 02:55:06 pm »
Понятно.
Еще такой вопрос. Информация в виде пакетов формируется библиотекой или на каком-либо сервере? Хочу понять, можно ли по размеру пакетов судить о загруженности моего компьютера? Или большой размер свидетельствует о загруженности сервера брокера или сервера биржи (предполагая, что соединение с оператором связи имеет достаточную пропускную способность и сбои исключены)?
2
« on: пЭТРап 08, 2021, 10:57:17 am »
Не могли ли бы Вы уточнить: дожидается ли библиотека возврата из Callback-функции или очередной вызов Callback-функции может произойти асинхронно из другого потока?
3
« on: ШоЭп 05, 2019, 06:52:29 pm »
Подскажите, пожалуйста, можно ли средствами библиотеки узнать, закончилось ли поступление начальных данных после соединения с сервером? Или вообще, как это можно сделать? Еще вопрос по начальным данным - что это за элементы: Sec_info_upd и pits? И, наконец, в результирующем xml фрагменте начальных данных последовательность элементов верхнего уровня xml величина постоянная или каждый раз все элементы xml будут располагаться в новом порядке? Сегодня у меня это: <markets> <boards> <candlekinds> 32 блока из <securities>, <pits>, <sec_info_upd> ( правда, некоторые только <securities> и <pits> ) несколько <client> - по количеству моих счетов <orders> <trades> <positions> пара <sec_info_upd> еще раз <positions> <overnight> <server_status> <news_header>.
4
« on: ШоЫп 06, 2018, 07:29:03 pm »
В Windows 10 на команду file.waopen("D:\\filename") в окне вывода ATF появляется сообщение: "Не могу открыть файл. (file::wopen/2/)"
Обратился к ATF после долгого перерыва. Раньше на предыдущих Windows эта команда работала. Может кто подскажет, были какие-то изменения?
5
« on: ШоЭп 24, 2015, 12:39:28 pm »
В http://www.transaq.ru/forum/index.php?topic=3078.0Я прочитал такую фразу: "...Я скачал историю с сайта Финама, конвертировал и забросил в папку 'cache3'..." Мои вопросы связаны с конвертером и историческими данными. 1. Существует ли общедоступный конвертер? Если да, то где его найти и как использовать? 2. В целом, какие действия нужно произвести (включая манипуляции с файлом index.xml), чтобы исторические данные скачанные с сайта Финам стали доступны в терминале Транзак в оффлайне? 3. Касается ли это тиковых данных?
6
« on: РТУгбвР 25, 2014, 10:15:06 pm »
Есть ли какие-нибудь средства для обновления окна со скриптом?
Дело в следующем. Я запускаю таймер на тиковом графике с небольшим периодом, скажем, 500 мсек. И на каждом тике пытаюсь изменить последний бар гистограммы, отражающей значения, обратные временным промежуткам между поступающими сделками (1/временной_промежуток). То есть, чем быстрее поток сделок, тем больше значение графика.
Смысл в том, чтобы между сделками видеть, увеличение временного промежутка, как снижение значений появившегося на последней сделке бара гистограммы, а с пришедшей новой сделкой рисовать новый бар с высотой равной единице, который будет постепенно снижаться, по мере роста временного промежутка между сделками.
Но проблема в том, что пока нет сделок, изменения гистограммы не прорисовываются. Хотя, если переключиться на другое окно и обратно, то изменения проявляются!
Отсюда и вопрос: Есть ли в ATF средства имеющие такой же эффект, как переключение активного окна? Как я понимаю, это должно быть чем-то типа обновления активного окна.
7
« on: ЭЮпСап 30, 2013, 12:54:30 pm »
Я столкнулся с этой проблемой, когда делал перемещение заявки нажатием клавиши. Одно нажатие – и старая заявка снимается, а новая выставляется на определенном расстоянии от старой. Но во время оживления в стакане и ощутимых рывков в таблице всех сделок, многочисленные, частые нажатия на горячую клавишу, с такой привязанной к ней функцией, приводили к снятию заявки без последующего выставления новой на новую котировку.
И что примечательно, возврат «Не найдено заявок, удовлетворяющих заданным критериям» приходит от getLastErrorMessage стоящей не после trade_action::cancelOrder, а стоящей после следующего за cancelOrder trade_action::transactMultiple.
Поскольку от разработчиков внятного ответа получить не удалось, пришлось заняться шаманством и в результате получилась такая вот фигня: function MakeTransaction() { var ReturningFromTrade = trade_action::transactMultiple(CurrentOrder); var ReturningStringLenth = strlen(as_string(ReturningFromTrade)); var FirstCharacterIsNotDigital = false; var FirstCharacterOfReturn = ""; if (ReturningStringLenth != 0){ FirstCharacterOfReturn = chr2num(substr(as_string(ReturningFromTrade), 0, 1)); FirstCharacterIsNotDigital = not((FirstCharacterOfReturn >= 48) and (FirstCharacterOfReturn <= 57)); } if (FirstCharacterIsNotDigital or (ReturningStringLenth == 0) or (ReturningFromTrade == 0)){ trade_action::transactMultiple(CurrentOrder); } } Смысл тут в следующем. Функция trade_action::transactMultiple может вернуть много всякого разного, в том числе, как я предполагаю, и указатель, которого в ATF не существует как такового. Может я и ошибаюсь. Но судите сами, если проверить возврат на: - строку нулевой длины; - на цифру 0; - и на то, в чем, после приведения к строке, первым символом окажется не цифра, - то в результате мы выявим ситуацию, когда где-то (то ли на сервере биржи, то ли между биржей и транзаковским сервером, то ли между транзаковским сервером и клиентом на моем компе) произошел сбой и после серии многочисленных исключений, к нам свалилась несколько замороченная очевидность необходимости повтора нашей тривиальной transactMultiple.
И если не чаще пары раз в секунду, эта штука, вроде как, работает…
И еще, не знаю уж к месту ли, поставил галочку на Параметры/Ввод заявок/Ожидать снятия заявок при замене. По семантике вроде соответствует ситуации, если принимать во внимание сообщение getLastErrorMessage .
Знаете, когда я парился с этой ерундой, мне попался ролик на Youtube с Димурой, который говорил, что есть у нас и такие, кому позволяется заглянуть в самый разгар ажиотажа в очередь заявок на биржевом сервере, понять куда сейчас полетит рынок и поставить в самое начало очереди свою непроигрышную ставку. Так что чудо невозможности снять уже снятую заявку, особенно после попытки выставить новую, вообще теряется на фоне настоящего чуда Димуровской гиперсупертрансзаявки.
8
« on: бХЭвпСап 13, 2013, 07:27:49 am »
В офлайне не открываются графики. Пробовал на разных периодах и разных инструментах.
9
« on: бХЭвпСап 05, 2013, 07:25:05 pm »
Смысл как раз в множественности и переменности инструментов, от которых хотелось бы собирать информацию.
Бакс, евро, s&p, нефть, индекс ртс, сбер...
Сейчас смотрят на одно, завтра на другое. И пары могут быть и корзины.
Я как-то попробовал с переменными окружения. Но у меня сложилось впечатление, что окружение - это какая-то сумеречная зона: то все идет как ожидаешь, то вдруг мерцающие сбои - есть, нет, нет, есть.
Насколько я понимаю, там ведь еще и недосягаемая для контроля и отладки многопоточность накладывается...
10
« on: бХЭвпСап 05, 2013, 02:57:05 pm »
Значит ли это, что функции использовать пока никак не удастся? Или все таки есть какая-то заглушка на boardid, позволяющая использовать запроектированную функциональность.
Скажем при инициализации скрипта указать, что обращения будут только в определенном режиме, например, FUT и в дальнейшем обращаться только к данным фьючерсов?
11
« on: бХЭвпСап 04, 2013, 04:00:15 pm »
Правильно ли я понимаю, что функции subscribeTicks(secid, boardid) и onTick(secid, boardid, price, trdid) дают возможность получать сделки по произвольной бумаге из любого скрипта?
Если да, то хотелось бы понять что такое boardid. Если это - режим, то почему код
function init() { var sec_id = findSecID("SRU3", 4); subscribeTicks(sec_id, "FUT"); } function onTick(var secid, var boardid, var price, var trdid) { signal::outputMultiple("Идентификатор инструмента: " + secid); signal::outputMultiple("Режим: " + boardid); signal::outputMultiple("Цена: " + price); signal::outputMultiple("trdid: " + trdid); }
возывает сообщение о нецифровом параметре в строке "subscribeTicks(sec_id, "FUT")".
А если попытаться написать, скажем, subscribeTicks(sec_id, 1) (реально попробовал 0-3), то Транзак виснет и в конце зависа разрывается связь с сервером.
12
« on: бХЭвпСап 04, 2013, 12:17:30 pm »
Если в одном подокне рисуются графики двух инструментов: например, фьючерсы РТС и S&P500, - причем, один из инструментов (скажем S&P500) без привязки к шкалам, то после перезагрузки, на шкале, к которой привязан другой инструмент (РТС) исчезает выделение текущей цены и горизонтальная линия от шкалы к последней точке графика.
Чтобы это обозначение текущей цены инструмента привязанного к шкале снова появилось, нужно непривязанный к шкалам инструмент (S&P500) привязать к какай-либо шкале. Если этот же инструмент (S&P500) затем снова сделать без привязки к шкалам (чтобы шкала слева место не занимала), то выделение текущей цены привязанного инструмента (РТС) сохраниться до следующей перезагрузки Транзака.
То есть каждый раз, когда открываешь Транзак, приходиться совершать какой-то китайский ритуал, чтобы привести интерфейс в приемлемый вид.
13
« on: бХЭвпСап 04, 2013, 11:45:06 am »
Установил 333.04. Стакан заработал. А вот с инструментами неожиданно появились проблемы. У меня тиковый график фьючерса сбера и на нем скрипт рисует линии. При перезагрузке Транзака линии, нарисованные скриптом остаются, а сам сбер исчезает и из "Списка объектов" и, как изображение, с графика.
14
« on: ШоЭп 18, 2013, 12:18:17 am »
Может оно так и есть, но согласитесь - если уж взялся за тик, так не показывай бедному пользователю фиг!
Вот еще пример дискриминации тиков. Если взять тиковый график и через правую кнопку на нем "Скопировать в файл", то получившийся формат этого файла не узнает ни Графики/Скрипты ATF/Тест, ни Графики/Новый график!
Ну а насчет полезности тиков - мне все-таки кажется, что стакан и тики это первичная материя рынка, а все остальное уже вторично: свечи, индикаторы... И если не злоупотреблять стаканом и не зацикливаться на тиках, то ничего, кроме пользы, это добро не принесет.
15
« on: ШоЭп 17, 2013, 01:55:13 pm »
И в txt пробовал...
Получается только когда химичешь с форматами и подсовываешь тики как, скажем, минуты. Но дата и время проверяются на адекватность и день в тиках выходит как несколько месяцев в минутах и надо их генерить, чтобы точно, как настоящие, иначе не поймет, добавлять надо и все колонки и данные в них...
Но самое печальное, что в результате теста на таких псевдо-минутах и индикатор получает какой-то псевдо!
Единственно, что у меня вымучилось, это просто в оффлайне открыть новый график на этих псевдо-минутах, ну естественно предварительно внеся его в index.xml в cache2.
Так и индикатор правильно показывает.
Но с этого и начал!... Если в процессе всей этой химии что-то забыть исковеркать правильно и в таком виде подсунуть файлик на открытие нового графика в оффлейне, то... Транзак посоветует обратиться к разработчикам, завалится и восстановит состояние sources, каким оно было в глупом прошлом.
|