Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Олег on 08.03.2010, 22:47:27

Title: Вопросы новичков-непрофессионалов
Post by: Олег on 08.03.2010, 22:47:27
Коллеги! Предлагаю в этой теме задавать разработчикам и друг другу вопросы, возникающие при изучении языка (документации по языку) ATF.

Вопрос №1. В документации читаем:
Quote
10. Механическая торговля и контроль портфеля

Механическая торговля ничем принципиально не отличается от подачи сигналов. Существует четыре функции для выставления заявки на рынок: trade_action::buy, trade_action::sell, trade_action::buyMultiple, trade_action::sellMultiple. Данные функции выставляют заявки на рынок ... Каждая из этих функций может принимать от двух до трех параметров. Первый параметр указывает объем сделки (положительное число), второй параметр указывает в каких величинах измеряется объем сделки. ... Третий параметр указывает цену. Если его не задать, то сделка будет совершена по рыночной цене (это на данный момент не работает для FORTS)...


Получается, что при механической торговле на ФОРТСе невозможно выставлять рыночные заявки!? Или я что-то неправильно понял?  Лично я торгую ТОЛЬКО на ФОРТСе. И вот, допустим, цена пересекла мувинг. Сам Бог велел автоматически купить инструмент по рыночной цене. Как я понял из приведённой цитаты, в текущей версии языка это вообще невозможно. Правильно я понял?
Title: Re: Вопросы новичков-непрофессионалов
Post by: maximbroker on 09.03.2010, 21:49:33
Лимитированная заявка становится рыночной если цену завышать или занижать по отношению к текущей цене ;)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 10.03.2010, 13:17:27
Лимитированная заявка становится рыночной если цену завышать или занижать по отношению к текущей цене ;)

Но это же всё равно лишняя головная боль при программировании на ATF. К тому же, можно ведь там что-нибудь напутать да и разориться ко всем чертям!  :)  Хочется же не как посложнее, а как попроще всё организовать. Поставить бы где-нибудь буковку "M" (в смысле, market order) да и дело с концом...
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 10.03.2010, 13:37:59
Ну вроде бы логично. Если есть желание просто купить по "текущей" цене (то есть по рыночной), цена не указывается. Если хочется купить по конкретной цене - она указывается. Хуже рынка совершить сделку все равно не получится, Transaq сделает следку по лучшей доступной на данный момент цене.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 17.03.2010, 13:31:44
Quote
10. Механическая торговля и контроль портфеля
Третий параметр указывает цену. Если его не задать, то сделка будет совершена по рыночной цене (это на данный момент не работает для FORTS)...


Получается, что при механической торговле на ФОРТСе невозможно выставлять рыночные заявки!? Или я что-то неправильно понял?  Лично я торгую ТОЛЬКО на ФОРТСе...


Ну вроде бы логично. Если есть желание просто купить по "текущей" цене (то есть по рыночной), цена не указывается. Если хочется купить по конкретной цене - она указывается.

Quote
(это на данный момент не работает для FORTS)...


У нас получился классический "испорченный телефон" :) Ещё раз повторяю, меня интересует ТОЛЬКО ФОРТС. Как можно выставлять рыночные заявки при механической торговле именно на ФОРТСе?! Я так и не понял, есть такая возможность на текущий момент или нет?
Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 17.03.2010, 20:03:52
Олег,
есть проверенная технология выставления заявок по псевдорыночной цене: текущая цена плюс / минус смещение в направлении сделки.
Скажем, хотим по рынку купить, если цена 100. Тогда выставляем заявку по цене 100+n, где n - это смещение от текущей цены, гарантированно покрывающее спрэд. Лучше определять в настроечной внешней (extern) переменной для каждого инструмента. А исполнится она по текущей ЛУЧШЕЙ цене покуки.
Аналогично, если хотим продать, то заявка будет по цене 100-n, и исполнится она по лучшей цене продажи.
Для индекса РТС я ставлю смещение 100, для SBRF - 3. Все работает, чего и Вам желаю.

Title: Re: Вопросы новичков-непрофессионалов
Post by: mma_tr on 18.03.2010, 02:59:19
Добрый день, уважаемые коллеги.

Теститрую АТФ, столкнулся со следующей ошибкой: пытаюсь через АТФ купить 1 лот на ММВБ, сигнал - пересечение быстрой и медленной SMA, алерты срабатывают, деньги на счете есть, но при покупке по этому же сигналу выдается ошибка "Некорректный ордер: Неверно указано количество". Кто-нибудь может сталкивался с подобным вопросом?

Код - ниже, скриншот в приложенном файле.

//Сигнал: пересечение двух скользящих средних
#samewindow
#line 0 solid red

extern fast = 2;
extern slow = 3;
var trend = 0;
extern amount = 200;

function init()
{
   setInitCandles(1);
}


function calc()
{
   line[0] = MovAvg(ind_ema, fast, pt_close);
   line[1] = MovAvg(ind_ema, slow, pt_close);
   
   //if (trend == 1 and line[0] < line[1]) {
   //   signal::alert("Продажа: по " + getSecName() +
   //               " быстрая MA пересекла медленную сверху вниз.");
   //}
   
   if (trend == -1 and line[0] > line[1]) {
      trade_action::buy(amount, ::money);   
   //signal::alert("Покупка: по " + getSecName() +
      //            " медленная MA пересекла быструю снизу вверх.");
   }
   
   if (line[1] > line[0]) {trend = 1;}
   else if (line[1] < line[0]) {trend = -1;}
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 20.03.2010, 19:38:20
У нас получился классический "испорченный телефон" :) Ещё раз повторяю, меня интересует ТОЛЬКО ФОРТС. Как можно выставлять рыночные заявки при механической торговле именно на ФОРТСе?! Я так и не понял, есть такая возможность на текущий момент или нет?
Простите, я сразу не уловил сути в вопроса.  В документацию вкралась опечатка: рыночные заявки возможны на ФОРТС, но только для фьючерсов. (То есть они не доступны для опционов). Документацию поправили.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 20.03.2010, 19:52:09
Добрый день, уважаемые коллеги.

Теститрую АТФ, столкнулся со следующей ошибкой: пытаюсь через АТФ купить 1 лот на ММВБ, сигнал - пересечение быстрой и медленной SMA, алерты срабатывают, деньги на счете есть, но при покупке по этому же сигналу выдается ошибка "Некорректный ордер: Неверно указано количество". Кто-нибудь может сталкивался с подобным вопросом?

Хотелось бы узнать такие подробности:
1. По какой бумаге вы хотели провести сделку?
2. В какое примерно время? (Интересует в общем какова была рыночная цена и размер лота)
3. Куда было выведено сообщение об ошибке? В окно ATF? В виде диалоге об ошибке? В таблице информации о заявке? Еще как-то?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 20.03.2010, 20:39:06
Простите, я сразу не уловил сути в вопроса.  В документацию вкралась опечатка: рыночные заявки возможны на ФОРТС, но только для фьючерсов. (То есть они не доступны для опционов). Документацию поправили.
Ну тогда всё классно! Опционами я не интересуюсь вообще. Торгую только на ФОРТСе и только фьючерсами Газпрома! :) Спасибо за разъяснения!
Title: Re: Вопросы новичков-непрофессионалов
Post by: mma_tr on 21.03.2010, 04:21:34
To Heller
Добрый день.
1. По Газпром а0
2. рыночная цена около 176 руб примерно
3. Я так понимаю, что в окно АТФ - прилагал к посту скриншот, почему - то он не сохранился, завтра выложу или напишите пожалуйста, как на мейл выслать, там четко все видно.

Если по этой же бумаге в это же время вручную в Транзаке заявку выставлять - все работает.

И еще вопрос - в АТФ не нашел возможности в короткую заявку выставить. Есть такая функция?
Title: Re: Вопросы новичков-непрофессионалов
Post by: mma_tr on 22.03.2010, 13:29:24
Та же ошибка сегодня, см. файл.
Title: Re: Вопросы новичков-непрофессионалов
Post by: mma_tr on 22.03.2010, 13:47:39
а если заменить в коде ::money на ::lots то код работает, АТФ продаёт и покупает по одному лоту. Забавно.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 23.03.2010, 15:29:15
mma_tr, сейчас нашли ошибку в ATF - задание объема заявки в единицах ::money не во всех случаях работает корректно. Пока использовать ключ ::money таким образом не стоит - в ближайшей версии это будет исправлено.
Title: Re: Вопросы новичков-непрофессионалов
Post by: mma_tr on 24.03.2010, 03:22:40
To Heller: понятно, подождем след. версии.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 11.04.2010, 17:20:01
У меня есть видеокурс, в котором очень рекомендуют индикаторы RAVI и ZigZag, а в Транзаке их нет :( Если не сложно, поместите, пожалуйста, в этой теме, их ATF скрипты...
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 12.04.2010, 10:16:45
Вот код для RAVI (формула используется из этого источника: http://books.google.com/books?id=Qfr_pC_WXDEC&pg=PA67&lpg=PA67&dq=RAVI+technical+analysis&source=bl&ots=2GyIjkRlS-&sig=FW0wGLu75V8MwbqR83lnVNTYEDQ&hl=en&ei=yL3CS4ysG5SBOIqkjJcE&sa=X&oi=book_result&ct=result&resnum=5&ved=0CBgQ6AEwBA#v=onepage&q&f=false )

extern period1 = 7;
extern period2 = 65;

function init()
{
   setInitCandles(period2);
   //setBounds(0, period2, 0);
}

function calc()
{
   var m1 = MovAvg(ind_sma, period1, pt_close);
   var m2 = MovAvg(ind_sma, period2, pt_close);
   line[ 0 ] = abs(100 * (m1 - m2) / m2);
}


Во время написания этого индикатора обнаружилось, что в ATF имеется баг - если значение выставленное в setInitCandles в сумме со значением в setBounds для первой линии оказываются больше, чем общее количество свечей, то индикатор вообще не отрисовывается. Поэтому setBounds в данном случае я не использую, и начальные значения индикатора будут налевыми. В ближайшем обновлении это будет исправлено.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 12.04.2010, 10:29:06
ZigZag попробую написать чуть позже. У него расчет сложнее - в отличие от RAVI и большинства других индикаторов его не напишешь за пять минут. Вероятно выложу код на днях.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 14.04.2010, 19:29:55
Выложил код ATF для ЗигЗага на странице примеров: http://transaq.ru/docs/atf/examples
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 14.04.2010, 22:08:33
Вот код для RAVI...

Выложил код ATF для ЗигЗага на странице примеров: http://transaq.ru/docs/atf/examples

Огромное спасибо!!! А то в видеолекциях именно эти два индикатора очень рекомендовали, а в Транзаке их не было. Ура! Теперь в моём Транзаке они будут!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Алексейка on 15.04.2010, 16:34:24
Скажите пожалуйста,как сделать индикатор  не на основе цены,а на основе строк таблицы "Финансовые инструменты"-покупают продают лотов.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 15.04.2010, 16:47:18
Алексейка, в данной версии такой возможности пока нет. Она находится в разработке и должна появиться в следующей версии ATF.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 25.04.2010, 16:35:11
Сейчас начал читать книгу Билла Вильямса "Хаос", добрался до индикатора BW MFI. В Транзаке его нет, а хотелось бы :)
И ещё тиковый объём, если можно...
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 26.04.2010, 11:58:54
Олег, индикатор BW MFI у нас есть, смотрите в списке внимательнее.

"Тиковый объем", насколько я его понимаю, - это просто индикатор Trades.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 26.04.2010, 21:23:54
"Тиковый объем", насколько я его понимаю, - это просто индикатор Trades.
По правде сказать, я и сам не понимаю, что Б.Вильямс имеет в виду в своей книге "Хаос" относительно этого вопроса. Вот цитата оттуда на эту тему:
"Тиковый объем - это количество изменений цен за определенный период времени. Это не число торговавшихся контрактов. Множество исследований указывают на то, что нет особенного различия между фактическим и тиковым объемом".

Таким образом, это вроде бы не Trades всё-таки. Ну да ладно, Бог с ним с этим тиковым объёмом, если его можно заменить обычным :)

Олег, индикатор BW MFI у нас есть, смотрите в списке внимательнее.

Действительно есть, классно! Просто, я задался этой проблемой в выходные, а в Транзак в эти дни войти невозможно. Вот и не мог уточнить. Мне почему-то казалось, что там есть MFI, но нет BW MFI. Хорошо, что я ошибся, - теперь одной проблемой меньше! :)

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

В справочной системе программы написано:
"Оффлайн работа с графиками
Все ценовые данные, полученные от сервера в последний сеанс работы, автоматически сохраняются на диске, поэтому, Вы можете работать с графиками даже отключившись от сервера.

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

При просмотре графиков в оффлайне вы не можете сохранять или загружать настройки экранов".


Сколько я ни бился над этой проблемой в своё время, так мне и не удалось ничего добиться. Покряхтел некоторое время, а потом, как говорится, плюнул на это дело. Но тогда форума не было, спросить было не у кого, а теперь форум есть!
Может быть, я делал что-нибудь не так? Если не сложно, подскажите мне (желательно пошагово), что надо делать, чтобы, допустим, сохранить пятничный часовик Газпрома, а в следующее воскресенье запустить Транзак и проанализировать его график.
Title: Re: Вопросы новичков-непрофессионалов
Post by: 7666 on 05.05.2010, 18:58:52
Сигнал: пересечение двух скользящих средних

отсюда: http://transaq.ru/docs/atf/examples

возникло 2 вопроса:


" быстрая MA пересекла медленную сверху вниз."
" медленная MA пересекла быструю снизу вверх."

это разве не одно и то же? ???



данный алерт срабатывает каждую свечку, например было пересечение сверху вниз на 5й свече, сигнал продавать будет на 6й,7й и т.д.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 07.05.2010, 10:54:49
А кстати, подскажите мне кто-нибудь (не обязательно разработчики), пожалуйста, как в Транзаке сохранить историю торгов по какому-нибудь инструменту за определённый период времени, чтобы потом в выходные проанализировать...
Специально ничего сохранять не надо.
Просто открываете скажем часовик Газпрома и закачиваете стрелкой (на графике внизу справа) столько свечей сколько нужно.

После этого можно не подключаясь к серверу
выбрать меню Графики->новый график, Газпром, 1 час.
Дальше можно добавлять индикаторы и т.д.
Открыть конфигурацию без сервера не получится, можно только открывать графики через меню Графики->новый график
Если, скажем, захотелось посмотреть Газпром, 1 день, но при последнем подключении к серверу этот график не открывался, то таких данных не будет
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 13.05.2010, 16:45:21
А кстати, подскажите мне кто-нибудь (не обязательно разработчики), пожалуйста, как в Транзаке сохранить историю торгов по какому-нибудь инструменту за определённый период времени, чтобы потом в выходные проанализировать...
Специально ничего сохранять не надо.
Просто открываете скажем часовик Газпрома и закачиваете стрелкой (на графике внизу справа) столько свечей сколько нужно.

После этого можно не подключаясь к серверу
выбрать меню Графики->новый график, Газпром, 1 час.
Дальше можно добавлять индикаторы и т.д.
Открыть конфигурацию без сервера не получится, можно только открывать графики через меню Графики->новый график
Если, скажем, захотелось посмотреть Газпром, 1 день, но при последнем подключении к серверу этот график не открывался, то таких данных не будет

Большое спасибо за желание помочь, но, к сожалению, у меня ничего не получилось. Делал вот так вот:

1. Открыл график "GZMO - 1час".
2. Вышел из Транзака.
3. Снова запустил Транзак, не подключаясь к серверу.
4. Графики > Новый график > "GZMO - 1час".
5. Получил пустой график "GZMO - 1час" с надписью "Нет данных". Сейчас сделал снеп-шот с экрана и хотел приложить к этому сообщению, но здесь не понятно, как это сделать. На других форумах обычно имеется ссылка "Приложить изображение к сообщению", а здесь её нет... А жаль!

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

Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 14.05.2010, 17:43:28
1. Открыл график "GZMO - 1час".
2. Вышел из Транзака.
3. Снова запустил Транзак, не подключаясь к серверу.
4. Графики > Новый график > "GZMO - 1час".
5. Получил пустой график "GZMO - 1час" с надписью "Нет данных". Сейчас сделал снеп-шот с экрана и хотел приложить к этому сообщению, но здесь не понятно, как это сделать. На других форумах обычно имеется ссылка "Приложить изображение к сообщению", а здесь её нет... А жаль!

Не понимаю, почему не получается. Может быть мне надо в настройках Транзака что-нибудь изменить?
Странно... еще раз проверил - все работает как я описал.
Посмотрите версию программы (меню ? О программе)
В той папке где лежит transaq.exe должен быть каталог cache, а в нем текстовые файлы со свечами. есть у вас такое ?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 16.05.2010, 14:10:17
Странно... еще раз проверил - все работает как я описал.
Посмотрите версию программы (меню ? О программе)

У меня "Transaq Trader 4.96 сб 235(45)
ATF ver 1.1"

В той папке где лежит transaq.exe должен быть каталог cache, а в нем текстовые файлы со свечами. есть у вас такое ?

Да в том то и дело, что есть! Вот всё содержимое этой папки:
CHMF_1_5.txt
GAZP_1_1.txt
GAZP_1_3.txt
GAZP_1_4.txt
GAZP_1_5.txt
GAZP_1_6.txt
GAZR-3.10_4_1.txt
GAZR-3.10_4_2.txt
GAZR-3.10_4_3.txt
GAZR-3.10_4_4.txt
GAZR-3.10_4_5.txt
GAZR-3.10_4_6.txt
GAZR-6.10_4_1.txt
GAZR-6.10_4_2.txt
GAZR-6.10_4_3.txt
GAZR-6.10_4_4.txt
GAZR-6.10_4_5.txt
GAZR-6.10_4_6.txt
GAZR-9.09_4_1.txt
GAZR-9.09_4_2.txt
GAZR-9.09_4_3.txt
GAZR-9.09_4_4.txt
GAZR-9.09_4_5.txt
GAZR-9.09_4_6.txt
GAZR-12.09_4_1.txt
GAZR-12.09_4_2.txt
GAZR-12.09_4_3.txt
GAZR-12.09_4_4.txt
GAZR-12.09_4_5.txt
GAZR-12.09_4_6.txt
index.xml
MSNG_1_5.txt
OGK2_1_5.txt
SBER03_1_5.txt
SIBN_1_5.txt
SNGSP_1_5.txt
TRNFP_1_5.txt
URKA_1_5.txt
VTEL_1_5.txt


