Просмотр сообщений
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.
Topics - nikolz
1
« on: 22.02.2012, 17:06:49 »
Добрый день, Уважаемые разработчики! Хочу сделать торговый терминал под Andoid Поэтому интересует возможность получить или TransaqConnector, собранный под android, или исходники (соберу сам) , или описание протокола обмена с сервером TRANSAQ (напишу библиотеку сам)
2
« on: 09.07.2011, 09:57:24 »
Уважаемые разработчики и пользователи ATF! В порядке дискуссии, хочу обратить Ваше внимание на следующие обстоятельства в развитии ATF. Вот уже второй год я наблюдаю, порой участвую в обсуждении вопросов использования языка ATF. Два раза начинал разрабатывать торговые системы на нем , но ,достигнув определенного предела в возможностях языка, прекращал в ожидании развития недостающих средств.
Начну от печки. В период моего начального знакомства с еще не развитым языком ATF, я сетовал на ограниченность его возможностей , в том числе на отсутствие средств создания мультифайловых программ, а также API для подключения библиотек сторонних разработчиков или внедрение COM объектов.(эти ограничения так и остались)
На форуме мне объяснили, что ATF – это язык для не профессиональных разработчиков программ, поэтому он такой ограниченный. Мол для профессионалов есть TransaqConnector ( TransaqConnector - это отдельная песня).
Таким образом, язык изначально ориентирован на пользователя со знаниями в пределах уроков информатики средней школы или уровень кодировщика-самоучки.
Пока язык ATF мало чем отличался от общеизвестных языков программирования, типа разновидности бейсика для начальной школы, изучить его неподготовленному пользователю было просто, но практического смысла это не имело.
В настоящее время, язык ATF все больше усложняется. Появились понятия объекты (array, hash,file), структуры.
Возникает, естественно, вопрос: Уважаемые разработчики, а на какой уровень подготовки ориентированы эти абстракции языка ATF?
Неудивительно, что на форуме появились много нареканий на отсутствие описаний, примеров и понимания, как использовать эти абстракции.
Предлагаю Вам вновь попытаться ответить на начальный вопрос. На какой уровень подготовки рассчитан создаваемый язык программирования ATF.
В какой школе учат технологии разработки торговых алгоритмов, а в какой – кодированию этих алгоритмов на ATF ?
Ваш язык программирования достиг такого уровня сложности, когда неподготовленный пользователь (таких среди частных инвесторов большинство), без специальной подготовки не может создать реально работающего торгового робота, по причине отсутствия надлежащих знаний, а профессионал –не может создать торгового робота, по причине отсутствие современных технологий разработки и отладки алгоритмов и программ в языке ATF .
Что же имеем в реалии. В настоящее время ATF - это абстрактный язык описания предметной области (биржевой торговли) в терминах и понятиях языка программирования C++.
Итак вопрос остался - на какой уровень знаний рассчитан данный язык.
Мое мнение - это уже язык не для неподготовленного пользователя, но еще и не язык для профи.
Может быть пора задуматься над этим?
Ваше мнение.
3
« on: 25.04.2011, 12:17:22 »
Добрый день! столкнулся со следующей проблемой. Написал индикатор AMA : //индикатор АМА nikolz #samewindow #line 0 dot red extern period=10; extern Slow=30; extern Fast=2; var FastSCm; var SlowSC; var Signal; var ER; var SSC; var Noise; //~~~~~~~~~~~~~~ function init(){setInitCandles(1); line[0]=close; Signal=0; Noise=0; SlowSC=2/(Slow+1); FastSCm=2/(Fast+1)-SlowSC; } //~~~~~~~~~~~~~~ function calc() { Noise=Noise+abs(close-close[-1]); if (period>=noCandle()) { line[0]=close; } else{ Noise=Noise-abs(close[-period]-close[-period-1]); Signal=abs(close-close[-period]); if (Noise>0) {SSC=Signal*FastSCm/Noise+SlowSC;} line[0]=line[0][-1]+SSC*SSC*(close-line[0][-1]); } }
Так вот В ИНТРЕ все работает прекрасно, а в боевом транзаке нулевая линия. Что делать?
4
« on: 04.04.2011, 06:38:40 »
Уважаемые разработчики! Прошу пояснить с какой информацией по опционам можно работать в ATF. Спасибо
5
« on: 01.04.2011, 22:55:24 »
Heller!
Предлагаю подробнее осветить вопрос по применению различных редакторов текста для написания программ на ATF
при попытке использовать внешний редактор столкнулся со следующей проблемой:
Пример 1: Загружаем торговый терминал. Открываем внешний редактор. Создаем новый файл во внешнем редакторе в каталоге sources. Смотрим в торговом терминале а созданного файла не видно Вопрос: как увидеть созданный файл?
Пример 2: Загружаем торговый терминал. Открываем внешний редактор. Редактируем файл из каталога sources. Смотрим в торговом терминале. А там старый файл. Вопрос: Как увидеть исправления в файле?
Спасибо.
6
« on: 26.03.2011, 17:03:23 »
Добрый день! Прошу пояснить 1) вызывается ли функция onNewCandle при обработке истории. 2) исполняется ли функция signal::output при обработке истории Спасибо.
7
« on: 22.03.2011, 08:40:23 »
Уважаемые разработчики! В документации приведен пример использования переменной типа static. По моему мнению пример ошибочный и не объясняет назначение типа static. Не исключаю, что я не понял Ваши рассуждения.
Начнем от печки. Тип static в правильных языках предназначен для описания переменной, видимой лишь в функции содержащей это описание. Т.е. ее область видимости, в отличии от глобальной переменной, ограничена телом процедуры, т.е. видимость как у локальной переменной. Но в отличии от локальной переменной, которая уничтожается при выходе из функции, переменная static сохраняет свое значение и это значение можно использовать при новом входе в функцию, т.е. в этом смысле переменная static ведет себя как глобальная.
В документации приведен пример применения переменной Static: static alerted; function alert(var string) { if (not alerted) { signal::alertMultiple(string); alerted = true; } } ... Ошибка в том, что Static описана в глобальной области . Таким образом, static alerted стала глобальной переменной. и запись static alerted; ничем не отличается от записи var alerted. Как же правильно записать переменную static ? А вот как: function alert(var string) { static alerted; //видимость внутри функции значение сохраняем при выходе if (not alerted) { signal::alertMultiple(string); alerted = true; } } Но в этом случае, так как это static внутри alert, то ее не будет видно внутри function onNewCandle(). Короче, чтобы реализовать пример , который приведен в документации тип stastic не нужен. Нужна глобальная переменная. Резюме, тип static тем хорош, что мы может сохранять значения локальных переменных при выходе из функций при этом закрыв эти переменные от возможного изменения в других функциях. Ну вот примерно так.
"Ваше слово товарищ маузер.."
8
« on: 21.03.2011, 22:40:21 »
Предлагаю в этой ветке разместить предложения на разработку новых индикаторов Начинаю:
Уважаемые разработчики! Предлагаю добавить новый индикатор "Медианный фильтр", а то его накладно писать на ATF Как известно этот фильтр реализует робастный метод оценивания среднего значения и менее чувствителен к отдельным выбросам цены по сравнению со скользящим средним. Алгоритм фильтра следующий: Формируется массив N значений одного из параметров свечи High,Low,Open или Close. Делается сортировка массива . Выходной сигнал фильтра определяется следующем образом. Если массив содержит нечетное число то берется средний отсчет, если четное то половина суммы двух средних отсчетов. Спасибо
9
« on: 18.03.2011, 08:30:39 »
Уважаемые разработчики! В настоящее время, если сервер недоступен, то экран терминала пустой и нельзя ни настроить таблицы и графики, ни написать ATF программу. Было бы замечательно, если бы торговый терминал TRANSAQ сначала загружал на экран состояние предыдущего дня, а потом запрашивал пароль и логин и подключался к серверу. Короче, сервер отключен - и все кукуют. Спасибо за понимание.
10
« on: 17.03.2011, 19:34:53 »
Уважаемые разработчики! Прошу пояснить при начальной загрузке торгового терминала TRANSAQ, функция calc() вызывается на каждой свечи истории, а функция onHistoryCalculated() вызывается в конце истории. Если это так, то можно тестировать стратегию при загрузке торгового терминала и функцией onHistoryCalculated() выводить результаты тестирования. Верно? Не хватает : 1) возможности перегрузить графики без перезагрузки торгового терминала. Если сделать кнопочку "обновить", то можно было бы изменив параметры настройки робота снова запустить его тестирование на истории. 2) изображать графические символы на графиках, например,как в индикаторе фрактал. Таким образом, реализовать, пусть скромный, но тестер стратегий. Спасибо.
11
« on: 17.03.2011, 09:59:22 »
Добрый день! Буду признателен, если напишите фрагмент программы расчета доступных средств с учетом плеча, свободных средств и бумаг в портфеле. Спасибо
12
« on: 17.03.2011, 09:19:39 »
Добрый день! Интересует следующий момент. Так как в ATF нет возможности получить историю по другому инструменту или тайм-фрейму, то как возможное решение этой проблемы хочу воспользоваться информацией в каталоге cache2 терминала TRANSAQ. Как я понял , в cache2 находится история, отображаемая на графиках в текстовом формате. Вопрос: 1) Там вся история с графиков или выборочная? 2) Как формируется имя файла истории (что означают цифры в имени файла) Опишите подробнее формат записи и формат имени, или укажите ссылку на описание. Спасибо
13
« on: 16.03.2011, 17:29:58 »
Добрый день! вопрос: 1) Как получить список инструментов? 2) Как получить список рынков? 3) Для построения программы радара требуется просмотр таблицы текущих параметров по инструментам.Как получить информацию из таблицы текущих параметров по конкретному инструменту? 4) Хорошо бы получить отсортированную по клиенту таблицу лимитов
14
« on: 16.03.2011, 14:48:14 »
Добрый день! Как следует из документации информацию о заявках и сделках получаем функциями Get...(id). Вопрос : Как получить размер соответствующей таблицы (диапазон id), чтобы организовать просмотр всех заявок, стоп-заявок и сделок клиента. Спасибо
15
« on: 16.03.2011, 09:42:46 »
Добрый день! В программах часто использую при работе с массивом операцию unshift Интересует время исполнения данного оператора. Вопрос в следующем: 1) Поясните механизм реализации оператора. Надеюсь , что он не реализуется смещением содержимого массива на элемент в памяти с последующей записью вставляемого. Предполагаю,что но реализован через изменение индекса. Если реализован через список, то просьба сообщить затраты памяти на один элемент массива. 2)Если возможно дайте оценку относительного быстродействия по сравнению с косвенной адресацией. 3) Зависит ли время исполнения операции unshift от длины массива. Например массив 10 элементов или массив 100 тысяч элементов. Спасибо
|