Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Попытки роботизировать SmartTrade Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Вт Сен 13, 2011 12:56 pm Ответить с цитатой Вернуться к началу

Ну вот собственно... Выставил торговлю фучем Сбера 10 лотами, после входа-выхода робот благополучно прописал нулик в файл, а на счету валялось 8 лотов, так и не нашёдших своего покупателя, торговля по рынку была...
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Сен 13, 2011 1:55 pm Ответить с цитатой Вернуться к началу

Какого робота использовал и дай плиз файл robot_log.it

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
belin



Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user

СообщениеДобавлено: Вт Сен 13, 2011 9:19 pm Ответить с цитатой Вернуться к началу

kosbar писал(а):
Ну вот собственно... Выставил торговлю фучем Сбера 10 лотами, после входа-выхода робот благополучно прописал нулик в файл, а на счету валялось 8 лотов, так и не нашёдших своего покупателя, торговля по рынку была...

Это на тестовом сервере? Из 10 маркет заявок 2 исполнились, остальные нет? В СмартТрейде в таблице всех заявок( не только активных, а всех за день) это должно быть отражено, если не на тестовом, то с номерами заявок в клиентский отдел.
У меня на тестовом было: маркет заявки висели по 2 часа без исполнения на ФОРТСЕ. Принята, но не исполнена, потом исполняется в самый ненужный момент. Я тогда перешел на лимитные, если для фьючерса на индекс РТС ставить лимитную на 200 внутрь рынка, т.е. закрытие прошлого бара плюс/минус 200 для покупки/продажи, то даже с тестовым диким спредом исполнялось всегда по 60-100 раз в день. Для контроля открывай "все заявки" в смарттрейде и первое время смотри и там и лог файл робота, пока стабильно не заработает.
Олег, похоже, кроме меня появился ещё человек интересующийся контролем прохождения заявок. Может пора продолжить работу над плагином?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вт Сен 13, 2011 11:05 pm Ответить с цитатой Вернуться к началу

Да и сам давно собираюсь.
Ну вот вроде дочь в Чехию на учебу отправил. Жена с Чехии вернулась. Все гости вроде после этого уже пришли...
Пора начинать...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Ср Сен 14, 2011 11:22 am Ответить с цитатой Вернуться к началу

000 писал(а):
Какого робота использовал и дай плиз файл robot_log.it
Я тут было сначала файл с роботом кинул (который я не трогал совсем), потом только перечитал и понял, что нужен лог-файл. Его я уже подчистил, но на сколько помню, там всё было симпатишно, купили-продали, без эксцессов в общем.
000 писал(а):
Да и сам давно собираюсь.
Ну вот вроде дочь в Чехию на учебу отправил. Жена с Чехии вернулась. Все гости вроде после этого уже пришли...
Пора начинать...
Главное Олег глянь мою систему построения кода через цикл for! Smile А то блин хотел столько всего понавесить на свой "шкилетик" и не вышло, прям досада...
Может Томашу накалякать?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Сен 14, 2011 10:59 pm Ответить с цитатой Вернуться к началу

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

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Чт Сен 15, 2011 10:12 am Ответить с цитатой Вернуться к началу

000 писал(а):
Я почему спросил. Я там несколько раз писал дополнения для робота потому, что изначально было с ошибками. А конечный код без ошибок не помню выкладывал или нет. Может у тебя не правильный? Ну и лог полюбому нужен.

Вот тогда робот. Логи будут сегодня к вечеру, надеюсь.
И вопрос из серии про циклы, а как организовать стопы? Шибко не понятно как, например, профит-стопы осуществить.
Видимо нужно buy[i] - ловить этот i индекс и от него заряжать стоп-профит?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Сен 15, 2011 6:12 pm Ответить с цитатой Вернуться к началу

kosbar писал(а):

Видимо нужно buy[i] - ловить этот i индекс и от него заряжать стоп-профит?

Да. Запоминаешь цену входа и от неё пляшешь.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Чт Сен 15, 2011 7:20 pm Ответить с цитатой Вернуться к началу

