Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
22.05.2025, 20:00:02
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Просмотр сообщений

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

Pages: [1] 2
1
Понятно.

Еще такой вопрос.
Информация в виде пакетов формируется библиотекой или на каком-либо сервере? Хочу понять, можно ли по размеру пакетов судить о загруженности моего компьютера? Или большой размер свидетельствует о загруженности сервера брокера или сервера биржи (предполагая, что соединение с оператором связи имеет достаточную пропускную способность и сбои исключены)?

2
Не могли ли бы Вы уточнить: дожидается ли библиотека возврата из  Callback-функции или очередной вызов  Callback-функции может произойти асинхронно из другого потока?

3
Подскажите, пожалуйста, можно ли средствами библиотеки узнать, закончилось ли поступление начальных данных после соединения с сервером?
Или вообще, как это можно сделать?
Еще вопрос по начальным данным - что это за элементы: 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
В Windows 10 на команду file.waopen("D:\\filename") в окне вывода ATF появляется сообщение: "Не могу открыть файл. (file::wopen/2/)"

Обратился к ATF после долгого перерыва. Раньше на предыдущих Windows эта команда работала.
Может кто подскажет, были какие-то изменения?

5
В http://www.transaq.ru/forum/index.php?topic=3078.0
Я прочитал такую фразу: "...Я скачал историю с сайта Финама, конвертировал и забросил в папку 'cache3'..."

Мои вопросы связаны с конвертером и историческими данными.

1. Существует ли общедоступный конвертер? Если да, то где его найти и как использовать?

2. В целом, какие действия нужно произвести (включая манипуляции с файлом index.xml), чтобы исторические данные скачанные с сайта Финам стали доступны в терминале Транзак в оффлайне?

3. Касается ли это тиковых данных?

6
Есть ли какие-нибудь средства для обновления окна со скриптом?

Дело в следующем.
Я запускаю таймер на тиковом графике с небольшим периодом, скажем, 500 мсек.
И на каждом тике пытаюсь изменить последний бар гистограммы, отражающей значения, обратные временным промежуткам между поступающими сделками (1/временной_промежуток). То есть, чем быстрее поток сделок, тем больше значение графика.

Смысл в том, чтобы между сделками видеть, увеличение временного промежутка, как снижение значений   появившегося на последней сделке бара гистограммы, а с пришедшей новой сделкой рисовать новый бар с высотой равной единице, который будет постепенно снижаться, по мере роста временного промежутка между сделками.

Но проблема в том, что пока нет сделок, изменения гистограммы не прорисовываются.
Хотя, если переключиться на другое окно и обратно, то изменения проявляются!

Отсюда и вопрос:
Есть ли в ATF средства имеющие такой же эффект, как переключение активного окна?
Как я понимаю, это должно быть чем-то типа обновления активного окна.
 

7
Я столкнулся с этой проблемой, когда делал перемещение заявки нажатием клавиши.
Одно нажатие – и старая заявка снимается, а новая выставляется на определенном расстоянии от старой.
Но во время оживления в стакане и ощутимых рывков в таблице всех сделок, многочисленные, частые нажатия на горячую клавишу, с такой привязанной к ней функцией, приводили к снятию заявки без последующего выставления новой на новую котировку.

И что примечательно, возврат «Не найдено заявок, удовлетворяющих заданным критериям» приходит от 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
В офлайне не открываются графики. Пробовал на  разных периодах и разных инструментах.

9
Смысл как раз в множественности и переменности инструментов, от которых хотелось бы собирать информацию.

Бакс, евро, s&p, нефть, индекс ртс, сбер...

Сейчас смотрят на одно, завтра на другое. И пары могут быть и корзины.

Я как-то попробовал с переменными окружения. Но у меня сложилось впечатление, что окружение - это какая-то сумеречная зона: то все идет как ожидаешь, то вдруг мерцающие сбои - есть, нет, нет, есть.

Насколько я понимаю, там ведь еще и недосягаемая для контроля и отладки многопоточность накладывается...   

10
Значит ли это, что функции использовать пока никак не удастся? Или все таки есть какая-то заглушка на boardid, позволяющая использовать запроектированную функциональность.

Скажем при инициализации скрипта указать, что обращения будут только в определенном режиме, например, FUT и в дальнейшем обращаться только к данным фьючерсов?

11
Правильно ли я понимаю, что функции
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
Если в одном подокне рисуются графики двух инструментов: например, фьючерсы РТС и S&P500, - причем, один из инструментов (скажем S&P500) без привязки к шкалам, то после перезагрузки, на шкале, к которой привязан другой инструмент
(РТС) исчезает выделение текущей цены и горизонтальная линия от шкалы к последней точке графика.

Чтобы это обозначение текущей цены инструмента привязанного к шкале снова появилось, нужно непривязанный к шкалам инструмент (S&P500) привязать к какай-либо шкале. Если этот же инструмент (S&P500) затем снова сделать без привязки к шкалам (чтобы шкала слева место не занимала), то выделение текущей цены привязанного инструмента (РТС) сохраниться до следующей перезагрузки Транзака.

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

13
Установил 333.04.
Стакан заработал.
А вот с инструментами неожиданно появились проблемы.
У меня тиковый график фьючерса сбера и на нем скрипт рисует линии.
При перезагрузке Транзака линии, нарисованные скриптом остаются, а сам сбер исчезает и из "Списка объектов" и, как изображение, с графика.

14
Может оно так и есть, но согласитесь - если уж взялся за тик, так не показывай бедному пользователю фиг!

Вот еще пример дискриминации тиков.
Если взять тиковый график и через правую кнопку на нем "Скопировать в файл", то получившийся формат этого файла не узнает ни Графики/Скрипты ATF/Тест, ни Графики/Новый график!

Ну а насчет полезности тиков - мне все-таки кажется, что стакан и тики это первичная материя рынка, а все остальное уже вторично: свечи, индикаторы... И если не злоупотреблять стаканом и не зацикливаться на тиках, то ничего, кроме пользы, это добро не принесет.     

15
И в txt пробовал...

Получается только когда химичешь с форматами и подсовываешь тики как, скажем, минуты. Но дата и время проверяются на адекватность и день в тиках выходит как
несколько месяцев в минутах и надо их генерить, чтобы точно, как настоящие, иначе не поймет, добавлять надо и все колонки и данные в них...

Но самое печальное, что в результате теста на таких псевдо-минутах и индикатор получает какой-то псевдо!

Единственно, что у меня вымучилось, это просто в оффлайне открыть новый график на этих псевдо-минутах, ну естественно предварительно внеся его в index.xml в cache2.

Так и индикатор правильно показывает.

Но с этого и начал!... Если в процессе всей этой химии что-то забыть исковеркать правильно и в таком виде подсунуть файлик на открытие нового графика в оффлейне, то... Транзак посоветует обратиться к разработчикам, завалится и восстановит состояние sources, каким оно было в глупом прошлом.

Pages: [1] 2


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!