Например, содержимое файла GAZR-6.10_4_3.txt вот такое (разумеется, цитирую не целиком, а только самое начало и самый конец):
<DATE>   <TIME>   <OPEN>   <CLOSE>   <HIGH>   <LOW>   <TRADES>   <VOLUME>
14/04/2010   10:45   17313   17321   17340   17312   762   3235
14/04/2010   11:00   17321   17389   17430   17319   1903   9953
14/04/2010   11:15   17389   17400   17407   17364   899   4271

.................................................
................................................
.................................................
...................................................
..................................................

13/05/2010   23:00   16270   16243   16312   16242   232   494
13/05/2010   23:15   16241   16193   16248   16180   406   1205
13/05/2010   23:30   16191   16168   16210   16150   416   1417


Т.е. это 15-минутка GZMO, начиная с 14/04/2010 до 13/05/2010.
Получается, что Транзак сохраняет всё как надо, а считать данные из этой папки не может. Может быть, причина в настройках или в сохранении конфигурации?

Сейчас вот снова попробовал сделать всё так, как описано выше, чтобы открыть график 15-минутки GZMO и снова получил пустую белую картинку с надписью "Нет данных" :(

Ещё одно важное, на мой взгляд, замечание. Когда появляется пустая картинка с надписью "Нет данных", в "шапке" окна программы написано: <Default.xml> Transaq



Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 19.05.2010, 16:36:26
У меня "Transaq Trader 4.96 сб 235(45)
ATF ver 1.1"
Похоже Вам нужно обновление программы.
Кто Ваш Брокер?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 20.05.2010, 22:02:15
У меня "Transaq Trader 4.96 сб 235(45)
ATF ver 1.1"
Похоже Вам нужно обновление программы.
Кто Ваш Брокер?

Я скачивал дистрибутив вот отсюда:
http://www.ccb-broker.ru/page16.htm
Но только это было уже больше года тому назад. Потом некоторое время назад при загрузке программы мне предложили установить обновление, я согласился и оно установилось, как я понимаю.
Может быть стоит попробовать скачать тот дистрибутив, который там выложен в настоящее время и попробовать сделать программе апдейт?

На вопрос о брокере ответил вам в личной почте.



Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 21.05.2010, 08:56:27
Может быть стоит попробовать скачать тот дистрибутив, который там выложен в настоящее время и попробовать сделать программе апдейт?
Нет, делать так смысла не имеет.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 24.05.2010, 13:38:31
Периодически появляется сообщение о создании отладочного файла и транзак "слетает".
Кто-нибудь знает в чем причина и что делать?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 24.05.2010, 15:01:30
Trudyga,

1. Через какого брокера Вы работаете?
2. Какой номер сборки Transaq (меню ? - О программе)
3. Отправляли ли Вы отладочные файлы в техподдержку?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 24.05.2010, 15:36:24
Trudyga,

1. Через какого брокера Вы работаете?
2. Какой номер сборки Transaq (меню ? - О программе)
3. Отправляли ли Вы отладочные файлы в техподдержку?

1. Финам
2. Ver.4.98.252, rev.46, ATF 1.4
3.Нет не отправлял. Events это текстовый файл в папке transaq?

Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 24.05.2010, 16:13:48
Да, Events.log
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 24.05.2010, 19:15:18
Да, Events.log



Спасибо за ответы. Файл отправил.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 25.05.2010, 11:44:33
Дмитрй, файл получили?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 25.05.2010, 12:57:48
Trudyga,
кроме Events.log нам нужны и сами отладочные файлы.
Они лежат в рабочей папке Transaq и имеют имена типа "Transaq-252-xxxxxxxx.mdmp".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 25.05.2010, 13:50:19
Дмитрий, файлы отправил.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 25.05.2010, 16:01:14
Trudyga,

я Вам ответил в почту.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 26.05.2010, 10:42:08
Дмитрий,

загрузил, включил пока все нормально. Надеюсь проблемма решена. Большое спасибо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 26.05.2010, 12:26:08
Trudyga,
ОК. И спасибо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Trudyga on 27.05.2010, 10:55:57
Trudyga,
ОК. И спасибо!

Дмитрий, я опять к Вам. См. почту.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 27.05.2010, 14:17:44
Trudyga,
Вы запускаете не тот Transaq.
См. почту.
Title: Re: Вопросы новичков-непрофессионалов
Post by: maximbroker on 27.05.2010, 14:22:38
Подскажите пожалуйста какой файл в папке с транзаком отвечает за настройки конфигурации экспорта в эксель?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 27.05.2010, 14:39:05
<Ваш логин>.DDE
Но я бы не советовал руками его править.
Title: Re: Вопросы новичков-непрофессионалов
Post by: maximbroker on 27.05.2010, 15:55:58
Спасибо за ответ! :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 06.06.2010, 18:19:35
У меня ещё один вопросик созрел :)
Всё-таки изучать язык ATF мне, выражаясь современным сленгом, "в лом", а потому приходиться искать обходные пути, на которых я мог бы использовать милый моему сердцу Visual Basic или, на худой конец,  VBA.

Это было предисловие, а теперь сам вопрос.
Вот допустим, мне захотелось организовать дело так, чтобы нужные мне данные экспортировались из Транзака в Excel (это легко),  потом там обрабатывались, обсчитывались (это тоже легко), а потом экспортировались обратно в Транзак, но уже в виде индикаторов собственного изготовления?

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

Как организовать трансляцию данных из Excel в текстовый файл - это моя проблема, думаю, что справлюсь, поэтому мой вопрос сводится к следующему:
1. Можно ли (используя скрипты ATF или как-нибудь иначе) строить индикаторы в Транзаке по данным (по точкам) из текстового файла?
2. Если можно, то в каком формате должны быть представлены эти данные в самом текстовом файле?

Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 07.06.2010, 09:31:55
Олег, работа с файлами в ATF появится в ближайшем времени.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 08.06.2010, 11:07:09
Олег, работа с файлами в ATF появится в ближайшем времени.

Спасибо, понял. Буду ждать!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Andrey on 18.07.2010, 10:58:35
Уважаемые господа, недавно начал осваивать программу Transaq и обнаружил, что в стандарте нет некоторых индикаторов которые, как мне кажется, были бы довольно удобны. В частности, индикатор, который показывал бы прибыль/убыток по торгуемому инструменту с учетом комиссии брокера и возможности добавления/продажи части бумаг. Написал такой индикатор самостоятельно с использованием руководства по ATF, но он пригоден для использования только в течении торговой сессии, а хотелось бы сделать универсальный. В этой связи, у меня три вопроса:
1.   Есть ли возможность организовать запись переменных в файл (в идеале хранящийся на сервере брокера).
2.   Есть ли возможность запустить собственный модуль одновременно с программой, с тем, чтобы сделки учитывались безотносительно включенного индикатора.
3.   Нет ли специальной функции вызываемой при совершении собственной сделки по типу функции calk() при изменении котировки (эту проблему я решил, но несколько искусственно).
Заранее благодарен!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 19.07.2010, 09:40:04
Andrey, сейчас в стадии тестирования находится версия ATF, в которой реализованы функции работы с файлами и так же функции onOrder и onMyOrder, которые вызываются при изменении статуса заявки по бумаге (первая функция - для всех сделок по бумаге, вторая - только для сделок из данного робота).

Что касается второго вопроса, то пока такой возможности нет.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Andrey on 19.07.2010, 10:02:15
Большое спасибо!
Буду ждать - надеюсь недолго  :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 21.07.2010, 17:59:10
Олег, работа с файлами в ATF появится в ближайшем времени.

Спасибо, понял. Буду ждать!


...сейчас в стадии тестирования находится версия ATF, в которой реализованы функции работы с файлами...

Я вот тут подумал. Мой брокер - банк Центрокредит, а они там предоставляют своим клиентам версию Транзака 4.96 сб 235 (45), ATF ver. 1.1.
Получается, что мне от ваших новых разработак большого прока не будет до тех пор, пока банк не перейдёт на новую версию, правильно я понимаю? Или можно будет как-нибудь самостоятельно сделать апдейт? Я в этом сильно сомневаюсь, но, на всякий случай всё-таки решил задать этот вопрос.

Или можно вот из этой темы "Новые сборки Transaq" скачать, обновить, а потом продолжить торговать через Ценробанк? Или же они сами должны предоставлять своим клиентам обновление с "прописанным" там шлюзом и т.п.?
Помогите, пожалуйста, разобраться в этом вопросе.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 22.07.2010, 13:29:13
Нет, самостоятельно обновиться не получится.
Только если Банк выложит клиентское обновление в свою систему
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 22.07.2010, 14:37:56
Нет, самостоятельно обновиться не получится.
Только если Банк выложит клиентское обновление в свою систему

Спасибо, я так и думал  :'(
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 26.07.2010, 11:22:20
Подскажите, пожалуйста, можно ли настроить экспорт данных из Транзака (4.96 сб 235 (45), ATF ver. 1.1) в Метосток Про 11. Про подробности не спрашиваю, сам разберусь. Меня интересует только возможно ли в принципе или нет?
Причина моего вопроса состоит в том, что на одном из форумов я наткнулся на информацию, что настроить экспорт данных из Транзака в Метасток версии выше 8 невозможно? Правда ли это?
А то у меня вроде бы всё уже запустилось (в смысле, экспорт данных), а графика в метастоке не вижу.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 28.07.2010, 12:38:03
Олег, да, в девятой версии Метастока экспорт не работал, более поздние версии мы уже не проверяли.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 29.07.2010, 16:45:36
Олег, да, в девятой версии Метастока экспорт не работал, более поздние версии мы уже не проверяли.

Сейчас вот всё-таки попробовал наладить экспорт, но получилось что-то забавное: свечки на экране бегут в обратном направлении. Вот небольшой файл (957 Кб) захвата видео с экрана. Это сегодняшние минутные свечки фьючерсов сбербанка
http://ifolder.ru/18706915
Причём всё происходит именно с такой скоростью в реальном времени, я ничего не ускорял на видео.

Может что-нибудь посоветуете?

Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 02.08.2010, 10:53:06
1. Кроме экспорта в MS включен ли у вас еще какой-нибудь экспорт сделок/свечей?
2. Если в настройках экспорта включить режим "только новые" экспорт идет нормально или нет?
3. В MS7 были утилиты DataServer и FileServer, в них можно было включить Debug режим, при котором в их логах появлялась достаточно подробная информация о принятых тиках. Нет ли в MS10 чего-то подобного?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 02.08.2010, 20:21:24
1. Кроме экспорта в MS включен ли у вас еще какой-нибудь экспорт сделок/свечей?
2. Если в настройках экспорта включить режим "только новые" экспорт идет нормально или нет?
3. В MS7 были утилиты DataServer и FileServer, в них можно было включить Debug режим, при котором в их логах появлялась достаточно подробная информация о принятых тиках. Нет ли в MS10 чего-то подобного?

Сегодня и завтра у меня цейтнот, а вот в следующие два дня обещаю всё попробовать сделать с самого начала, выложить здесь скриншоты всего процесса от начала до конца и ответить на Ваши вопросы. Честно говоря, мне очень интересно разобраться в этом деле.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 04.08.2010, 16:34:45
Ура! Всё заработало!

Вот так вот настроил Транзак:
(http://s1.postimage.org/gxtwa80.png) (http://www.postimage.org/image.php?v=gxtwa80)

(http://s1.postimage.org/gxtwcD9.png) (http://www.postimage.org/image.php?v=gxtwcD9)

И вот что получилось в Метастоке:
(http://s4.postimage.org/aVjf8Z0.jpg) (http://www.postimage.org/image.php?v=aVjf8Z0)

Всё изменяется в реальном времени и вполне соответствует тем изменениям, которые происходят в самом Транзаке.
Я вот только не пойму, можно ли выставлять заявки прямо из Метастока?  А если нет, то зачем я всё это затевал? :)

Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 06.08.2010, 10:03:45
Это замечательно что заработало!
В Транзаке-то все настройки очень простые, а какие настройки были сделаны в Метасток 11 ?
Или Вы просто сделали так как написано в инструкции по настройке экспорта из Транзак в Метасток и все заработало?

Насчет транзакций.
Мы сами не пробовали отдавать транзакции из Метастока в Транзак, но похоже некоторым клиентам это удается (линк старый, но еще живой):
http://www.russian-trader.ru/forum/viewtopic.php?t=1876
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 06.08.2010, 20:11:31
Это замечательно что заработало!
В Транзаке-то все настройки очень простые, а какие настройки были сделаны в Метасток 11 ?
Или Вы просто сделали так как написано в инструкции по настройке экспорта из Транзак в Метасток и все заработало?

Честно говоря, я с самого начала собирался весь процесс "состыковки" расписать поэтапно и со скриншотами, но потом (когда получилось) постеснялся всё это подробно описывать. Ну типа, получилось же, чё ещё надо-то? :) Поэтому все скриншоты удалил и оставил только самые важные (на мой взгляд).
Но теперь я вижу, что интерес к моим "экспериментам" обоюдный, поэтому я сейчас всё повторю и подробно (для всех интересующихся) опишу и покажу.

Итак, поехали...

Имеется компьютер с операционной системой Windows XP Pro SP2, Транзак 4.98.252.10 (rev.46, ATF 1.5) и Metastock Pro 11.0 for eSignal.

Разумеется, Метасток установлен "по уму" :) т.е. с выбором опции "Signal (Broadcast Version)" во время установки.

Выбрал для экспериментов "одноминутник" фьючерсов Сбербанка :)

Как я понял, в Метастоке (для отображения котировок в реальном времени) уже должна быть какая-то "предварительная" история этой бумаги. Созданием этой самой истории я сейчас и займусь.