000 писал(а):
kosbar писал(а):

Видимо нужно buy[i] - ловить этот i индекс и от него заряжать стоп-профит?

Да. Запоминаешь цену входа и от неё пляшешь.

А как же стоп-приказы? Не подойдут?
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Сен 15, 2011 10:17 pm Ответить с цитатой Вернуться к началу

kosbar писал(а):
000 писал(а):
kosbar писал(а):

Видимо нужно buy[i] - ловить этот i индекс и от него заряжать стоп-профит?

Да. Запоминаешь цену входа и от неё пляшешь.

А как же стоп-приказы? Не подойдут?

???
Если стоп и профит фиксированные, то цена входа +- и получаем стоп и профит.
На форуме точно были примеры.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Сен 15, 2011 10:53 pm Ответить с цитатой Вернуться к началу

Робот почти нормальный. Лучше используй этот
Код:

 Filter = 1;
 NameForPos = "";
 TimeFrame = 0;    // тайм фрейм в секундах.
 Accaunt   = "ST7194-RF-01";

 Tickers = "RIU1,SRU1"; // торгуемые символы через запяту, для контроля.
 ///////////////
 // Размер лотов и коды символов.
 /////////////
 if(Name() == "RIU1")
 {
   NameForPos = "RIU1";  // это для записи файла с текущей позицией,
      //на случай если имя бумаги в ами содаержат запрещённые символы
   Lots     = 1;
   Code  = "RTS-9.11_FT";
 }
 else if(Name() == "SRU1")
 {
   NameForPos = "SRU1";  // это для записи файла с текущей позицией,
      //на случай если имя бумаги в ами содаержат запрещённые символы
   Lots     = 10;
   Code  = "SBRF-9.11_FT";
 }

 ////////// функции //////////
 function ReadPos() {
   fh = fopen( NameForPos + "_robot.it", "r");
   if( fh ) {
     p = fgets( fh );
     p = StrToNum(p);
   }
   else {
     fh = fopen( NameForPos + "_robot.it", "w");
     fputs( "0", fh);
     p = 0;
   }
   fclose( fh );

   return p;
 }

 procedure WritePos( q ) {
   fh = fopen( NameForPos + "_robot.it", "w");
   fputs( NumToStr( q, 1.0, False ), fh);
   fclose( fh );
 }

 procedure LogWrite(s) {
   fh = fopen( "robot_log.it", "a");
   s = s + "\n";
   fputs( s, fh);
   fclose( fh );
 }

 pos = ReadPos();
  str = Now(0) + "  " + Name();

  procedure order(bs) {

    M = ITOrder(Accaunt, Code, bs, 1, 1, 0, Lots, 0);
    AddTextColumn(M, "номер ордера");
    N = ITOrderMessage();
    AddTextColumn(N, "ответ IT Trade");

    if(StrToNum(M) > 0) {
           str = str + "  заяка исполнена" + " ответ сервера=" + N + " номер заявки=" + M;
         if(pos > 0 AND bs == 2)             {   // закрытие лонга
              WritePos(0);
           }
           else if(pos == 0 AND bs == 3)      {   // шорт
              WritePos(-1*Lots);
           }
           else if(pos < 0 AND bs == 4)       {   // закрытие шорта
              WritePos(0);
           }
           else if(pos == 0 AND bs == 1)    {   // лонг
              WritePos(Lots);
           }
           str = str + "  заявка исполнена";
     }
     else {
           str = str + "  заявка НЕ исполнена" + " ответ сервера=" + N + " номер заявки=" + M;
     }
  }
 ///////////// проверка наличие символа в списке для торговли ////////////////
 k = 0;
 Permit_Ticker = False;
 do {
   Tick = StrExtract(Tickers, k);
   k++;
   if(Name() == Tick)
     Permit_Ticker = True;
 } while(Tick != "");

 //////////////Система///////////////
b1 = Open + 5;
b2 = Open - 5;

BuyPrice = b1;
CoverPrice = b1;
SellPrice = b2;
ShortPrice = b2;

Buy = High > b1;
Sell = Low < b2;

