Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Декабря 05, 2021, 05:49:49 am
Начало Помощь Поиск Войти Регистрация
Новости:

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

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
Торговый терминал Transaq / Re: Сборка 333.04
« on: Сентября 04, 2013, 12:17:30 pm »
Если в одном подокне рисуются графики двух инструментов: например, фьючерсы РТС и S&P500, - причем, один из инструментов (скажем S&P500) без привязки к шкалам, то после перезагрузки, на шкале, к которой привязан другой инструмент
(РТС) исчезает выделение текущей цены и горизонтальная линия от шкалы к последней точке графика.

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

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

13
Торговый терминал Transaq / Re: Сборка 333.04
« on: Сентября 04, 2013, 11:45:06 am »
Установил 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!