Идём вот сюда:
http://www.finam.ru/analysis/export/default.asp
Заполняем все поля вот таким вот образом и нажимаем клавишу "Получить файл".
(http://s3.postimage.org/PqDxPH9.png) (http://www.postimage.org/image.php?v=PqDxPH9)

Текстовый файл скачался вот в таком виде (это самое начало и самый конец):

<TICKER>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
SRU0,1,20091215,155700,7949.00000,7949.00000,7949.00000,7949.00000,40
SRU0,1,20091216,125600,8065.00000,8065.00000,8065.00000,8065.00000,1
SRU0,1,20091216,125700,8000.00000,8000.00000,8000.00000,8000.00000,1
SRU0,1,20091216,163600,8200.00000,8200.00000,8200.00000,8200.00000,1
SRU0,1,20091216,183500,8250.00000,8250.00000,8250.00000,8250.00000,1
SRU0,1,20091216,190000,8733.00000,8733.00000,8733.00000,8733.00000,2
SRU0,1,20091216,190100,8733.00000,8733.00000,8733.00000,8733.00000,1
SRU0,1,20091216,191200,7840.00000,7840.00000,7840.00000,7840.00000,2
...................................................................
...................................................................
...................................................................
....................................................................
....................................................................
SRU0,1,20100806,181400,8323.00000,8324.00000,8318.00000,8321.00000,268
SRU0,1,20100806,181500,8321.00000,8331.00000,8320.00000,8330.00000,1381
SRU0,1,20100806,181600,8329.00000,8334.00000,8328.00000,8333.00000,345
SRU0,1,20100806,181700,8333.00000,8334.00000,8322.00000,8327.00000,1425
SRU0,1,20100806,181800,8325.00000,8334.00000,8324.00000,8324.00000,578
SRU0,1,20100806,181900,8324.00000,8332.00000,8322.00000,8331.00000,668
SRU0,1,20100806,182000,8332.00000,8332.00000,8321.00000,8323.00000,709
SRU0,1,20100806,182100,8323.00000,8333.00000,8320.00000,8333.00000,546
SRU0,1,20100806,182200,8329.00000,8329.00000,8320.00000,8326.00000,693


Запускаем метастоковский Даунлоадер и конвертируем скачанный текстовый файл в метастоковский формат, предварительно выбрав вот такие вот настройки:
(http://s3.postimage.org/PqDy3F0.png) (http://www.postimage.org/image.php?v=PqDy3F0)
(http://s3.postimage.org/PqDy699.png) (http://www.postimage.org/image.php?v=PqDy699)
(http://s3.postimage.org/PqDy19S.png) (http://www.postimage.org/image.php?v=PqDy19S)

Результат:
(http://s3.postimage.org/PqDy8Ei.png) (http://www.postimage.org/image.php?v=PqDy8Ei)
Зелёная галочка сигнализирует об отсутствии ошибок при конвертации...
Содержимое папки, в которую всё "сконвертировалось", выглядит вот так вот:
(http://s3.postimage.org/PqDyb8r.png) (http://www.postimage.org/image.php?v=PqDyb8r)

Запускаем Транзак. Меню "Файл" > "Экспорт сделок рынка..."

Перед запуском экспорта окошко настройки выглядит вот так:
(http://s3.postimage.org/PqDydDA.png) (http://www.postimage.org/image.php?v=PqDydDA)

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

Но начинаем именно с  опции "Только новые".
Нажимаем на кнопку "Запустить" и видим вот такую картинку:
(http://s3.postimage.org/PqDyg7J.png) (http://www.postimage.org/image.php?v=PqDyg7J)

Теперь запускаем Метасток и выбираем в меню "File" > "New" > "Chart". Видим вот такое окошко, в котором нажимаем на "Open".
(http://s3.postimage.org/PqDyiCS.png) (http://www.postimage.org/image.php?v=PqDyiCS)

В результате я увидел вот такую вот картину (это видеозахват с экрана): http://ifolder.ru/18805659 (4 Мб). Как видите, свечки бегут вполне синхронно. Правда, я не совсем "красиво" расположил окна Транзака и Метастока, чтобы закрыть свой трейдерский номер :)

В настройках Метастока я ничего не менял, всё осталось по умолчанию вот так вот:
(http://s3.postimage.org/PqDysBr.png) (http://www.postimage.org/image.php?v=PqDysBr)

(http://s3.postimage.org/PqDyxAJ.png) (http://www.postimage.org/image.php?v=PqDyxAJ)

(http://s3.postimage.org/PqDyA4S.png) (http://www.postimage.org/image.php?v=PqDyA4S)

(http://s3.postimage.org/PqDyF49.png) (http://www.postimage.org/image.php?v=PqDyF49)

(http://s3.postimage.org/PqDyHzi.png) (http://www.postimage.org/image.php?v=PqDyHzi)

(http://s3.postimage.org/PqDyK3r.png) (http://www.postimage.org/image.php?v=PqDyK3r)


Теперь выгружаем Метасток и в настройках экспорта Транзака выбираем опцию "Пропущенные" и нажимаем "Запустить":
(http://s3.postimage.org/PqDyP2J.png) (http://www.postimage.org/image.php?v=PqDyP2J)

Снова запускаем Метасток с теми же настройками (по умолчанию). К моему удивлению (!!!) всё опять прекрасно работает.
Вот видеозахват экрана: http://ifolder.ru/18805799 (1,6 Мб)
Правда, сейчас уже вечер и активность торгов небольшая, изменения на графиках не такие впечатляющие как в дневное время.

Снова выгружаем Метасток и в настройках экспорта Транзака выбираем опцию "С начала сессии" и нажимаем "Запустить":
(http://s3.postimage.org/PqDxXaA.png) (http://www.postimage.org/image.php?v=PqDxXaA)
Снова запускаем Метасток с теми же настройками. И снова всё прекрасно работает!!! На этот раз видеозахват делать не стал, уж поверьте на слово! :)

А теперь у меня вопрос. Подскажите, пожалуйста, почему при нажатии на клавишу "Сохранить" вот в этом окошке (по любым иструментам) всегда раздаётся звук критической ошибки Windows? Я что-то делаю неправильно?
(http://s2.postimage.org/Ts8zP6S.png) (http://www.postimage.org/image.php?v=Ts8zP6S)

И ещё вопрос. Как в этом вот окне убирать (удалять из списка) экспортируемые инструменты?
(http://s2.postimage.org/Ts8EftS.png) (http://www.postimage.org/image.php?v=Ts8EftS)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 09.08.2010, 14:34:18
> А теперь у меня вопрос. Подскажите, пожалуйста, почему при нажатии на клавишу "Сохранить" вот в этом окошке (по любым иструментам) всегда раздаётся звук критической ошибки Windows? Я что-то делаю неправильно?

Все правильно, это наш недосмотр.
Beep должен раздаваться только если список тикеров некорректен. Поправим.


> И ещё вопрос. Как в этом вот окне убирать (удалять из списка) экспортируемые инструменты?
В режиме "Только экспортируемые" в списке показываются инструменты, которым присвоены тикеры и/или назначен экспорт. Для перерисовки списка можно выключить/включить флаг "Только экспортируемые".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 09.08.2010, 20:14:19
Насчет транзакций.
Мы сами не пробовали отдавать транзакции из Метастока в Транзак, но похоже некоторым клиентам это удается (линк старый, но еще живой):
http://www.russian-trader.ru/forum/viewtopic.php?t=1876

Очень внимательно изучил ту тему форума, на которую Вы дали ссылку, но пока ещё не понял: MSX_KSR.dll годится только для "состыковки" Метастока с КВИКом или же и с Транзаком тоже?

А если годится, то достаточно ли просто положить эту далалайку в нужное место в системе папок и правильно написать .INI файл, как это описано ниже?

Quote
Quote
...я просто робота собрать не могу!
А чего его там собирать в Метастоке ???

Суем в нужный каталог DLL-ку, создаем новый индикатор в Индикатор Билдере, вот примерный текст EMA-CD ROBO-INDIC:

BuySell:=If(MACD() > Mov(MACD(),9,E), 1, 0);
Ident=1; {уникальный идентификатор тикера}
FakeVar:=ExtFml( "msx_ksr.TradeQuik",BuySell, "", "" , M, OPEN, BuySell, Ident);

BuySell;

В ini файле для DLL надо прописать все согласно инструкции на сайте KSR.

У меня так "msx_ksr.ini":

[TradeFile]
Author=Ghost
Directory=D:\
ClosePositionAtLastBar=yes
[TradeQuik]
Account=test
ClientCode=test
File=D:\trans.tri
Template=%N,NEW_ORDER,%C,LOT,%N,%S,MICEX,%M,%S,%A,%O,NNYNY,0,%Q,,,0,,,,;
TransId=1
ClassCode=EQBR

[D:\#NETTRADE\-=SubSystem=-\_MICEX_DB\intra_5\EESR(5)]
ClassCode=EQBR
SecCode=EESR
[D:\#NETTRADE\-=SubSystem=-\_MICEX_DB\intra_5\RU14GMKN0507(5)]
ClassCode=EQBR
SecCode=RU14GMKN0507
[D:\#NETTRADE\-=SubSystem=-\_MICEX_DB\intra_5\SNGS(5)]
ClassCode=EQBR
SecCode=SNGS
[D:\#NETTRADE\-=SubSystem=-\_MICEX_DB\intra_5\TATN(5)]
ClassCode=EQBR
SecCode=TATN
[D:\#NETTRADE\-=SubSystem=-\_MICEX_DB\intra_5\LKOH(5)]
ClassCode=EQBR
SecCode=LKOH


вроде ниче сложного :)


Title: Re: Вопросы новичков-непрофессионалов
Post by: Andrey on 10.08.2010, 17:06:27
Господа - несколько вопросов от начинающего:

1. Почему не работает функция init в следующем виде:
function init()
{

if (getSecBalance()!=0)
     {
         signal::alert("Текст");   
     }
setInitCandles(countCandles());
}
  и как сделать так, чтобы сообщение выводилось при добавлении индикатора, а график изображался с момента его открытия, а не задним числом?

2. Если линии описаны как:

#line 0 solid lime
#line 1 solid red
А вызываются:
if (position_size>0)
       {
           
         line[0] = выражение;
       }

 else if (position_size<0)
       
        {
     
       line[1] = выражение;
         
        }
  Как сделать так, чтобы неиспользуемая линия не изображалась, сейчас она выводится как:

line[1] = 0;
Title: Re: Вопросы новичков-непрофессионалов
Post by: Andrey on 10.08.2010, 17:16:11
Еще один вопрос - можно ли изменить цвет бара основного графика ( в зависимости от сочетания индикаторов АС и АО)?
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 11.08.2010, 13:23:34
Олег> И ещё вопрос. Как в этом вот окне убирать (удалять из списка) экспортируемые инструменты?
В режиме "Только экспортируемые" в списке показываются инструменты, которым присвоены тикеры и/или назначен экспорт.
Таким образом, чтобы удалить инструмент из списка нужно дважды кликнуть на него и убрать все птички и тикер.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 11.08.2010, 13:30:55
Олег
>Очень внимательно изучил ту тему форума, на которую Вы дали ссылку, но пока ещё не понял:
>MSX_KSR.dll годится только для "состыковки" Метастока с КВИКом или же и с Транзаком тоже?

>А если годится, то достаточно ли просто положить эту далалайку в нужное место в системе
>папок и правильно написать .INI файл, как это описано ниже?

Увы, я не знаю как делается.
Просто вижу, что здесь http://www.russian-trader.ru/forum/viewtopic.php?t=1876
в посте от Сен 15, 2006 13:57 Ghost пишет что у него метасток работает через Транзак.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 11.08.2010, 16:50:13
Олег
>Очень внимательно изучил ту тему форума, на которую Вы дали ссылку, но пока ещё не понял:
>MSX_KSR.dll годится только для "состыковки" Метастока с КВИКом или же и с Транзаком тоже?

>А если годится, то достаточно ли просто положить эту далалайку в нужное место в системе
>папок и правильно написать .INI файл, как это описано ниже?

Увы, я не знаю как делается.
Просто вижу, что здесь http://www.russian-trader.ru/forum/viewtopic.php?t=1876
в посте от Сен 15, 2006 13:57 Ghost пишет что у него метасток работает через Транзак.

C Транзак эта библиотека то же работает.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 11.08.2010, 19:55:37
Увы, я не знаю как делается.
Просто вижу, что здесь http://www.russian-trader.ru/forum/viewtopic.php?t=1876
в посте от Сен 15, 2006 13:57 Ghost пишет что у него метасток работает через Транзак.

Большое спасибо за подсказку! С помощью того форума я нашёл сайт, где попробую найти решение этой задачки :)
http://www.kosinsky.info/msx/msx.htm
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 12.08.2010, 11:17:06
Олег
>Правда, я не совсем "красиво" расположил окна Транзака и Метастока, чтобы закрыть свой трейдерский номер

В закладке "Прочее" Параметров АРМ Трейдера (меню "Настройки")
можно убрать птичку "показывать идентификатор трейдера"
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 12.08.2010, 14:25:40
Олег
В закладке "Прочее" Параметров АРМ Трейдера (меню "Настройки")
можно убрать птичку "показывать идентификатор трейдера"
Спасибо, запомню на будущее. Может, пригодится :)



Title: Re: Вопросы новичков-непрофессионалов
Post by: sentr on 13.08.2010, 14:13:03
Всем привет.
Подскажите пож.:
1. каким образом реализовать отображение индикаторов (различных) в основном и вспомогательном окне одновременно с помощию ATF ???
2. есть ли функция, позволяющая получать текущее количество бумаг с учетом остатков с предыдущих сессий ??? , а то каждый раз ввожу остаток предыдущего дня
Title: Re: Вопросы новичков-непрофессионалов
Post by: makeev on 23.08.2010, 11:57:12
#samewindow
#line 0 dashed red

extern max = 0.2;
extern step = 0.02;
extern init = 0.02;


function init()
{
   setBounds(0, 2, 0);
}


function calc()
{

line[0] = IndRef("parabolicsar",max, step, init)[0];

}




пишет

Line9: Синтаксическая ошибка, неожиданный идентификатор, ожидается идентификатор

без init все работает

Вопрос: че ему надо? ???

Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 23.08.2010, 13:39:45
А зачем именовать переменную так же, как и одну из предопределенных функций?
Сие есть моветон.
Title: Re: Вопросы новичков-непрофессионалов
Post by: makeev on 23.08.2010, 17:39:38
А зачем именовать переменную так же, как и одну из предопределенных функций?
Сие есть моветон.


Чтобы можно было накрутить на уже имеющиеся функцию свои навороты
Title: Re: Вопросы новичков-непрофессионалов
Post by: Timi on 03.09.2010, 12:13:52
Вопрос уже звучал, но остался без ответа.
По оводу реализации отдельных окон для индикаторов с помощью ATF.

Хочу я, скажем, осциллятор вывести в отдельное окно. Пишу:

#line 2 hist aqua

#samewindow
#line 0 solid red
#line 1 solid blue

На графике он оказывается в самом низу ценовой шкалы на значении 0. То есть его просто не видно. С помощью клавиш двигать очень долго, особенно, если это Транснефть.

Или я что-то не так делаю?
Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 07.09.2010, 10:33:29
А зачем именовать переменную так же, как и одну из предопределенных функций?
Сие есть моветон.


Чтобы можно было накрутить на уже имеющиеся функцию свои навороты
Не понял цели, но все равно: имя "init", по-видимому, зарезервировано для встроенной предопределенной функции, и попытка присвоить то же имя переменной генерит ошибку. Переименуйте переменную, и, думаю, все заработает.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 07.09.2010, 10:54:27
Timi, индикатор ATF работает в одном окне. Вы не можете вывести одну линию в одно окно, а другую в другое. Однако вы можете вывести индикатор ATF в отдельное подокно - насколько я понимаю проблема в этом (как раз осциллятор находится в районе нулевой отметки графика, что слишком сильно отличается от цены). Для этого просто при добавлении графика внизу в выпадающем меню выберите подокно. Либо уберите макрос #samewindow
Title: Re: Вопросы новичков-непрофессионалов
Post by: Timi on 07.09.2010, 11:11:02
Спасибо за ответ. Еще один вопросик. Можно сделать так, чтобы робот не отключался после закрытия сессии? В 23:59 все окна схлопываются, а когда включается торговый сервер, они снова открываются, но робот остается в неактивном состоянии (красная ладошка). Сделайте опцию: "сохранять рабочий режим робота в начале сессии". А то не всегда весть возможность быть возле компа с 9:00 до 10:30.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Timi on 07.09.2010, 11:49:41
Все, все, вроде нашел Автозапуск, ГРАФИК - ПАРАМЕТРЫ - ATF Автозапуск МТС. Если это то, что я имел ввиду в прошлом сообщении.
Title: Re: Вопросы новичков-непрофессионалов
Post by: mikek on 08.09.2010, 13:52:28
Прошу прощения, зарегился, но кнопки поиск не вижу. Вопрос такой: сравнили с приятелем индикатор Parabolic SAR, в Квик и Транзак, показывает разные данные, на одном из форумов видел сообщение, что в Транзак, формула индикатора отличается от классической. Так ли это и если да, то почему?
И заодно расскажите, как выставлять заявки в постторговую сессию в Транзаке, если это возможно в принципе?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Timi on 09.09.2010, 13:33:52
Извините за наверное глупый вопрос. А почему перед началом каждой сессии, после открытия графиков слетают все настройки робота? Приходится все перенастраивать. То же самое происходит после подкачки истории. Это так и должно быть или это моя личная проблема?
Title: Re: Вопросы новичков-непрофессионалов
Post by: makeev on 10.09.2010, 05:34:38
Не один ты такой. Свыкнись  :(
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 10.09.2010, 09:52:52
Они не то чтобы "слетают" - они просто начинают рассчитываться заново. В версии, которая на подходе (тестируется), можно писать в файл, это должно частично решить проблему.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Timi on 10.09.2010, 10:47:09
Ну что же, у каждого есть свои недостатки. Все равно Транзак лучше всех......будет. ;D
Title: Re: Вопросы новичков-непрофессионалов
Post by: slyfox on 10.09.2010, 17:44:42
Добрый день!

Как запустить скрипт?

Библиотеку scilexer.dll скачал и скопировал в папку программы. Версия transaq последняя.

Добавил скрипт, проверил, дает "ОК!".

Нажимаю "Запустить все МТС" ничего не происходит. Я так понимаю должен загореться индикатор что работает скрипт на графике?

Спасибо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 10.09.2010, 21:57:50
Добрый день!

Как запустить скрипт?

Библиотеку scilexer.dll скачал и скопировал в папку программы. Версия transaq последняя.

Добавил скрипт, проверил, дает "ОК!".

Нажимаю "Запустить все МТС" ничего не происходит. Я так понимаю должен загореться индикатор что работает скрипт на графике?

Спасибо!
А на график скрипт в качестве индикатора пробовал добавлять? :-)
Title: Re: Вопросы новичков-непрофессионалов
Post by: slyfox on 11.09.2010, 19:59:20
Quote
А на график скрипт в качестве индикатора пробовал добавлять? :-)

Неа, это между строк прочесть надо было? :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: svarogat on 15.09.2010, 01:30:29
Извиняюсь за может быть глупый вопрос, АТF изучаю недавно, но вот встретился с такой проблемой - не могу найти оператор выделения целой части числа, как сие действо возможно произвести???
Title: Re: Вопросы новичков-непрофессионалов
Post by: svarogat on 15.09.2010, 01:32:38
И еще один вопрос - возможно ли привязать действия робота ко времени, например - совершать сделки только до 15.00, а затем чтобы он отключился сам?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Dophin on 18.09.2010, 18:14:53
День добрый.

А как можно выставить условную заявку?

Спасибо.

Извините если вопрос избитый, но когда читаю форум гость - кнопка "поиск" есть, но не работает. Когда зарегистрировался - кнопки "поиск" нет совсем
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 21.09.2010, 10:37:01
По поводу целых частей, у нас есть три функции - floor, ceil и int. Первая округляет в меньшую сторону, вторая - в большую, третья - просто отбрасывает дробную часть.

Что касается отключения робота по времени, то вы можете получить время текущей свечи с помощью функции getCandleTime и не выставлять заявки в какое-то время. Так же можно использовать функцию shotdownRobots.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 21.09.2010, 10:37:45
Условные заявки вероятно появятся в ближайшей версии (не уверен успеем ли).
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 01.10.2010, 09:25:11
День добрый.
Подскажите как релизовать индикатор NRTR в ATF?
В метастоке он выглядет следующим образом:

J:=Input("Введите %",0.1,20,3)/100;
TR:=C*J;
Trend:=If(C=PREV, PREV,
If(Ref(C,-1)<PREV AND C<PREV, Min(PREV,C+TR),
If(Ref(C,-1)>PREV AND C>PREV, Max(PREV,C-TR),
If(C>PREV, C-TR, C+TR ))));
Trend

Сложности возникли с функцией PREV, как ее реализовать в ATF

PREV - это специальная функция метастока, которая ссылается на текущую функцию, расчитанную по предыдущему значению. Это единственный вариант создать формулу ссылающуюся на саму себя. Т.е. через нее можно попытаться организовать рекурсию

Выдержка из книги языка MetaStock:
PREV is a special value the refers to the current formulas' value for the previous period. It makes a formula slower to calculate and increases the discrepances if there is an error in the formula. However. PREV is the only way to create self-referencing formulas in MetaStock
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 04.10.2010, 11:33:03
Вы можете ссылаться на любое значение линии индикатора таким например образом (пример для EMA):

line[0] = 0.9 * line[0][-1] + 0.1 * close;

То есть надо после линии указать на какой сдвиг относительно текущей свечи вы хотите сослаться.

Это все очень подробно описано в документации:

http://transaq.ru/docs/atf/tutorial
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 04.10.2010, 11:38:16
Спасибо! Работает!!!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 04.10.2010, 19:50:34
Всем привет!!! Люди помогите советом. В TRANSAQ установил индикатор Лучи Элдера - название и код поставил все окей ошибок нет, но требует идентификатор id. Какой надо идентификатор поставить??? Пожалуйста помогите!!!
Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 05.10.2010, 11:05:53
Идентификатор здесь - это просто уникальная символьная строка, по которой к этому индикатору можно обращаться из другого индикатора.
Так что просто назовите как-нибудь.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 05.10.2010, 20:22:52
Идентификатор здесь - это просто уникальная символьная строка, по которой к этому индикатору можно обращаться из другого индикатора.
Так что просто назовите как-нибудь.

 Вы имеете ввиду просто набор любых букв? И спасибо что обратитили внимание на мой вопрос!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 05.10.2010, 20:27:12
Идентификатор здесь - это просто уникальная символьная строка, по которой к этому индикатору можно обращаться из другого индикатора.
Так что просто назовите как-нибудь.
Попробовал и вот результат:
Line 3: синтаксическая ошибка, неожиданный идентификатор
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 06.10.2010, 10:14:16
Проверьте все ли вы в точности скопировали как написано. Синтаксической ошибке в коде на сайте нет. Можнт что-то лишнего скопировали/недоскопировали? Или по дороке какие-то символы "испортились" из-за каких-нибудь кодировок.

Кстати, а какая у вас версия ATF? (меню "?", потом "О программе").
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 06.10.2010, 11:54:11
ATF 1.4


Код индикатора:
extern period = 10;
function calc()
{var ema = MovAvg(ind_ema, period, pt_close);
   line[0] = high - ema;
   line[1] = low - ema;
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 06.10.2010, 12:03:44
посмотри здесь http://transaq.ru/docs/atf/indicator-references (http://transaq.ru/docs/atf/indicator-references)
Спасибо посмотрел и уже не первый раз  :)  Показано что все id это буквы названия индикатора. Я думаю у меня наверное с кодом индикатора что-то не правильно.
P.S.  не программист
Title: Re: Вопросы новичков-непрофессионалов
Post by: APS on 07.10.2010, 21:39:39
посмотри здесь http://transaq.ru/docs/atf/indicator-references (http://transaq.ru/docs/atf/indicator-references)
Спасибо посмотрел и уже не первый раз  :)  Показано что все id это буквы названия индикатора. Я думаю у меня наверное с кодом индикатора что-то не правильно.
P.S.  не программист
На всякий случай приведите здесь строку, которую присваиваете в качестве ID идентификатора.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Djordj on 08.10.2010, 18:34:28

На всякий случай приведите здесь строку, которую присваиваете в качестве ID идентификатора.

[/quote]

последний раз писал - er
Title: Re: Вопросы новичков-непрофессионалов
Post by: vvr75 on 14.10.2010, 12:12:10
Добрый день!
Есть такой индикатор heiken ashi  http://www.mql5.com/ru/code/33
Если можно сделайте пожалуста его ATF скрипт.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 15.10.2010, 10:03:59
ATF не позволяет изменять внешний вид самих свечей, поэтому написать индикатор Heiken-Ashi не получится.
Title: Re: Вопросы новичков-непрофессионалов
Post by: vvr75 on 15.10.2010, 10:39:42
Спасибо! Жалко что я ничего в этом не понимаю, но разве нельзя прописать какое нибудь допольнительное условие что такой то индикатор в новом окне может менять сам вид свечей. Или в том же самом новом окне транслировать эти сами свечи из главного окна но в своем изложение. Или например не менять сами свечи а накладывать на них результаты в другом свете, в метатрейдере помоему так и  реализовано,не очень удобно конечно но вцелом идея индикатора реализована.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 18.10.2010, 18:44:05
1. Функция getBought() которя находится в теле фунуции calc() возвращает значение только с новой свечкой, а не при каждом тике. Можно ли эту функцию вызывать принудительно? В таблице "позиция по инструментам" информация обновляется сразу как прошла сделка.
2. В документации на новую версию ATF 1.6, где введены стоп-заявки нет информации с помощью какой функции вызывается стоп-заявка и какие в нее передаются параметры. Можно ли средствами ATF выставить заявку и связанную с этой с этой заявкой стоп-заявку. Приведите пожалуйста пример того как это можно реализовать.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 19.10.2010, 10:02:19
Про getBought() не понял, такого не должно быть. А как вы его используете? Можно пример кода?

Стоп-заявки в ATF пока не реализованы, но в ближайших планах.

По поводу изменения внешнего вида свечей - может быть в перспективе сделаем, но пока в планах нет. Архитектурно это не особо удобно делается, а индикаторов, которые так пишутся в общем-то не особо много.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 19.10.2010, 10:42:41
1. Скажите примерные сроки реализации стоп-заявки в ATF и отображение их на графиках.
2. Привожу код программы, getBought() возвращает значение только с новой свечкой, а не при каждом тике.

   if (getBought() - getSold() == 0)
               {
                if (line[0] < high) {
//                                balance = balance + 1;
      signal::alert(hi + " < " + high + " РАЗВОРОТ ВВЕРХ ");
                                signal::notify("Покупка 1 лота по " + close[-1] + ".   " + hi + " < " + close[-1] + "  " + balance);
                                trade_action::buy(1, ::lots, close[-1]);
}
                                   
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 19.10.2010, 15:25:47
Думаю, что понял, что вы имеете ввиду говоря о getBought().

Дело в том, что скрипт ATF выполняется довольно быстро, не дожидаясь пока транзакция пройдет. Поэтому если вы последовательно выставляете заявку из ATF, и тут же проверяете баланс, то почти наверняка, даже если сделка пройдет сразу же, к моменту выполнения функции getBought() она не успеет дойти до биржи. Скорее всего даже заявка

Для того, чтобы отслеживать сделку в момент ее совершения или заявку в момент ее выставления, используйте переопределяемые функции onATFTrade и onATFOrder соответственно.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 19.10.2010, 15:26:23
По срокам я думаю что стопы будут реализованы в ATF и на графиках в начале ноября. Хотя обещать не могу.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 19.10.2010, 17:13:49
Спасибо, я понял.  Применил в коде функцию trade_action::cancelAllOrders() для снятия всех предыдущих заявок перед выставлением новых, но программа выдает ошибку

[20:09:46 18.10.2010] Log opened.
[20:09:47 18.10.2010] 'Initializing application': Cannot load SciLexer.DLL
[21:34:54 18.10.2010] Log closed.

Что это - ошибка в корректности использования функции или это сбой программы?

else if (getBought() - getSold() < 0)
 {
 if (line[0] < high) {
trade_action::cancelAllOrders();
 signal::alert(hi + " < " + high + " РАЗВОРОТ ВВЕРХ " ;
 signal::notify("Покупка 2 лотов по " + close[-1] + ". " + hi + " < " +
 close[-1] + " " + balance);
 trade_action::buy(2, ::lots, close[-1]);
 
Дамп памяти и лог отправил support@transaq.ru
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 20.10.2010, 09:58:48
С ошибкой разобрались, скоро будет новая сборка.

Насчет сообщения "Cannot load SciLexer.DLL" - scilexer.dll - это модуль, который позволяет редактировать скрипты ATF несколько более удобно. Его можно скачать здесь: http://transaq.ru/docs/atf/scilexer.dll - этот файл надо положить в директорию Transaq.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 20.10.2010, 10:11:09
С ошибкой разобрались, скоро будет новая сборка.

Насчет сообщения "Cannot load SciLexer.DLL" - scilexer.dll - это модуль, который позволяет редактировать скрипты ATF несколько более удобно. Его можно скачать здесь: http://transaq.ru/docs/atf/scilexer.dll - этот файл надо положить в директорию Transaq.

 :) :) :)Вот это здорово! Класнный модуль!!!А я мучался каждый раз сторочки считал в случае ошибки, да и подстветка есть! СПАСИБО!
Может есть еще какие-нибудь недокументированные возможности?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 20.10.2010, 10:37:09
Может есть еще какие-нибудь недокументированные возможности?

Этот модуль документирован. На главной страницы документации стоит на него ссылка:
http://transaq.ru/docs/atf

Ну и начиная с какой-то сборки в текстовом поле внизу при загрузке выводится предупреждение о том, что желательно скачать этот модуль насколько я помню.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 20.10.2010, 10:45:19
Да видел это, но т.к. не написано для чего этот модуль и без него все работало, как-то не придавал этому значению. Спасибо.
Еще вопрос по поводу отображения котировок с зарубежных площадок, АДР, нефти, др.металлов и пр. Почему они транслируются как-то странно, надо обращаться к брокеру или пока это не работает?
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 20.10.2010, 11:22:25
Еще вопрос по поводу отображения котировок с зарубежных площадок, АДР, нефти, др.металлов и пр. Почему они транслируются как-то странно (см. ниже), надо обращаться к брокеру или пока это не работает?
Такие данные приходят от брокера. Мы их только показываем.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 21.10.2010, 18:22:12
Здравствуйте!
Давненько я сюда не заглядывал :)
Но как-только появился серьёзный вопрос, сразу же заглянул :)
Вопрос состоит в следующем:
Почему при наложении на график фьючерса Сбербанка сигнала пересечения двух мувингов сразу же выскакивает сообщение о якобы пересечении, хотя до пересечения ещё очень далеко? Сами можете это увидеть на приложенном файле видеозахвата.
Это баг или я что-то делаю не так?
Code: [Select]
#samewindow
#line 0 solid red

extern fast = 2;
extern slow = 100;
var trend = 0;

function init()
{
setInitCandles(1);
}


function calc()
{
line[0] = MovAvg(ind_ema, fast, pt_close);
line[1] = MovAvg(ind_ema, slow, pt_close);

if (trend == 1 and line[0] < line[1]) {
signal::alert("Продажа: по " + getSecName() +
" быстрая MA пересекла медленную сверху вниз");
}

if (trend == -1 and line[0] > line[1]) {
signal::alert("Покупка: по " + getSecName() +
" быстрая MA пересекла медленную снизу вверх");
}

if (line[1] > line[0]) {trend = 1;}
else if (line[1] < line[0]) {trend = -1;}
}

Видеозахват (9 мегов):
http://ifolder.ru/19880973
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 22.10.2010, 09:48:38
Применил функцию trade_action::cancelAllOrders() в коде, но у меня она снимает только активные заявки, условные заявки остаются, в акне ATF выдается сообщение "Не найдено активных заявок, удовлетворяющих заданным критериям." Хотя условные заявки присутствуют. В руководстве написано, что эта функция снимает все заявки, тогда как снять условную заявку?

                if (line[0] < high) {
                    trade_action::cancelAllOrders();
                    balance = balance + 2;
                  signal::alert(hi + " < " + high + " РАЗВОРОТ ВВЕРХ ");
                    signal::notify("Покупка 2 лотов по " + close[-1] + ".   " + hi + " < " + close[-1] + "  " + balance);
                                trade_action::buy(2, ::lots, close);

var order = new_object("hash");
order["price"] = close + 30;
order["quantity"] = 2;
order["operation"] = OP_SELL;
order["usecredit"] = true;
order["condition"] = COND_LAST_UP;
order["condvalue"] = close + 30;
trade_action::transact(order);

И еще вопрос, при выполнении этой функции она не только снимает предыдущие активные заявки, но и те которые должны выставиться после нее, как так
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 22.10.2010, 12:18:16
Да, в текущей версии по недосмотру функция cancelAllOrders() снимает только обычные заявки. Поправим в следующей сборке.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 22.10.2010, 12:23:15
Да, в текущей версии по недосмотру функция cancelAllOrders() снимает только обычные заявки. Поправим в следующей сборке.

 а как бороться с тем что при выполнении этой функции она не только снимает предыдущие активные заявки, но и те которые должны выставиться после нее (код приводил выше)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 22.10.2010, 23:09:17
А мой вопрос остался незамеченным? :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 23.10.2010, 16:28:41
Окно вывода ATF, куда выводятся переменные обновляется только при создании новой свечи. Функция calc() выпоняется при каждом трейде, т.е. переменные изменяющиеся внутри функции при этом не видны. Как их можно посмотреть. Хотелось бы видить что происходит с переменными.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 24.10.2010, 07:05:45
Дело в том, что скрипт ATF выполняется довольно быстро, не дожидаясь пока транзакция пройдет. Поэтому если вы последовательно выставляете заявку из ATF, и тут же проверяете баланс, то почти наверняка, даже если сделка пройдет сразу же, к моменту выполнения функции getBought() она не успеет дойти до биржи. Скорее всего даже заявка

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

Т.е. надо организовать временную задержку между выставлением заявки на биржу и проверкой баланса функцией getBought(), что бы заявка гарантированно дошла до биржи.
Если я между этими командами организую цикл
     var i = 0;
     while (i < del) {i += 1;}
то какую временную задержку он даст в секундах. Каким должен быть параметр del? чтоб получить задержку 1 сек.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.10.2010, 12:59:07
nxz, идея с циклами не особо хорошая. Пока индикатор не просчитает calc целиком, он не примет новых данных от сервера. Лучше полагаться на функции onATFTrade или onATFOrder - они вызываются сразу же как только информация о сделке или заявке станет доступна Transaq.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 25.10.2010, 14:29:21
nxz, идея с циклами не особо хорошая. Пока индикатор не просчитает calc целиком, он не примет новых данных от сервера. Лучше полагаться на функции onATFTrade или onATFOrder - они вызываются сразу же как только информация о сделке или заявке станет доступна Transaq.

Не совсем понятно как применить функции onATFTrade или onATFOrder в моем случае, т.к. я пытаюсь получить обратную связь с количеством бумаг в наличии (после выставления заявки) и в зависимости от того какой баланс (положительный или отрицательный) выставляю противоположную заявку. Из-за задержки вытавления заявки на бирже у меня и проиходит неправильная работа calc(). Цикл calc() происходит быстрее и ко мне приходит неверное значение  getBought() . Подскажите как это можно исправить на моем примере пожалуйста! :(


         bal = getBought() - getSold(); // Вычисляем количество контрактов
         signal::output("Кол. контрактов = " + bal);
 
     if (bal == 0) {
     if (line[0] < high) {

         signal::alert("Пробой линии сопротивлении в ВЕРХ. ПОКУПАЕМ!!!");

         trade_action::buy(lot, ::lots);
}
     if (line[1] > low) {

         signal::alert("Пробой линии поддержки в ВНИЗ. ПРОДАЕМ!!!");

         trade_action::sell(lot, ::lots);
}}

else if (bal < 0) {
     if (line[0] < high) {

         trade_action::cancelAllOrders(); // Снятие всех заявок
 
         signal::alert("Пробой линии сопротивлении в ВЕРХ. ПОКУПАЕМ!!!");

         trade_action::buy(2*abs(bal), ::lots);
}}

else if (bal > 0) {
     if (line[1] > low) {

         trade_action::cancelAllOrders(); // Снятие всех заявок

         signal::alert("Пробой линии поддержки в ВНИЗ. ПРОДАЕМ!!!");

         trade_action::sell(2*abs(bal), ::lots);
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.10.2010, 17:22:40
Олег, в скрипте на сайте на странице примеров была опечатка - сейчас ее исправили.

Насчет "не заметили" - на самом деле лучше новые вопросы задавать в отдельных вертках. Потому что риск не заметить действительно велик, когда много несвязанных вопросов путается в одной теме.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.10.2010, 17:26:46
а как бороться с тем что при выполнении этой функции она не только снимает предыдущие активные заявки, но и те которые должны выставиться после нее (код приводил выше)
На самом деле cancelAllOrders не снимает заявки, выставленные после. Просто функция calc() вызывается многократно, и каждый раз вы вызываете cancelAllOrders. Поэтому вы вначале выставляете заявку, а потом в средующий вызов calc() она снимается. Надо просто как-то более четко формулировать условия снятия заявок.

По второму вопросу. Просто в onATFTrade или onATFOrder перенесите вашу логику снятия/выставления заявок. Я не вижу всего кода и не знаю принципа вашей торговой системы, поэтому подробно не могу ничего подсказать.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 25.10.2010, 17:38:05
По второму вопросу. Просто в onATFTrade или onATFOrder перенесите вашу логику снятия/выставления заявок. Я не вижу всего кода и не знаю принципа вашей торговой системы, поэтому подробно не могу ничего подсказать.
Вот мой код. Посмотрите пожалуйста.
#samewindow
#line 0 solid red
#line 1 solid green

extern lot = 1;  // Первоначальное количество лотов
var hi;
var lo;
var bal;

function init()
{
   setInitCandles(5);
}

function calc()
{
        if (high[-3] > high[-4] and high[-3] > high[-5] and high[-3] > high[-2] and high[-3] > high[-1]) { hi=high[-3]; }
        line[0] = hi;
        if (low[-3] < low[-4] and low[-3] < low[-5] and low[-3] < low[-2] and low[-3] < low[-1]) { lo=low[-3]; }
        line[1] = lo;    
  
         bal = getBought() - getSold();
         signal::output("Кол. контрактов = " + bal);

    if (bal == 0) {
     if (line[0] < high) {

    signal::alert("Пробой линии сопротивлении в ВЕРХ. ПОКУПАЕМ!!!");
         trade_action::buy(lot, ::lots);
         trade_action::sell(lot, ::lots, close + 30); // Заявка на продажу - TP  ***
}
     if (line[1] > low) {

    signal::alert("Пробой линии поддержки в ВНИЗ. ПРОДАЕМ!!!");
         trade_action::sell(lot, ::lots);
         trade_action::buy(lot, ::lots, close - 30); // Заявка на покупку - TP ***
}}

else if (bal < 0) {
     if (line[0] < high) {

         trade_action::cancelAllOrders();

         signal::alert("Пробой линии сопротивлении в ВЕРХ. ПОКУПАЕМ!!!");
         trade_action::buy(2*abs(bal), ::lots);
         trade_action::sell(abs(bal), ::lots, close + 30); // Заявка на продажу - TP ***
}}
else if (bal > 0) {   
     if (line[1] > low) {

         trade_action::cancelAllOrders();

    signal::alert("Пробой линии поддержки в ВНИЗ. ПРОДАЕМ!!!");
         trade_action::sell(2*abs(bal), ::lots);
         trade_action::buy(abs(bal), ::lots, close - 30); // Заявка на покупку - TP ***
}}

}

*** - это я добавил, т.к. в первый раз при вставке они у меня выпали
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.10.2010, 17:56:22
Честно говоря не понял что вы пытаетесь сделать этим кодом. Тут явно где-то ошибка в логике. Можете описать желаемый результат словами?
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 25.10.2010, 18:34:51
Честно говоря не понял что вы пытаетесь сделать этим кодом. Тут явно где-то ошибка в логике. Можете описать желаемый результат словами?
У меня этот код работает неделю на вашей виртуальной бирже. Я его планирую использовать на FORTS.

        if (high[-3] > high[-4] and high[-3] > high[-5] and high[-3] > high[-2] and high[-3] > high[-1]) { hi=high[-3]; } // вычисляем фракталы максимумов
        line[0] = hi; // построение верхней линии канала
        if (low[-3] < low[-4] and low[-3] < low[-5] and low[-3] < low[-2] and low[-3] < low[-1]) { lo=low[-3]; } // вычисляем фракталы минимумов
        line[1] = lo; // построение нижней линии канала

         bal = getBought() - getSold(); //получаем информацию о количестве бумаг в наличии

     if (bal == 0) { // если количество бумаг = 0 (их нет)
     if (line[0] < high) { // и при этом максмум свечи пересек верхнюю линию канала

         trade_action::buy(lot, ::lots); // то покупаем 1 лот (контракт) по рынку
         trade_action::sell(lot, ::lots, close + 30); //  и выставляем заявку на продажу - как тэйк-профит

     if (line[1] > low) { // или, если минимум свечи пересек нижнюю линию канала
         trade_action::sell(lot, ::lots); // то продаем 1 лот  по рынку
         trade_action::buy(lot, ::lots, close + 30); //  и выставляем заявку на покупку - как тэйк-профит

т.е. при выходе из канала мы покупаем или продаем 1 лот и выставляет активную заявку TP, после этого у нас изменяется баланс бумаг он становится или положительным, если мы покупаем в лонг или отрицательным, если в шорт.

else if (bal < 0) {// если наш баланс по бумагам отрицательный, т.е. у нас был шорт
     if (line[0] < high) {// и при этом максмум свечи пересек верхнюю линию канала

         trade_action::cancelAllOrders(); // то мы снимаем все предыдущие активные заявки, не реализованные TP, чтоб они не мешались
         trade_action::buy(2*abs(bal), ::lots);// и переворачиваемся, т.е. покупаем бумаг в 2 раза больше, чтоб откупить шорт и встать в лонг
         trade_action::sell(abs(bal), ::lots, close + 30); // при этом так же выставляем заявку TP

else if (bal > 0) {   // в оставшейся секции наоборот.

Логика конечно тут запутана, но суть в том что я ее применил из Metastock, используя обычный фрактальный канал, только я его перенес на ATF.
Я запускаю transaq с роботом и цеплю Metasctok, т.е. котировки меняются и там и там. И обе системы работают синхронно, только Metasctok мне выдает alert на пакупку или продажу, а транзак должен выставлять заявки, вот здесь у меня и затык с задержками...
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 26.10.2010, 10:30:03
Чего-то я совсем запутался, если честно. Проблемы с вашим скриптом я вижу только в том, что calc может выполняться несколько раз до того, как собственно заявка дойдет до биржи, и в этом случае выставленные перевернутые позиции тут же закроются. Проблема с этим?

Если да, то можно завести отдельную переменную, которая контролировала бы вашу позицию. Можно например выставлять переменную revereted = 1, и при снятии заявкии проверять выставлена ли она или нет (соответственно занулять при входе в позицию). Вообще мы подумаем над тем, как сделать миграцию с MetaStock более простой, в одной из ближайших версий что-нибудь сделаем удобное.

Еще сразу не заметил вашего вопроса о том как смотреть переменные. В новой версии появилась новая функция "Показать переменные ATF" - для вызова кликните на индикатор ATF правой кнопкой. Она отобразит все глобальные внутренние переменные. Удобно для отладки. Ну а для распечатки можно использовать signal::outputMultiple - она печатается при каждом вызове calc.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 26.10.2010, 10:34:42
Чего-то я совсем запутался, если честно. Проблемы с вашим скриптом я вижу только в том, что calc может выполняться несколько раз до того, как собственно заявка дойдет до биржи, и в этом случае выставленные перевернутые позиции тут же закроются. Проблема с этим?

Если да, то можно завести отдельную переменную, которая контролировала бы вашу позицию. Можно например выставлять переменную revereted = 1, и при снятии заявкии проверять выставлена ли она или нет (соответственно занулять при входе в позицию). Вообще мы подумаем над тем, как сделать миграцию с MetaStock более простой, в одной из ближайших версий что-нибудь сделаем удобное.

Еще сразу не заметил вашего вопроса о том как смотреть переменные. В новой версии появилась новая функция "Показать переменные ATF" - для вызова кликните на индикатор ATF правой кнопкой. Она отобразит все глобальные внутренние переменные. Удобно для отладки. Ну а для распечатки можно использовать signal::outputMultiple - она печатается при каждом вызове calc.

    Да проблема именно в этом. И я пытаюсь как-то контролировать этот момент. Т.е. я хочу отправить заявку на биржу и потом дождаться того момента чтобы получить подтверждение о о сделке и потом продолжить выполнение скрипта, но до получения поддтверждения я должен ждать, выполня программу цикла ХХ (холостого хода) или как-то по другому можно организовать задержку.
    И еще вопрос, как я понимаю зеленый-красный робот внизу влияет только на выполнение заявок, если он выключен заявки на биржу не идут, а скрипт выполняется, если он включен заявки идут на биржу. Как с помощью функции isTradingAllowed() можно управлять им из скрипта.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 27.10.2010, 16:32:04
Олег, в скрипте на сайте на странице примеров была опечатка - сейчас ее исправили.

Насчет "не заметили" - на самом деле лучше новые вопросы задавать в отдельных ветках. Потому что риск не заметить действительно велик, когда много несвязанных вопросов путается в одной теме.
Понял! Спасибо за ответ и за совет! Впредь так и буду поступать.
Сейчас проверил,  теперь всё работает как надо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 27.10.2010, 19:44:10
Вопрос. Выставляю заявку на продажу по хешу как в примере

var order = new_object("hash");
order["price"] = 1.72;
order["quantity"] = 10;
order["operation"] = OP_BUY;
order["usecredit"] = true;
order["condition"] = COND_LAST_DOWN;
order["condvalue"] = 1.75;
trade_action::transact(order);

Заявка не принимается. Окно вывода ATF мне сообщает что "Сбербанк (vol2): Некорректный ордер: Не хватает собственных бумаг - 2 штук (макс. допустимое количество - 0 лот.)."

Я же в параметрах заявки указал что буду использовать кредит (выделено), почему не продается? Если заявку выставляю руками, с использованием кредита, то заявка принимается.

А если выставлять заявку таким образом trade_action::sell(2*lot, ::lots); то все замечательно, продается 2 лота? Где ошибка?

Пожалуйста исправте ошибку в документации на странице "Константы в языке ATF"

(http://gyazo.com/93d03ee199d29d82e7fbd3f1afc17b5a.png)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 28.10.2010, 17:39:59
Была ошибка, поправили, в ближайшей сборке будет все нормально.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 28.10.2010, 18:38:45
    Есть еще замечание. Если выставить несколько условных заявок с одинаковой ценой выполнения условия, а потом курсор мыши навести на пунктирную линию на графике, обозначающую условную заявку, то в всплывающем окне не будет видно сколько условных заявок вы выставили, всегда показывается условие и количество первой условной заявки. Можно это как-нибудь исправить.
    Т.к. у меня скрипт выставлят несколько условных заявок по одинаковой цене выполнения условия, но с разной ценой исполнения и направлением (покупка или продажа), а на графике я вижу информацию только о первой заявке.

    И еще вопрос, как я понимаю зеленый-красный робот внизу влияет только на выполнение заявок, если он выключен заявки на биржу не идут, а скрипт выполняется, если он включен заявки идут на биржу. Как с помощью функции isTradingAllowed() можно управлять им из скрипта.
Title: Re: Вопросы новичков-непрофессионалов
Post by: togomsk on 29.10.2010, 05:46:11
mma_tr, сейчас нашли ошибку в ATF - задание объема заявки в единицах ::money не во всех случаях работает корректно. Пока использовать ключ ::money таким образом не стоит - в ближайшей версии это будет исправлено.
Я извиняюсь, - это когда?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Flash on 28.01.2011, 22:30:26
Торговлей на фондовом рынке занимаюсь совсем недавно. Подскажите пожалуйста новичку, не имея опыта в программировании возможно ли самому освоить язык ATF, с чего начать, какую литературу посоветуете?
Спасибо
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 28.01.2011, 22:59:39
Торговлей на фондовом рынке занимаюсь совсем недавно. Подскажите пожалуйста новичку, не имея опыта в программировании возможно ли самому освоить язык ATF, с чего начать,
Если не имея опыта в программировании вообще, тогда, наверно, нелегко. А если иметь хотя бы небольшие навыки по программированию на любом языке, тогда совсем не сложно.

какую литературу посоветуете?
http://transaq.ru/docs/atf/tutorial
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 28.01.2011, 23:10:15
Пожалуйста исправте ошибку в документации на странице "Константы в языке ATF"

(http://gyazo.com/93d03ee199d29d82e7fbd3f1afc17b5a.png)

Была ошибка, поправили, в ближайшей сборке будет все нормально.

Наверно, произошло какое-то недопонимание. Как я понимаю, коллега имел в виду не ошибку во встроенной в Транзак справочной системе, а ошибку в документации ATF. Эта ошибка не исправлена до сих пор:

(http://s3.postimage.org/n6sal2bo/image.jpg) (http://postimage.org/image/n6sal2bo/)

http://transaq.ru/docs/atf/constants
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 31.01.2011, 11:23:16
Спасибо, поправили. Насколько я понимаю, какая-то старая модификация файла случайно попала на сайт.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Undi on 24.03.2011, 14:45:58
Здравствуйте) Только начала знакомиться с ATF и такой вопрос возник - возможно ли вывести данные о покупках-продажах в виде таблицы?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 24.03.2011, 15:25:28
Пока нет, но скоро будет возможно.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Pit on 31.05.2011, 09:05:50
Здравствуйте! Разьясните пожалуйста как можно решить такую вот задачу: по условию совершается сделка и после этого выставляется сразу две заявки (тейк профит и стоп лос (условная) ), после совершения одной другая снимается.. Можно это сделать с помощью функции getActiveOrderIDs()? И как это можно сделать? И если не затруднит привести пример с её использованием...  Заранее благодарен!!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 31.05.2011, 12:24:00
Pit, а чем не устраивает выставление обычной стоп-заявки - оно именно так и работает в общем-то.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Pit on 31.05.2011, 14:34:38
Дело в том что выставляется две заявки: для лонга - тейк профит это обычная заявка на продажу выше входа в рынок, а стоп лос - это условная заявка на продажу ниже входа... и в принципе исполниться первой может любая из них... И решить это можно, наверное так: выполнился вход, выставились заявки, потом надо считать их ID  с помощью функции getActiveOrderIDs() и затем по этим ID отслеживать их статус, и по выполнению одной из них снимать другую. Может я не прав. Если это так, приведите пожалуйста пример использования функции getActiveOrderIDs(). Заранее благодарен!!
Title: Re: Вопросы новичков-непрофессионалов
Post by: ddd323 on 31.05.2011, 19:27:16
Хелп. Раздел Стоп заявки:
"При выполнении условия для одной части стоп-заявки, вторая ее часть снимается."
В этом собственно их прелесть, что не нужно беспокоится о второй части, ну помимо того, что блокирования двойной суммы не происходит.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 18.06.2011, 16:53:44
Почему-то к Интре не могу подключиться. Пишет "Сервер недоступен". У всех так или я что-нибудь не так делаю? Просто давно на Интру не захаживал, да и комп сейчас другой, потому и спрашиваю.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 18.06.2011, 18:19:48
есть такая проблема :(, плохо что на выходные стали выключать или завис он у них там ???
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 18.06.2011, 20:13:11
есть такая проблема :(, плохо что на выходные стали выключать или завис он у них там ???

Спасибо, что ответили, а то бы я сейчас на свой новый компьютер грешил или на то, что после большого прерыва (в "общении" с Интрой) делаю что-то не так.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 20.06.2011, 10:07:01
Пробемы на Интре связаны с нашим переездом в новый офис и сменой IP-адресов. В ближайшее время все проблемы разрешим.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 20.06.2011, 12:38:32
Пробемы на Интре связаны с нашим переездом в новый офис и сменой IP-адресов. В ближайшее время все проблемы разрешим.

C новосельем! :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 30.06.2011, 19:39:31
В контекстном меню таблицы "Финансовые инструмент" имеется опция "Копировать интрумент для связи с EXCEL".  Подскажите, пожалуйста, что с её помощью можно делать?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 01.07.2011, 07:18:13
Здравствуйте.
После того, как Вы нажали "Копировать инструмент для связи с EXCEL" в контекстном меню Excel выбираете "Специальная вставка". В диалоге выбираете либо "вставить" - тогда скопированный инструмент статически вставится в таблицу Excel, либо "связать" - тогда Excel будет отображать динамику изменений параметров инструмента. Порядок колонок в Excel будет такой же, как в таблице "Финансовые инструменты".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 01.07.2011, 07:23:18
C новосельем! :)

Спасибо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 01.07.2011, 10:30:48
После того, как Вы нажали "Копировать инструмент для связи с EXCEL" в контекстном меню Excel выбираете "Специальная вставка". В диалоге выбираете либо "вставить" - тогда скопированный инструмент статически вставится в таблицу Excel, либо "связать" - тогда Excel будет отображать динамику изменений параметров инструмента. Порядок колонок в Excel будет такой же, как в таблице "Финансовые инструменты".

Понял, спасибо за разъяснения.
Попробовал, получилось. Фишка хорошая, но, наверно, слегка избыточная, поскольку большинство пользователей (которым нужен экспорт в Эксель финансовых инструментов) делает это, скорее всего,  через меню Настройки > Настройка экспорта в Эксель > Мои фин. инструменты.
По крайней мере, у меня это организовано именно так уже больше года.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 04.07.2011, 17:47:52
Выставляю на продажу, допустим 8 лотов. Исполняется сначала 3 лота, потом 2, и наконец еще 3 лота. В итоге я в минусе из-за трех комиссионных брокера. Есть ли в Транзаке функция, при которой будет исполнено СРАЗУ именно то количество лотов, которые я выставил?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 04.07.2011, 18:14:32
Выставляю на продажу, допустим 8 лотов. Исполняется сначала 3 лота, потом 2, и наконец еще 3 лота. В итоге я в минусе из-за трех комиссионных брокера. Есть ли в Транзаке функция, при которой будет исполнено СРАЗУ именно то количество лотов, которые я выставил?


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

При выставлении лимитированной заявки могут быть заданы следующие дополнительные параметры:

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

Процедура обработки рыночной заявки в торговой системе Биржи зависит от заданных трейдером дополнительных параметров выставления заявки:

Немедленно или отклонить
Сделки совершаются только в том случае, если заявка может быть удовлетворена полностью.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 04.07.2011, 18:55:11
Олег!
Возможно я ошибаюсь, и ввели какие-то новые правила,
но согласно регламенту,комиссия берется
за трейд (за поручение),
 а не за отдельные сделки при выполнении поручения.
Например, дали заявку купить 10 , заявка ушла на биржу - это 1 трейд и не важно сколько раз будут сделки.
Но если Вы снимите не полностью выполненную заявку и снова остаток поставите - будет два поручения - т е два трейда.

Честно говоря, я не понял, что колега хотел услышать от нас по поводу комиссии. Просто я ему подсказал, как надо выставлять заявки так, чтобы они исполнялись целиком или же не исполнялись вовсе. А по поводу комиссии, по-моему, её размер вообще от этого не зависит. Комиссия взимается за каждый лот в установленном размере за конкретный инструмент, независимо от того, оптом было куплено/продано или врозницу :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 04.07.2011, 21:04:37
Олег!
Как обычно думаем что говорим об одном и том же а говорим о разном.
Вы говорите о фьючах ,где комиссия берется за контракт
а я говорю об акциях, где комиссия берется как процент от стоимости сделки но не менее минимального значения в 30 рублей для брокера. и 18 копеек для биржи

Понял. Просто для меня кроме ФОРТСа ничего другого "не существует". Меня туда (да и на биржу вообще) приятель "за ручку привёл". Он около десяти лет акциями торговал, потом к фьючерсам приобщился. Он мне сразу сказал, что фьючерсами торговать гораздо выгоднее. Одним словом, я за свою жизнь ни одной акции не купил и не продал :)  В результате, я по умолчанию всегда думаю, что речь в серьёзном разговоре :) может идти только о фьючерсах  ;D
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 05.07.2011, 09:42:13
Немедленно или отклонить
Сделки совершаются только в том случае, если заявка может быть удовлетворена полностью.
В противном случае заявка не выставляется
 
Рыночные заявки
Рыночная заявка выражает намерение участника торгов купить или продать определенное количество данного финансового инструмента по ценам заявок, находящихся в данный момент в очереди заявок противоположной направленности.

Процедура обработки рыночной заявки в торговой системе Биржи зависит от заданных трейдером дополнительных параметров выставления заявки:

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

Олег, Ваш ответ меня не удовлетворил: "немедленно или отклонить" работает в том случае, если на мои выставленные лоты имеется НЕМЕДЛЕННЫЙ ПОКУПАТЕЛЬ. В противном случае заявка даже не выставляется. Нельзя ли как то обойти частые комиссии брокера?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 05.07.2011, 14:56:38
... "немедленно или отклонить" работает в том случае, если на мои выставленные лоты имеется НЕМЕДЛЕННЫЙ ПОКУПАТЕЛЬ. В противном случае заявка даже не выставляется. Нельзя ли как то обойти частые комиссии брокера?
Хотел бы уточнить: даже если на бирже есть контрпредложение по интересующей вас цене и достаточного объема - не факт, что заявка приведет только к одной сделке: контрпредложение может быть составлено из N заявок разных контрагентов по одному лоту, и тогда у вас получится N сделок по одному лоту.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 05.07.2011, 17:32:10
Так есть ли возможность в Транзаке продать заданное количество лотов одним пакетом, не обогащая брокера дополнительными и обременительными для новичка комиссионными? А как обстоит с этим дело в Квике?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 06.07.2011, 13:18:10
Nikolz, ошибочка, видимо у Вас. Я торгую акциями, а не фьючерсами. В этом случае моя заявка может исполняться частями, что очень выгодно брокеру. Очень жаль, если в Транзаке нет возможности задать исполнение заявки целиком.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 06.07.2011, 13:43:17
Я торгую акциями, а не фьючерсами. В этом случае моя заявка может исполняться частями, что очень выгодно брокеру. Очень жаль, если в Транзаке нет возможности задать исполнение заявки целиком.
Транзак тут помочь не может. Так работает торговая система Биржи - рисует столько сделок, сколько заявок противоположного направления было задействовано при удовлетворении вашей заявки.
Другое дело, что Брокер может себя вести по-разному:
брать комиссию за каждую СДЕЛКУ, либо брать комиссию за каждую ЗАЯВКУ которая привела к сделке (одной или нескольким - неважно)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 06.07.2011, 16:06:40
Nikolz, не надо мне рассказывать о том, кто торгует на бирже, умничать я и сам умею. Скажите лучше честно, что ваш Транзак заточен под интересы брокера и нужная функция в нем отсутствует.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 06.07.2011, 17:17:13
Sanss, по поводу исполнения заявки целиком я ответил чуть выше  как один из разработчиков системы. а Nikolz за Транзак отвечать не может, ибо таковым не является  :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 07.07.2011, 11:24:43
klimov, если вам не трудно, расскажите поподробнее как добиться от брокера исполнения заявки целиком. Заранее прошу прощения за непонятливость.
Допустим, я желаю продать 6 лотов Лукойла по заранее определенной цене, например в 1700 рублей. Рыночная цена в данный момент составляет 1650 рублей. Я выставляю заявку на продажу, она появляется в торговом стакане в очереди. Какую мне кнопку надо нажать, чтобы заявка исполнилась шестью лотами, а не 2+4?   
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 08.07.2011, 09:39:06
Увы, никак.
Когда ваша заявка находится в "стакане" биржи (в данном случае ММБВ) любой участник торгов имеет право "отщипнуть" от нее любое кол-во лотов. И Брокер на это повлиять не может.
Это не дилинг Forex, а биржевая торговля. Тут все немного по другому.


Попробуйте договориться с Брокером насчет комиссии с оборота, а не со сделки.
Это вполне может получиться.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Sanss on 14.07.2011, 11:51:50
Спасибо, позвольте еще один вопрос:
Возможно ли построить график пары евро/рубль и доллар/рубль. Не могу их найти в списке графиков
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 19.07.2011, 10:39:22
Спасибо, позвольте еще один вопрос:
Возможно ли построить график пары евро/рубль и доллар/рубль. Не могу их найти в списке графиков
Данные по валютным парам в Транзак транслирует Брокер.
Ваш Брокер не дает данных по евро/рубль и доллар/рубль.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 06.08.2011, 21:44:39
Итересно, о каких звуках ATF идёт речь? Это которые signal::play или что-то другое?

(http://s1.postimage.org/2aghtakec/image.jpg) (http://postimage.org/image/2aghtakec/)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 08.08.2011, 15:44:07
Да, именно они.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 08.08.2011, 22:45:25
Да, именно они.

Жалко. Я думал какие-нибудь дополнительные "фишки", про которые я не знаю.
Title: Re: Вопросы новичков-непрофессионалов
Post by: alxand on 12.08.2011, 12:27:42
Nikolz, ошибочка, видимо у Вас. Я торгую акциями, а не фьючерсами. В этом случае моя заявка может исполняться частями, что очень выгодно брокеру. Очень жаль, если в Транзаке нет возможности задать исполнение заявки целиком.

Это что за брокер, который берёт комиссию за каждую часть исполнения заявки? Вроде она берётся за целый трейд, на важно как он разбился.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nikolz on 12.08.2011, 14:57:11
Олег!
Вот выдержка тарифного плана Открытия:
тариф "Инвестор+" :
 (Объем трейда) до 500 тыс. руб. 65 руб. за трейд 13,14% годовых
0,036% в день от 500 тыс. руб. 0,013% от объема трейда

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


Таким образом, я ранее Вам писал, что комиссия берется за трейд( исполнение заяки) , а не за сделки. Не важно одна или тысяча сделок.
Успехов
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 12.08.2011, 15:02:39
Олег!
Вот выдержка тарифного плана Открытия:
тариф "Инвестор+" :
 (Объем трейда) до 500 тыс. руб. 65 руб. за трейд 13,14% годовых
0,036% в день от 500 тыс. руб. 0,013% от объема трейда

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


Таким образом, я ранее Вам писал, что комиссия берется за трейд( исполнение заяки) , а не за сделки. Не важно одна или тысяча сделок.
Успехов

Всё это замечательно, но я не понял при чём тут Олег? :) Я торгую только на ФОРТСе и мне во всю лабуду, которая к нему не относится, вникать не имеет никакого смысла.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nikolz on 12.08.2011, 18:44:14
Действительно, не Олег!
Пардон, ошибся адресом.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 20.11.2011, 16:45:23
Вопрос новичка-непрофессионала:

В каких случаях это может понадобиться?

(http://s7.postimage.org/bmzrzj4xz/001.jpg) (http://postimage.org/image/bmzrzj4xz/)

И ещё вопрос:
О каких "запросах" идет здесь речь?

(http://s7.postimage.org/b2txobqh3/002.jpg) (http://postimage.org/image/b2txobqh3/)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 21.11.2011, 07:44:20
1. Ограничение количества показываемых рыночных сделок в Windows'95-98 ускоряло работу таблиц. Под XP и выше - не актуально, но функционал пока оставили.
2. Имеются в виду все диалоги из меню "Запросы", имеющие кнопку "Обновить".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 21.11.2011, 10:58:13
Понял, спасибо за разъяснения.
А еще у меня вот такой вопросик имеется :)
Вот сейчас идет дневная сессия, а у меня в Эксель транслируются Заявки и Сделки, относящиеся к пятничной вечерней сессии, а мне это абсолютно не нужно. Вопрос очень простой: как отключить? В смысле, не совсем отключить трансляции, а именно отсечь трансляцию "вчерашнего дня".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Дмитрий on 21.11.2011, 11:31:04
В Transaq такая фильтрация не предусмотрена, но Вы же экспортируете сделки с целью обработки их в Excel? В нем Вы можете игнорировать сделки, которые Вас не интересуют.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 21.11.2011, 12:28:04
В Transaq такая фильтрация не предусмотрена, но Вы же экспортируете сделки с целью обработки их в Excel? В нем Вы можете игнорировать сделки, которые Вас не интересуют.

Ну в принципе, да, могу. ОК, буду сам "фильтровать". Я только хотел выяснить, может быть такая фильтрация уже заложена в самом Транзаке, а я не знаю, куда поставить галочку :) Так мне было бы проще :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: m1xman on 21.11.2011, 20:17:55
Такой вопрос, существуют ли в транзаке "горячие клавиши" и есть ли возможность их запрограммировать самому? или может существует какой нибудь привод скальперский?
Title: Re: Вопросы новичков-непрофессионалов
Post by: IT527 on 28.07.2012, 07:53:35
Хотелось бы видеть, в Транзаке, при вводе заявки на покупку-продажу, какую нибудь вкладку, или переключающую галочку.
Чтобы вмеcте с заявкой, сразу выставлялся  стоп-лосс  и тейк профит, в одном окне заявки, а не двумя разным.
И при торговле, было бы здорово подставив желаемые цифры в заявку, свернуть её до уровня цены ,так как форма заявки, очень много места на экране занимает, закрывая графики цен.

Может я чего-то не увидел, не разобрался, и такой функционал есть? Подскажите?
Title: Re: Вопросы новичков-непрофессионалов
Post by: aq2003 on 28.07.2012, 09:27:59
Параметр ::momey давно не работает, я использую исключительно ::lots.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 30.07.2012, 16:02:03
Параметр ::momey давно не работает, я использую исключительно ::lots.
Может быть вы не так его указываете? ::money будет правильно. Он должен работать (если это не FORTS).
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 30.07.2012, 16:02:31
Такой вопрос, существуют ли в транзаке "горячие клавиши" и есть ли возможность их запрограммировать самому? или может существует какой нибудь привод скальперский?
Пока нет, но в ближайшем времени ATF научится обрабатывать нажатия клавиш.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 03.09.2012, 22:58:50
У меня не вопрос, у меня предложение :)

Предлагаю на панельку графических символов, которые пользователь может наносить на графики, добавить зеленый и красный треугольники, которые автоматически выводятся Транзаком и отображают покупку или продажу.  А без них приходится использовать непривычные стрелочки, которые на той панельке имеются и постоянно менять их цвет, поскольку обычно же покупка и продажа чередуются между собой. Пусть уж они уже на этой панельке сразу будут привычного вида и привычного цвета.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 05.09.2012, 10:32:32
Это будет технически сложно делать (сейчас есть массив бесцветных символов, который зашит в единый bmp и из которого формируется и диалог, и идентификаторы, и отображение на графике). Чтобы ввести символы с предопределенными цветами, существующую логику придется ломать, и этого честно говоря не хотелось бы.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 05.09.2012, 13:50:33
Это будет технически сложно делать (сейчас есть массив бесцветных символов, который зашит в единый bmp и из которого формируется и диалог, и идентификаторы, и отображение на графике). Чтобы ввести символы с предопределенными цветами, существующую логику придется ломать, и этого честно говоря не хотелось бы.

Не, ну если сложно, тогда не надо. В принципе, и так вполне нормально. Не хотелось бы в погоне за "отличным" сломать "хорошее". А хотя бы треугольники такие же (пусть даже бесцветные) можно добавить без ломки логики? :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: SuperJet on 11.09.2012, 21:51:11
Как правильно прописать в коде робота так, чтобы сделка заключалась только по первому сигналу индикатора, а остальные сигналы игнорировались?
Title: Re: Вопросы новичков-непрофессионалов
Post by: vip03 on 18.09.2012, 22:47:00
Добрый день! Подскажите, плиз, при сворачивании графиков не видно их название, только первая буква и точка, как это можно исправить?
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 21.09.2012, 14:24:19
Добрый день

Так работает стандартная отрисовка Windows.
На win XP видно несколько букв в заголовке, а на win7 совсем мало.

А зачем вообще минимизировать окна?
Не проще ли сделать отдельный "экран" для графиков,
расположив их в удобном порядке.
И при необходимости переключаться между экранами
Title: Re: Вопросы новичков-непрофессионалов
Post by: SuperJet on 24.09.2012, 19:40:20
Ещё раз прошу помощи: как правильно прописать в коде робота, чтобы на FORTS сделка заключалась только по первому сигналу индикатора, а последующие сигналы индикатора роботом игнорировались. Пробовал if (getSecBalance() == 0) {.......} - не получается.
Title: Re: Вопросы новичков-непрофессионалов
Post by: ddd323 on 24.09.2012, 21:17:23
Нужно сделать флаг
PerviySignalProshol=0;

if(PerviySignalProshol==0)
{
if (условие сигнала)
{
подача заявки;
PerviySignalProshol=1;
}
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Yazik on 26.09.2012, 18:15:41
Здравствуйте.
Помогите пожалуйста создать индикатор direct movement. Я понимаю что это то же самое что и индикатор ADX с дополнительными линиями PDI, MDI, но у меня нет кодов этих индикаторов (и вообще почему то нет кодов существующих индикаторов. Подскажите где они хранятся?).
Еще очень хотелось бы создать простенький индикатор "Биржевой рентген". Помогите с написанием кода. формула простая: две гистограммы (либо как два разных индикатора. как лучше?) 1=максимум-ЕМА (13-дневное); 2=минимум-ЕМА (13-дневное).
Заранее очень благодарен
С уважением Евгений.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 27.09.2012, 11:29:15
Биржевой рентген это то же самое что и индикатор Elder Rays - его код есть в примерах в документации (http://transaq.ru/dokuwiki/atf:примеры). Код для PDI, MDI и ADX в ближайшее время вывешу тоже в примеры.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Yazik on 27.09.2012, 17:05:08
Heller, спасибо тебе огромное.
Title: Re: Вопросы новичков-непрофессионалов
Post by: sova0.08 on 22.11.2012, 21:53:24
Подскажите, пожалуйста,  что означает ругательство  " ссылка на свечу за границами массива " и как можно исправить ситуацию?
Title: Re: Вопросы новичков-непрофессионалов
Post by: bugem on 23.11.2012, 11:15:53
Подскажите, пожалуйста,  что означает ругательство  " ссылка на свечу за границами массива " и как можно исправить ситуацию?

Означает, что Вы пытаетесь получить значение свечи, которой нет на графике.
Исправить например так:

Code: [Select]
function init()
{
[b]setInitCandles(1);
setBounds(0, 1, 0);
        line[0] = 0;[/b]
}
//--------------------------------------
function calc()
{
line[0] = close - close[-1];
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 23.11.2012, 11:33:30
В массиве  сожердится некоторое количетство элементов, к которым вы получаете доступ по их индексам. Например, массив A может состоять из десяти элементов, и вы можете обращаться к его элементам как A[0], A[1], ..., A[9]. Если вы напишите что-то вроде A[-1], A[10] или A[999], то вы получите эту ошибку.
Title: Проблема с функцией IndRef
Post by: nick5 on 03.12.2012, 21:40:23
Добрый день.
Почему-то у меня нигде в коде не работает вызов IndRef("adx", 27)[1]; - появляется ошибка "Обращение к неопределенной линии промежуточного индикатора"  :(
Почему?
Title: Re: Проблема с функцией IndRef
Post by: Vasy_Ok on 03.12.2012, 23:20:59
Почему-то у меня нигде в коде не работает вызов IndRef("adx", 27)[1]; - появляется ошибка "Обращение к неопределенной линии промежуточного индикатора"  :(
Почему?
Наверное дело в кавычках. Должно быть без них.
Code: [Select]
IndRef(adx, 27)
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 04.12.2012, 13:05:07
Нет, дело точно не в этом. Кавычки нужны.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 10.12.2012, 12:18:39
Индикатор ADX состоит из одной линии (в Transaq PDI/MDI разделены как разные индикаторы), к которой можно ссылаться только как к IndRef("adx", 27)[0] (нумерация начинается с нуля).
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 10.12.2012, 16:53:29
Спасибо за ответ.
В примере где я смотрел код была ошибка - там IndRef("adx", 27)[0] нужно было.
Разбираюсь потихоньку с работой индикаторов.

Если можно еще два вопроса:

1) Вчера с неприятным удивлением обнаружил некоторые странности при работе с массивами в ATF.
Почему-то первоначально к элементам массивов нельзя обращаться по номерам как в других языках.

data = new_object("array");

data[0] = 25; //вызывает ошибку

можно только последовательно заполнять массив значениями с помощью функции data.push();

2) Можно ли в ATF как-нибудь получать цены закрытия прошедших сделок, последней, предпоследней и ранее...
Можно обращаться к прошлым свечам close[-1], close[-2], но полученная цена представляется несколько устаревшей.
Не планируется ли создание какой-нибудь getTradeTime()?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 11.12.2012, 11:14:27
В примере где я смотрел код была ошибка - там IndRef("adx", 27)[0] нужно было.
А что за пример? Можете привести ссылку на страницу? Мы поправим.

Почему-то первоначально к элементам массивов нельзя обращаться по номерам как в других языках.
Ну это так все же далеко не во всех "других языках". На языках, которых я программирую (С++, Python), это совсем не так и это имеет смысл. При этом вы совершенно не обязаны заполнять массив используя команду push - задайте вначале требуемый размер командой resize.

Про сделки рыночные пока ничего не планируем, хотя сделать вообще не сложно.
Title: Re: Вопросы новичков-непрофессионалов
Post by: trusr on 11.12.2012, 15:23:28
Здравствуйте.
Приведите пример пожалуйста выставления лимитной заявки по указанной цене на покупку и на продажу с указанием стопа.
Спасибо!
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 11.12.2012, 19:39:26
А что за пример? Можете привести ссылку на страницу? Мы поправим.
Он не на вашем сайте, у вас все в порядке.

Ну это так все же далеко не во всех "других языках". На языках, которых я программирую (С++, Python), это совсем не так и это имеет смысл. При этом вы совершенно не обязаны заполнять массив используя команду push - задайте вначале требуемый размер командой resize.
Значит не во всех  :). Спасибо все понятно
Title: Re: Вопросы новичков-непрофессионалов
Post by: bugem on 12.12.2012, 10:01:43
2trusr
Здравствуйте.
Приведите пример пожалуйста выставления лимитной заявки по указанной цене на покупку и на продажу с указанием стопа.
Спасибо!

Если в клиентском терминале TRANSAQ, то читайте справку, там все описано.
Если средствами ATF, то здесь http://www.transaq.ru/dokuwiki/ (http://www.transaq.ru/dokuwiki/) и в этом форуме примеров более чем.
RTFM, RTFM...  ;)
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 13.12.2012, 15:19:40
Доброе время суток есть опрос транзак рисует свечи к примеру 1-минутную может рисовать минуту и 10 сек при экспорте в омегу получается неверное отображение фото в файле ,как этого избежать и индикаторы адх по разному строиться
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 13.12.2012, 18:41:44
Omega формирует свечи не из тех данных, которые мы отдаем при сделке, а исходя из текущего времени, установленного на компьютере. То что вы наблюдаете на графике означает, что время вашего компьютера не синхронизировано со временем биржи.
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 14.12.2012, 08:12:55
подскажите как синхронизировать время компьютера с временем биржи,так же в руководстве ATF есть скрипт Регулярная синхронизация времени клиента со временем сервера
extern interval = 15;
 
function synchronize()
{
  setSystemTime(getServerTime());
}
 
function init()
{
  synchronize();
  setTimer("synchronize", interval * 60,  TIMER_PERIODICALLY);
}




при его использование только время начинает дергаться на виндовых часах терминала транзак а толку никакого подскажите плиз как решить эту ситуацию
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 15.12.2012, 16:17:19
подскажите как синхронизировать время компьютера с временем биржи,так же в руководстве ATF есть скрипт Регулярная синхронизация времени клиента со временем сервера
extern interval = 15;
 
function synchronize()
{
  setSystemTime(getServerTime());
}
 
function init()
{
  synchronize();
  setTimer("synchronize", interval * 60,  TIMER_PERIODICALLY);
}

при его использование только время начинает дергаться на виндовых часах терминала транзак а толку никакого подскажите плиз как решить эту ситуацию

Все новое это хорошо забытое старое :)

http://www.transaq.ru/forum/index.php?topic=913.msg4614#msg4614
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 17.12.2012, 10:11:44
увы уважаемы проблема не решена . суть в том что в омеге постройка идет четко по времени виндос а в транзаке хбз по каким критериям, товарищи разработчики уделите плиз внимание мысль такая как синхронизацию виндового времени привязать к транзаковскому
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 17.12.2012, 10:14:05
фото проблемы
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 17.12.2012, 10:36:38
ышо фото по данному вопросу, во всем виновата секунда несостыковки времени винды и времени транзак как время винды синхронизировать по времени транзак,
тобишь в настройках времени по интернету вместо time-nw.nist.gov былобы например ченить такое  transaksynh как вариант)))))))))))) помогите плиз решить эту проблему
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 17.12.2012, 13:20:50
Еще вопрос Омега выдает время на конец свечи а транзак на начало можно ли это сделать одинаковым либо транзак заставить выдавать время на конец свечи  либо омегу на начало?????????
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 17.12.2012, 14:19:07
увы уважаемы проблема не решена . суть в том что в омеге постройка идет четко по времени виндос а в транзаке хбз по каким критериям, товарищи разработчики уделите плиз внимание мысль такая как синхронизацию виндового времени привязать к транзаковскому

Транзак формирует свечи по биржевому времени сделок.

Т.е. все сделки, которые были зарегистрированы  на бирже в течение данной минуты (например, в период от 12:03:00 до 12:03:59 включительно) будут включены в свечу со временем 12:03, независимо от того, какое время установлено на компьютере и когда фактически данная сделка попала на терминал.
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 17.12.2012, 14:37:43
да это понятно !!!!!!  биржа пользует мировое эталонное время у мну синхронизация с этим эталонным временем раз в 5 секунд и все равно разные данные , долго и упорно наблюдая за транзаком  заметил что время транзака не стабильно оно как убигает вперед так и отстает я лишь хочу чтобы омега отображала копию этих данных и еще даже если взять тиковые данные которые совпадают на сто процентов индикаторы все равно разнве например  RSI (14)
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 17.12.2012, 15:45:00
Как добиться того, чтобы Омега считала индикаторы точно также, как Транзак, мы не знаем.
Title: Re: Вопросы новичков-непрофессионалов
Post by: eurusd_05 on 18.12.2012, 08:11:13
а кто бы сомневался вот если бы вы опираясь на многогранный опыт сказали бы знаем да еще без отсылок на разные ресурсы написалибы доступно в двух предложениях то я бы удивилсо!!!!!!!!!!!!!!!!!!
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 18.12.2012, 08:35:49
Омега это не часть Транзак
Консультации по Омеге не являются задачей данного форума.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 21.12.2012, 23:39:58
Добрый день.

При тестировании на истории, есть необходимость прыгнуть на час вперед по времени (относительно текущего времени).
Но отчего-то мой код не работает.
Код такой:

function calc()
{
setCurrentPosition(noCandle() + 12);
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 24.12.2012, 10:55:22
При тестировании на истории эмулируется поведение реальных торгов (конечно лишь в очень приближенном варианте). Поскольку на реальных торгах в будущее заглянуть невозможно, то и при тестировании это сделать тоже не возможно.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 24.12.2012, 12:43:14
Странно, я думал это можно сделать.

Тогда я не понимаю каково вообще назначение функций: setCurrentPosition(), noCandle(), getCandleByTime()?

На сайте нет примеров работы некоторых функций, например что делает getPeriodInfo()?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.12.2012, 08:47:07
Назначение этих функций - работать с историческими данными. Тут сложно что-то добавить. getCandleByTime обычно используется, например, когда надо понять на каком номере свечи начался день. setCurrentPosition удобно для расчетов где-то в истории. noCandle() просто дает номер свечи и активно используется в примере индикатора ZigZag, например.

getPeriodInfo возвращает хеш, который содержит название нарезки свечей и количество секунд в одной свечке: http://www.transaq.ru/dokuwiki/atf:%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B (http://www.transaq.ru/dokuwiki/atf:%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B)
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 26.12.2012, 12:39:00
Спасибо
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 30.12.2012, 23:55:38
Добрый день.

Кажется в ATF нет тернарных операторов if, таких штук: $var = (expression) ? value_1 : value_2;
А они нужны.
Можете сделать?

Скажите пожалуйста когда можно будет из ATF выставлять Стоп-заявки?
Может быть, уже можно, а я не знаю?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 08.01.2013, 09:22:50
Тернарного условного оператора нет, в принципе сделать нет большой проблемы, просто нужда в нём совершенно не очевидна по правде сказать.

Стоп заявки есть уже достаточно давно: читайте статью про заявки и сделки (http://www.transaq.ru/dokuwiki/atf:заявки_и_сделки).
Title: Re: Вопросы новичков-непрофессионалов
Post by: Роман on 08.01.2013, 13:13:01
Есть ли курсы по ATF?
Если есть, то где, сколько и расписание.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 09.01.2013, 07:52:12
Роман, курсов, к сожалению, никаких нет.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Роман on 09.01.2013, 11:28:11
Hellerу.
Я прочитал весь форум. В наличии десяток человек, или чуть больше, которые понимают темы между строк или с лёту. Я себя к ним не отношу. Мне проще понять, когда я задаю вопросы и получаю конкретные ответы. А вопросов очень много и хочется в них разобраться на конкретных примерах. 
Думаю, что многие просто стесняются Вам писать. И если Вы сможете организовать 2-х - 3-хчасовое занятие хотя бы раз в месяц в живую, то ваших сторонников прибавится существенно. Естественно, мы готовы заплатить за обучение. В разумных пределах, конечно. И ещё: по вопросам на курсах можно определить, где основные трудности с пониманием ATF и дополнить учебник.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 10.01.2013, 10:50:04
Таких планов у компании насколько я знаю нет, так что вряд ли какие-то курсы будут организовываться.

Что касается вопросов - задавайте, постараемся на всё ответить.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 12.01.2013, 11:40:16
Тернарного условного оператора нет, в принципе сделать нет большой проблемы, просто нужда в нём совершенно не очевидна по правде сказать.

Пожалуйста добавьте создание оператора в ваш план последним пунктом  ;)

А стоп-заявки оказывается уже есть, спасибо не заметил.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 13.01.2013, 11:55:44
Никак не могу снять ранее поставленный стоп-лосс.

   var stop = new_object("hash");

   stop["operation"] = OP_SELL;
   stop["sl_activationprice"] = 100;
   stop["sl_quantity"] = 1;

   trade_action::transact(stop);

Закрываю позицию и сразу нужно удалить стоп.
Перечитал все, что можно - пока даже не удается узнать id установленной стоп-заявки  :(

ATF 1.15
Title: Re: Вопросы новичков-непрофессионалов
Post by: ddd323 on 14.01.2013, 00:41:26
Со стоп-заявками никогда не работал, но по идее пока не появится АТФ 1.18 - единственный способ узнать id стопа это ловить и запоминать его в onATFStopOrder (или можно и даже лучше будет в onStopOrder начиная с АТФ 1.16), который вызовется сразу после выставления стоп-заявки, указанным Вами выше способом.
Из документации неочевидно, но может для снятия стопа Вам может быть полезным и "оружие массового поражения" в виде trade_action::cancelAllOrders() - Снять все заявки по используемой бумаге. (неочевидно снимает ли эта функция все заявки, включая стоп- заявки)

P.S. Про возможности 1.18 см. ответ 19 здесь: http://www.transaq.ru/forum/index.php?topic=1136.15 (http://www.transaq.ru/forum/index.php?topic=1136.15)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 14.01.2013, 11:12:17
Да, всё именно так, как ddd323 написал.
Title: Re: Вопросы новичков-непрофессионалов
Post by: nick5 on 14.01.2013, 15:48:26
Спасибо за ответ.

В документации четко написано, что cancelAllOrders() не работает со стоп-заявками  :(

А разве onATFStopOrder() вызывается после выставления стопа?
Из док-ции "событие изменения статуса стоп-заявки и сделки выставленной роботом", а я просто выставляю стоп - изменение статуса вроде не происходит как и исполнения заявки.

Про возможности ATF выше 1.15 я знаю и все бы уже сделал, но проклятый брокер дает только 1.15
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 14.01.2013, 16:14:10
Да, 1.15 - это конечно очень устаревшая версия уже. Вообще onATFStopOrder в ней должен срабатывать и при выставлении стопа и при его исполнении или снятии.

А что у вас за брокер? (Можно в личку).
Title: Re: Вопросы новичков-непрофессионалов
Post by: Pilgrim on 14.03.2013, 21:39:58
«Цена заявки» при выставлении стопА - это что? ...

Вопрос более чем странный, но прошу пояснить, каким должно быть значение этого поля, что бы стоп, после активации, закрылся именно по этой «Цене заявки». Т.к., что бы там не находилось, исполняется стоп «по рынку» ...

Спасибо
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 15.03.2013, 14:04:29
Я так понял что вы имеете ввиду поле sl_orderprice? В этом случае заявка будет выставлена по той цене, которую вы указали, либо по лучшей цене. Таким образом если допустим у вас активация Stop Loss на 100, сам стоп на продажу, а sl_activationprice на 101, то заявка будет выставлена по цене 101. Если же стоп на покупку при тех же равных условиях, то заявка сработает по рынку, поскольку при достижения уровня акцивации 100, рыночная цена лучше, чем цена 101 для покупки, которую вы указали.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Pilgrim on 15.03.2013, 14:35:49
Спасибо, Heller.
Я правильно понимаю, что sl_orderprice (если его использовать) лучше выставлять ближе к рынку чем sl_activationprice? И тем самым получается некий диапазон, в котором и будет выбираться «лучшая цена». При этом стоп не сработает пока цена не дойдёт до sl_activationprice, «пролетая» мимо sl_orderprice? Или же сработает на первой же встреченной цене, и что тогда будет с sl_activationprice, - он в заявку не «превратится»? ... Есть ли, вообще, смысл в sl_orderprice? ...
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 18.03.2013, 11:39:24
osle
Все верно: чтобы СТОП исполнился с бОльшей вероятностью,  sl_orderprice надо выставлять ближе к рынку, чем sl_activationprice.

Тут все просто:
sl_activationprice определяет КОГДА нужно выставить заявку,
а sl_orderprice - по какой цене ее выставить.

Понятно, что цена сделки, реализующей СТОП зависит от цен встречных заявок на Бирже в момент выставления заявки.
Если выставляется заявка "купить по 100", а на рынке в этот момент есть заявки "продать по 95", то сделка пройдет по 95.
А если в момент подачи такой заявки на Бирже есть только заявки "продать по 105", то эта заявка будет ждать до тех пор, пока не появятся желающие продать по 100 (или ниже) В этом случае сделка пройдет по 100 (т.е. по sl_orderprice)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Ruslik on 26.04.2013, 16:06:39
Добрый день.
Подскажите пожалуйста, на скрипт выходит ошибка "Ссылка на свечу за границами массива", как можно исправить?
Заранее спасибо.

#samewindow

extern n1 = 5;
extern n2 = 10;

function init()
{
   setBounds(0, n2*2, 0);
}

function calc()
{
   line[0][n2] = (high[(-n1), 0] + low[(-n1), 0] + high[(-n2), 0] + low[(-n2), 0]) / 4;
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 29.04.2013, 07:14:24
#samewindow

extern n1 = 5;
extern n2 = 10;

function init()
{
    setInitCandles(n2);  - это пропустили.

   setBounds(0, n2*2, 0);
}

function calc()
{
   line[0][n2] = (high[(-n1), 0] + low[(-n1), 0] + high[(-n2), 0] + low[(-n2), 0]) / 4;
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Ruslik on 29.04.2013, 09:28:40
#samewindow

extern n1 = 5;
extern n2 = 10;

function init()
{
    setInitCandles(n2);  - это пропустили.

   setBounds(0, n2*2, 0);
}

function calc()
{
   line[0][n2] = (high[(-n1), 0] + low[(-n1), 0] + high[(-n2), 0] + low[(-n2), 0]) / 4;
}



Спасибо за ответ, но все равно выходит ошибка: "line 13: Выход за граници при обращении к индикатору".
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 12.07.2013, 12:23:16
#line 1 nodraw
#line 0 nodraw
#line 2 nodraw
#line 3 nodraw
#line 4 nodraw
#line 5 nodraw
#line 6 solid
#line 7 nodraw
#line 8 nodraw
#line 9 nodraw


function init()
{
   setInitCandles(1);
}

function calc(){
             
line[6] = MovAvg(ind_ema, 2, pt_close);
 
if (close >= line[6]) 
  {
     signal::alert( as_string(getFORTSPosition(getClient(),getSecName()))  );
   }     


}


Очень простой вопрос. как сделать что тут не так. и как сделать чтоб выводилась позиция в диалоговое окно или куда нибудь ещё.

Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 15.07.2013, 17:27:17
А в чем именно проблема?

Из когда, который вы привели, видно, что вы не отправляете запрос на получение позиций, поэтому скорее всего у вас будет выводиться что-то вроде нуля в диалоге. С статье позиции клиента (http://www.transaq.ru/dokuwiki/atf:%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%B8_%D0%BA%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D0%B0#%D1%81%D1%80%D0%BE%D1%87%D0%BD%D1%8B%D0%B9_%D1%80%D1%8B%D0%BD%D0%BE%D0%BA_atf_116) подробно описано как получать позиции FORTS.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 17.07.2013, 02:23:37
Я хочу как то визуально увидеть позицию. просто писал роботов на споте. теперь вот хочу посмотреть как на фортсе. но такая вот нубская проблема.


#samewindow
#line 0 solid red

extern period = 9;
extern amount = 1;

function init()
{
   setInitCandles(1);
}


function calc()
{
   line[0] =  getFORTSMoney(getClient());
   
}

Например пытался вот так или с помощью getFORTSPosition(getClient(),getSecInfo())

так пишет что нечисловой параметр. как в предыдущем примере не вывод в окно информационное количество...

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

И вообще для нубов хорошо бы где нить написать где брать sec бумаги, Clientid и т.д....

 
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 17.07.2013, 05:20:25
 Сначала реквестим requestFORTSPositions(client)  позиции. потом обязательно сделайте функцию он ивент (onEnvEvent). стринг там будет (client_holdings), а в ней уже поставьте getFORTSPosition - вот и все.
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 17.07.2013, 05:22:42
А куда проще :

var pos = getBought - getSold;  (куплено минус продано)

без взяких запросов, ивентов и задержек.

Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 22.07.2013, 10:44:51
function init()
{
   setInitCandles(1);
   
}

function calc(){

var pos= getBought() - getSold() ;

signal::alert(pos);

}

Мне почему то выдаёт 0 на фортсе. хотя там 1 в купленных и 41 в проданных т.е. должно быть -40. С чем это может быть связано ?

Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 22.07.2013, 13:52:00
А вы долго ждали результата ?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 22.07.2013, 14:22:45
в смысле долго ? он выдаётся по умолчанию. это всё в терминале есть, ничего с сервера заказывать не надо вроде.

я скрипт привёл...

почему то по нему нули выдаются и на getBought и на getsold

уже как только не пробовал без толку пока
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 23.07.2013, 16:26:11
Что то запарился я ужо форум рыть... Так кто нить в курсе почему:

function calc(){
signal::alert(getBought());
}

выдаёт нули при не нулевом количестве купленных контрактов в эту сессию....
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 24.07.2013, 05:21:58
функция не работает когда после круглых скобок без отступа идет сразу фигурная. - Поставьте пробел после () , а потом {
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 24.07.2013, 16:05:20
С ФОРТСом есть оговорка, что он считает сделки не только за сегодня, но и за предыдущую вечернюю сессию, в этом не может быть причина? А что именно не работает с запросом позиций? Можете привести полный код?

White Noise, то что вы описываете как-то очень странно выглядит и я этого не наблюдаю - переносы и пробельные символы игнорируются интерпретатором ATF.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 24.07.2013, 17:59:08
А этои есть полный код :) вот он:


function init()
{
   setInitCandles(1);
    
}

function calc() {

var pos= getBought()- getSold()  ;

signal::alert(getBought());

}

Я когда понял, что возвращает нули упростил чтоб проверить исключительно getBought и getsold

выдаёт нули в таком варианте. в чём причина не могу понять. на интре там фортса нет просто на акциях выдаёт как положено. У меня транзак 5.05.305.07 rev 51 atf 1.18 от финама.

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

Я робота себе уже полностью написал всё упирается в получение позиций сейчас. поскольку хочу интрадей сделать, getBought-getsold меня бы вполне устроило для него.

Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 24.07.2013, 20:15:18
Использую вот такую конструкцию в коде на FORTS, проблем нет
Code: [Select]
var K = fmod(abs((getBought() - getSold()))/lot,2);
var N = int(K);
var M; if (fmod((getBought() - getSold())/lot,2) == 1) {M = 1;} else {M = 0;}
lotz = lot*((K+1)+M*(1-K)+ 2*N*(M-1));
подробнее http://www.transaq.ru/forum/index.php?topic=351.msg2952#msg2952 (http://www.transaq.ru/forum/index.php?topic=351.msg2952#msg2952)
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 24.07.2013, 22:45:08
Использую вот такую конструкцию в коде на FORTS, проблем нет
Code: [Select]
var K = fmod(abs((getBought() - getSold()))/lot,2);
var N = int(K);
var M; if (fmod((getBought() - getSold())/lot,2) == 1) {M = 1;} else {M = 0;}
lotz = lot*((K+1)+M*(1-K)+ 2*N*(M-1));
подробнее http://www.transaq.ru/forum/index.php?topic=351.msg2952#msg2952 (http://www.transaq.ru/forum/index.php?topic=351.msg2952#msg2952)

Рекламируете свой велосипед? :)
Или это уже Мерседес? :)
Все-таки за два года там много нового добавилось, наверно?

Кстати, как успехи у того робота с тех пор?
Много молока корова дала? :)
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 25.07.2013, 07:01:26
Кстати, я так понял что вы не на интре запускаете теперь а на реальном? 

Заметка из серии у меня такое было ))))) : Проверьте все настройки арм трейдера - который проставляет ваш ID клиента (номер счета),....потому, что если вы руками покупали - могли свой счет проставить сами, а когда работает скрипт и вверху не отображен именно нужный счет, или пустота - то скрипт берет именно эти данные. получается что не смотря, на купленные по одному счету бумаги, скрипт запрашивает баланс по другому счету.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 25.07.2013, 10:34:33
Demelkar, нет, я имел ввиду полностью код с запросом FORTSPositions - было бы интересно сравнить их.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 25.07.2013, 13:31:43
Кстати, я так понял что вы не на интре запускаете теперь а на реальном? 

Заметка из серии у меня такое было ))))) : Проверьте все настройки арм трейдера - который проставляет ваш ID клиента (номер счета),....потому, что если вы руками покупали - могли свой счет проставить сами, а когда работает скрипт и вверху не отображен именно нужный счет, или пустота - то скрипт берет именно эти данные. получается что не смотря, на купленные по одному счету бумаги, скрипт запрашивает баланс по другому счету.

Спасибо дело оказалось именно в этом :) Наверху был выставлен не тот счёт. Поскольку в ручной торговле переставлять счёт там не требуется, как то не задумывался над этим.

теперь осталось только нарыть как автоматически подключать нужный счёт в скрипте

Title: Re: Вопросы новичков-непрофессионалов
Post by: nxz on 25.07.2013, 18:33:24
Рекламируете свой велосипед? :)
Или это уже Мерседес? :)
Все-таки за два года там много нового добавилось, наверно?

Кстати, как успехи у того робота с тех пор?
Много молока корова дала? :)

Доброго времени суток Олег!

К сожелению этот велосипед Мерседесом не стал, но поскольку он был первым большим (для меня) проектом, мне нравится все то что я в нем планировал сделать.

Этот велосипед я забросил (т.е. запостил здесь ;)) и перешел на уровень мопеда :D, педали крутить уже не надо, но коптит... ;D

К сожелению корова почему-то мне вместо молока, простоквашу давала... ??? Хозяйн её не правильно выгуливать выпускал >:(
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 26.07.2013, 09:43:38
Demelkar, функция setClient() выставляет счет. Только его тогда надо выставлять в начале каждого вызова calc(), либо перед непосредственным запросом позиций/торговлей.
Title: Re: Вопросы новичков-непрофессионалов
Post by: White Noise on 26.07.2013, 10:47:07
Либо сначала выбрать счет, и торговать, а потом главное конфигурацию сохранить. И в следующий раз он сам проставляется в окошке счет.
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 01.08.2013, 21:46:17
Я таки сделал робота с контролем позиций и т.д. на фортсе, шпилит нормально.

Только такой вопрос. Использовал MacD гистограмму.

Вот начало кода:

"#line 0 nodraw
#line 1 nodraw
#line 2 colored_hist
#line 3 solid blue

function init()
{
   setInitCandles(1);

}


function calc()
{
line[0] = MovAvg(ind_ema,12, pt_close)-MovAvg(ind_ema, 26, pt_close);
line[1] = MovAvg(ind_ema,9, line[0]);
line[2]= line[0]-line[1];}"

Получается нормальная гистограмма на графике. Но есть проблема. Когда терминал отключается (соединенние с сервером отключается). А затем снова включается в дополнительном окне под графиком, там где был робот, становится пусто.

Чтобы в нём появилась гистограмма, приходится вырубать это окно и снова жать "добавить индикатор"

В роботе на споте такого вроде не было.

Не подскажите в чём может быть причина ? Хотелось бы чтобы всё нормально запускалось сами с включением терминала
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 09.08.2013, 09:20:17
Ну что таки никто не в курсе как сделать так чтобы индикатор каждый раз с пустым окном не появлялся, чтоб не приходилось каждый раз закрывать его и открывать ?
Title: Re: Вопросы новичков-непрофессионалов
Post by: ddd323 on 09.08.2013, 10:08:55
конфигурацию транзака с роботом в этом окне то вы сохранили? у меня робот в том же подокне что и график цены и всегда четко восстанавливается
Title: Re: Вопросы новичков-непрофессионалов
Post by: Demelkar on 09.08.2013, 16:48:51
Всё понял спасибо... Была сохранена конфигурация видимо с окном цены только.... пересохранил прямо с роботом всё при подключении нормально восстанавливается...
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 27.08.2013, 11:41:11
Добрый день!
Вопрос новичка по языку ATF. Нигде не смог найти в документации. Что означает конструкция high[p, 0], когда в квадратных скобках два числа через запятую?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 27.08.2013, 16:30:41
mehtrader, это означает максимальное значение в некотором интервале. Конкретно high[-p,0] даст максимум за последние p+1 свечей, включая текущую (если p положительное, то скорее всего возникнет ошибка, что вы пытаетесь провести расчет по данным в будущем).
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 30.08.2013, 15:41:03
Спасибо за ответ!
Можно еще один вопрос. Как посчитать ATR(5) - по пяти дневным свечкам, когда робот запущен на минутном графике?
Может есть простое решение, неохота велосипед изобретать. К примеру, в TradeStation это вычисляется в одну строчку, добавлением на график того же инструмента в масштабе daily и вызовом ATR(5) of Data2. Есть возможность сделать здесь подобную штуку?
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 31.08.2013, 17:16:53
Разобрался с вопросом выше. В процессе сделал индикатор Day Open-High-Low-Close. Ниже код, может кому пригодится.

Code: [Select]
// Day OHLC - for intraday chart

#samewindow
#line 0 solid blue
#line 1 solid green
#line 2 solid red
#line 3 solid black

var OpenD; // arrays to hold daily data
var HighD;
var LowD;
var CloseD;

var day; // current day
var month;
var year;

var prev_day; // prev day
var prev_month;
var prev_year;

function init()
{
setInitCandles(2*14*60);
setBounds(0, 2*14*60, 0); // for 1-min chart

// create arrays
OpenD = new_object("array");
HighD = new_object("array");
LowD = new_object("array");
CloseD = new_object("array");

day = getDay(getCandleTime());
month = getMonth(getCandleTime());
year = getYear(getCandleTime());

prev_day = day;
prev_month = month;
prev_year = year;
}

function calc()
{
if (getDay(getCandleTime()) != day)
{
day = getDay(getCandleTime());
month = getMonth(getCandleTime());
year = getYear(getCandleTime());

setCurrentPosition(getCandleByTime(getTimeObject(10,00,day,month,year)) - 1);

OpenD.push(open[-(noCandle() - getCandleByTime(getTimeObject(10,01,prev_day,prev_month,prev_year)))]);
HighD.push(high[-(noCandle() - getCandleByTime(getTimeObject(10,01,prev_day,prev_month,prev_year))),0]);
LowD.push(low[-(noCandle() - getCandleByTime(getTimeObject(10,01,prev_day,prev_month,prev_year))),0]);
CloseD.push(close);

restoreCurrentPosition();

prev_day = day;
prev_month = month;
prev_year = year;
}

if(OpenD.size() > 1)
{
line[0] = OpenD[OpenD.size() - 1];
line[1] = HighD[HighD.size() - 1];
line[2] = LowD[LowD.size() - 1];
line[3] = CloseD[CloseD.size() - 1];
}
}
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 03.09.2013, 16:48:10
Добрый вечер!
Еще один вопрос новичка. При перезагрузке терминала глубина истории на графике каждый раз сбрасывается. График 1 мин. Для работы стратегии нужна история в 7 дней минимум. Как сделать, чтобы глубина загруженной истории не уменьшалась?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 04.09.2013, 09:48:32
mehtrader, просто сохраните конфигурацию еще раз с нужным вам количеством истории.
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 04.09.2013, 10:21:35
Я так и делаю. Жму на стрелочку в правом нижнем углу пока она не станет серым прямоугольником. Потом сохраняю конфигурацию. Затем закрываю transaq и открываю снова. Подцепляется последняя конфигурация, а на графике по-прежнему мало баров...
Title: Re: Вопросы новичков-непрофессионалов
Post by: Anatoly Utkin on 04.09.2013, 10:50:00
Насколько я экспериментировал--никак. Максимум, чего можно добиться--графики--параметры--начальное число свечей присвоить 999 (это максимум). Вот эти 999 свечей она и выведет при загрузке.
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 04.09.2013, 11:00:05
Спасибо Анатолий! Я к такому же выводу после опытов пришел.
Просьба к разработчикам: можно увеличить 999 в настройках? Еще девятку хотя бы добавить, чтобы 9999 стало?
Title: Re: Вопросы новичков-непрофессионалов
Post by: Heller on 04.09.2013, 12:38:08
Да, нашли в этом месте ошибку, правим.
Title: Re: Вопросы новичков-непрофессионалов
Post by: klimov on 10.09.2013, 09:22:41
Добрый вечер!
Еще один вопрос новичка. При перезагрузке терминала глубина истории на графике каждый раз сбрасывается. График 1 мин. Для работы стратегии нужна история в 7 дней минимум. Как сделать, чтобы глубина загруженной истории не уменьшалась?

После того, как загрузите нужное кол-во свечей в график
сохраните конфигурацию экрана (меню "Файл" или икона "дискетка" на тулбаре)

Также в меню "Графики", "параметры" можно увеличить значение в поле "Начальное кол-во свечей"
Title: Re: Вопросы новичков-непрофессионалов
Post by: mehtrader on 10.09.2013, 10:40:45
Да, спасибо. В последнем релизе вроде бы все правильно работает.
Title: Re: Вопросы новичков-непрофессионалов
Post by: adobarin on 08.10.2013, 13:16:32
Недавно начал изучать ATF, пробовал написать простые ТС. Начал тренироваться на демо-счёте. Написал скрипт, которые торгует по скользящим средним и параболику. Все работало отлично. Решил перейти на реальный счет и тут начались проблемы. На реальном счёте почему-то не работает торговля в шорт(транзак на это вообще никак не реагирует, не выдаёт никаких ошибок или предупреждений), а при покупке акций если указано купить 1 лот, то он покупает по 1 лоту до тех пор, пока не наберёт на всю сумму моего счета. На демо счете и на реальном счете транзак разных версий. Может ли быть проблема в этом?
Вот сам скрипт:

#samewindow
#line 0 dot maroon
#line 1 solid red
#line 2 solid green
 
extern step = 0.02;
extern init_step = 0.02;
extern max_step = 0.20;
 
var ac;
var trend;
var ep;
var r=0; // переменная-флаг

 
function init()
{
   setInitCandles(1);
   if (low < low[1]) {
      trend = 1;
      ep = high[0, 1];
      line[0] = low;
   }
   else {
      trend = -1;
      ep = low[0, 1];
      line[0] = high;
   }
   ac = init_step;
}
 
function calc()
{  //тут описывается параболик
   if (trend == 1) {
      if (high > ep) {
         ep = high;
         ac += step;
         if (ac > max_step) {ac = max_step;}
      }
      line[0] = line[0][-1] + ac * (ep - line[0][-1]);
      if (low < line[0]) {
         trend = -1;
         line[0] = ep;
         ep = low;
         ac = init_step;
      }
   }
   else
               {
      if (low < ep)
                               {
         ep = low;
         ac += step;
         if (ac > max_step) {ac = max_step;}
      }
      line[0] = line[0][-1] + ac * (ep - line[0][-1]);
      if (high > line[0])
                               {
         trend = 1;
         line[0] = ep;
         ep = high;
         ac = init_step;
      }
   }
// задаю свои скользящие средние
line[1] = MovAvg(ind_ema, 13, pt_close);
line[2] = MovAvg(ind_sma, 60, pt_close);

if(r==0) //я в кэше(нет открытых позиций)
{
 if(line[1] > line[2] and line[1][-1]>line[2][-1] and trend==1) //красная скользящая выше зеленой скользящей и параболик под ценой
 {
 r=1; //изменяю значение флага
 trade_action::buy(1, ::lots); //лонг на 1 лот
 }
 if(line[1] < line[2] and line[1][-1]<line[2][-1] and trend==-1) //красная скользящая ниже зеленой скользящей и параболик над ценой
 {
 r=2;  //изменяю значение флага
 trade_action::sell(1, ::lots); // шорт на 1 лот
 }

}

if(r==1)//открыт лонг
{
 if(trend==-1) // параболик стал выше цены
 {
 r=0; //сбрасываю значение флага на 0
 trade_action::sell(1, ::lots); //закрываю лонг
 }
}

if(r==2)//открыт шорт
{
 if(trend==1) // параболик стал ниже цены
 {
 r=0; //сбрасываю значение флага на 0
 trade_action::buy(1, ::lots); //закрываю шорт
 }
}

}
Title: Re: Вопросы новичков-непрофессионалов
Post by: Олег on 09.10.2013, 15:06:38
Недавно начал изучать ATF, пробовал написать простые ТС. Начал тренироваться на демо-счёте. Написал скрипт, которые торгует по скользящим средним и параболику. Все работало отлично. Решил перейти на реальный счет и тут начались проблемы. На реальном счёте почему-то не работает торговля в шорт(транзак на это вообще никак не реагирует, не выдаёт никаких ошибок или предупреждений), а при покупке акций если указано купить 1 лот, то он покупает по 1 лоту до тех пор, пока не наберёт на всю сумму моего счета. На демо счете и на реальном счете транзак разных версий. Может ли быть проблема в этом?
Вот сам скрипт:

#samewindow
#line 0 dot maroon
#line 1 solid red
#line 2 solid green
 
extern step = 0.02;
extern init_step = 0.02;
extern max_step = 0.20;
 
var ac;
var trend;
var ep;
var r=0; // переменная-флаг

 
function init()
{
   setInitCandles(1);
   if (low < low[1]) {
      trend = 1;
      ep = high[0, 1];
      line[0] = low;
   }
   else {
      trend = -1;
      ep = low[0, 1];
      line[0] = high;
   }
   ac = init_step;
}
 
function calc()
{  //тут описывается параболик
   if (trend == 1) {
      if (high > ep) {
         ep = high;
         ac += step;
         if (ac > max_step) {ac = max_step;}
      }
      line[0] = line[0][-1] + ac * (ep - line[0][-1]);
      if (low < line[0]) {
         trend = -1;
         line[0] = ep;
         ep = low;
         ac = init_step;
      }
   }
   else
               {
      if (low < ep)
                               {
         ep = low;
         ac += step;
         if (ac > max_step) {ac = max_step;}
      }
      line[0] = line[0][-1] + ac * (ep - line[0][-1]);
      if (high > line[0])
                               {
         trend = 1;
         line[0] = ep;
         ep = high;
         ac = init_step;
      }
   }
// задаю свои скользящие средние
line[1] = MovAvg(ind_ema, 13, pt_close);
line[2] = MovAvg(ind_sma, 60, pt_close);

if(r==0) //я в кэше(нет открытых позиций)
{
 if(line[1] > line[2] and line[1][-1]>line[2][-1] and trend==1) //красная скользящая выше зеленой скользящей и параболик под ценой
 {
 r=1; //изменяю значение флага
 trade_action::buy(1, ::lots); //лонг на 1 лот
 }
 if(line[1] < line[2] and line[1][-1]<line[2][-1] and trend==-1) //красная скользящая ниже зеленой скользящей и параболик над ценой
 {
 r=2;  //изменяю значение флага
 trade_action::sell(1, ::lots); // шорт на 1 лот
 }

}

if(r==1)//открыт лонг
{
 if(trend==-1) // параболик стал выше цены
 {
 r=0; //сбрасываю значение флага на 0
 trade_action::sell(1, ::lots); //закрываю лонг
 }
}

if(r==2)//открыт шорт
{
 if(trend==1) // параболик стал ниже цены
 {
 r=0; //сбрасываю значение флага на 0
 trade_action::buy(1, ::lots); //закрываю шорт
 }
}

}

http://www.transaq.ru/forum/index.php?topic=1686.0