Short1 = 0;
Cover1 = 0;

Buy1 = ExRem(Buy,Sell);
Sell1 = ExRem(Sell, Buy);
 //////////////система///////////////

 AddColumn( C[BarCount-1], "цена", 1.2, colorDefault, colorDefault, 70 );
 AddColumn( pos, "позиция", 1.0, colorDefault, IIf(pos > 0, colorGreen, colorDefault), 60);

 if (TimeFrame == Interval() AND Permit_Ticker)
 {
    if(Buy1[BarCount-1] AND pos == 0) {
       order(1);
       str = str + "  Buy";
       AddTextColumn("Buy", "Buy");
       LogWrite(str);
    }
    else if(Sell1[BarCount-1] AND pos > 0) {
       order(2);
       str = str + "  sell";
       AddTextColumn("Sell", "Sell");
       LogWrite(str);
    }
    if(Short1[BarCount-1] AND pos == 0) {
       order(3);
       str = str + "  Short";
       AddTextColumn("Short", "Short");
       LogWrite(str);
    }
    else if(Cover1[BarCount-1] AND pos < 0) {
       order(4);
       str = str + "  Cover";
       AddTextColumn("Cover", "Cover");
       LogWrite(str);
    }

 }
 else if(TimeFrame != Interval()) {
    PopupWindow( "Не соответствует временной интервал в АА и в коде",
                      "ошибка", timeout = 5, left = -1, top = -1 ); }


и давай лог и комментарии что не так.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
belin



Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user

СообщениеДобавлено: Чт Сен 15, 2011 11:59 pm Ответить с цитатой Вернуться к началу

Только выставь нормально
Код:

TimeFrame = 0;    // тайм фрейм в секундах.

Ну, и новые тикеры во всех вхождениях. И новые обращения к фьючерсам типа RIZ1=RTS-12.11_FT в функции подачи заявки.
Посмотреть профиль Отправить личное сообщение
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Ср Сен 21, 2011 11:56 am Ответить с цитатой Вернуться к началу

Короче попробовал я 5 лотов по фучуСбера и иногда не проходят заявки, в Смарте пишут:
SendAddOrder: не возомжно создать команду, возможно используются не верные схемы сообщений MQ timeout code -2147196924 На сколько знаю это вроде глюки связанные с демо счетом...
и второй вариант ошибки:
Не разрешена встречная заявка на один счет и/или ИНН. С этим сложнее...
Логи не ложу, в них всё чисто, кроме первой строки:
21.09.2011 12:51:46 SRZ1 заявка не исполнена ответ сервера =возможно неправильный символ BuyТоже не нахожу объяснения.
Т.к. за работой робота не следил глазами, понять где мой счет ушёл в +2 лота по Сберу нет никакой возможности.

Надо наверное не на демо пробовать? С ним чо-то косяков много.
Посмотреть профиль Отправить личное сообщение ICQ Number
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Сен 21, 2011 1:28 pm Ответить с цитатой Вернуться к началу

Я когда свой Алоровский робот отлаживал тупо гонял 1 фьюч газпрома туда сюда. На реале естественно.
В смарте у меня счета нет поэтому ничего сказать не могу. Может надо техподдержку их попытать ?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
kosbar



Зарегистрирован: 17.03.2009
Сообщения: 356

СообщениеДобавлено: Ср Сен 21, 2011 11:53 pm Ответить с цитатой Вернуться к началу

два раза запускал робота сегодня, оба раза первая строка в логах:
21.09.2011 19:42:33 SRZ1 заявка не исполнена ответ сервера =возможно неправильный символ Buy

По поводу тестов, кину я наверное на iT денег, демо всё-таки слишком разнится с реалом та же работа до 22-00 по Мск напрягает. надеюсь в роботе троянов нету? Smile))))
И тут листая ветку форума на http://www.itinvest.ru обнаружил, что там у людёф не до конца история грузится:
http://www.itinvest.ru/forum/index.php?showtopic=63382&st=240&p=261177&#entry261177
С этим как у вас?
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen