Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Октября 07, 2024, 04:29:56 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Не выставляются заявки на FORTS « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Не выставляются заявки на FORTS  (Прочитано 3501 раз)
oleg56
Newbie
*
Сообщений: 15


Просмотр профиля Email
« : Марта 02, 2021, 06:34:33 pm »

Помогите пжста.
Беру стандартный пример кода, вставляю, размещаю на инструменте (фьючерсе), нажимаю иконку - становится зеленой.
Однако, заявки не выставляются.  Ничего не происходит абсолютно.
Заранее спасибо!

// Данная демонстрационна стратегия продает
// при любом движении цены вверх на step_percent
// процентов и покупает при движении цены вниз
// на step_percent процентов в ожидании коррекции.
// При этом используются лимитированные заявки,
// постоянно выставлено пять-шесть лимитированных
// заявок на одинаковом расстоянии. Смотрите
// результаты тестировщика ATF для более наглядного
// представления.
 
 
extern step_percent = 0.003;
extern num = 5;
extern amount = 1;
 
var step;
static buy_count = 0;
static sell_count = 0;

function init()
{
   step = step_percent / 100;
}
 
function buy(var price)
{
   trade_action::buyMultiple(amount, ::lots, price);
   buy_count += 1;
}
 
 
function sell(var price)
{
   trade_action::sellMultiple(amount, ::lots, price);
   sell_count += 1;
}
 
function setOrders()
{
   var i = 1;
   while (i <= num) {
      buy(close * (1 - i*step));
      sell(close * (1 + i*step));
      i += 1;
   }
}
 
function onHistoryCalculated()
{
   setOrders();
}
 
function onATFOrder(var id)
{
   var order = getOrder(id);
   if (order["status"] == OS_MATCHED) {
      if (order["operation"] == OP_BUY) {
         buy_count -= 1;
         var newprice = order["price"] * (1 - step * num);
         var oldprice = order["price"] * (1 + step);
         if (buy_count < num) {buy(newprice);}
         sell(oldprice);
      }
      else {
         sell_count -= 1;
         var newprice = order["price"] * (1 + step * num);
         var oldprice = order["price"] * (1 - step);
         if (sell_count < num) {sell(newprice);}
         buy(oldprice);
      }
   }
}
« Последнее редактирование: Марта 04, 2021, 05:41:12 pm от oleg56 » Записан
oleg56
Newbie
*
Сообщений: 15


Просмотр профиля Email
« Ответ #1 : Марта 04, 2021, 05:40:55 pm »

Заявки не выставляются только для FORTS. На ММВБ выставляются.
Записан
Almaz
Newbie
*
Сообщений: 20


Просмотр профиля Email
« Ответ #2 : Марта 06, 2021, 12:57:52 pm »

У нас все работает, фьючи, акции, акции США
В коде разбираться лень, судя по нему Вы только начали/начинающий или не программист
Записан
oleg56
Newbie
*
Сообщений: 15


Просмотр профиля Email
« Ответ #3 : Марта 06, 2021, 06:50:14 pm »

Да, я начинающий.
У меня ММА счет от финама.

Упростил код до trade_action::buy(1, ::lots);

На рынке акций заявки выставляются.
Тот же самый код на фьючах не работает!
Записан
oleg56
Newbie
*
Сообщений: 15


Просмотр профиля Email
« Ответ #4 : Марта 06, 2021, 07:10:11 pm »

При ручном выставлении заявки с графика правой кнопкой - код клиента в окне заявки подставляется верно, с этим проблем нет.
Записан
Almaz
Newbie
*
Сообщений: 20


Просмотр профиля Email
« Ответ #5 : Марта 08, 2021, 03:25:14 pm »

Вам придется стать программистом или нанимать/совместно работать с кем либо.
Люди отмалчиваются потому что каждый день появляются новые авторы которые знают золотую грааль но вот, обычно то денег не хватает то навыков программирования, про третье молчу. Говорить об этом прямо - вызвать негативный поток на себя. Кому это надо? Поэтому проще не замечать/отмолчаться.
Про среду ATF с моей точки зрения самая простая среда программирования, жаль что больше не поддерживается и не такая документированная как Квик. Есть другие но они стоят денег и к сожалению дарят только иллюзию.
Вам как автору нужно доказать свой успех торгуя руками, и тогда Вы можете сказать вот Common там моя стратегия ХХХ за год заработала УУУ%. Не хватает только автоматизации.
Про открытие закрытие позиции смотрите http://www.transaq.ru/dokuwiki/atf:%D0%B7%D0%B0%D1%8F%D0%B2%D0%BA%D0%B8_%D0%B8_%D1%81%D0%B4%D0%B5%D0%BB%D0%BA%D0%B8
Можно предположить что Вы указали не правильный целевой счет/он же клиент или в заявке содержатся некорректные данные, или Ваш счет не предназначен для торговли акциями или еще что то...
Записан
Almaz
Newbie
*
Сообщений: 20


Просмотр профиля Email
« Ответ #6 : Марта 08, 2021, 03:34:32 pm »

onATFOrder(id) - событие изменения статуса заявки выставленной роботом; в качестве id передается номер транзакции.(устарело в ATF 1.16)
То есть Вы еще используете устаревшие функции, которые могут не работать
Если копнуть глубже: То код написанный для одного Сервера например Финам, может не работать на Финам Банке так как у них другая версия сервера (словоблудие)
Записан
oleg56
Newbie
*
Сообщений: 15


Просмотр профиля Email
« Ответ #7 : Марта 08, 2021, 04:23:37 pm »

Спасибо, буду копать в эту сторону
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Не выставляются заявки на FORTS « предыдущая тема следующая тема »
Перейти в:  


Войти

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