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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 09, 2008 5:06 pm Ответить с цитатой Вернуться к началу

"PRICE=" +NumToStr(sprice, IIf(TickSize ==0.01,format=1.2,format=1.0), separator=False)+"; " +

Так как я понимаю тоже не правильно. Колво лотов стало нормальным, теперь с TickSize осталось разобраться

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 09, 2008 9:44 pm Ответить с цитатой Вернуться к началу

Код:
///////// Установки ///////////

TimeFrame      = 60;                  // таймфрейм в минутах.
Account         = "L01-00000F00";   // ваш аккаунт на бирже
Client         = "34545";            // код клиента
Lots =
IIf(Name() == "GAZP", 22,
IIf(Name() == "LKOH", 3,
IIf(Name() == "GMKN",1,
IIf(Name() == "SBER03",95,
IIf(Name() == "ROSN",26,
2))));                 // сколько лотов желаете торговать
Otstup         = 0.1;                     // в процентах. заявка будет выставлена хуже текущей цены на столько процентов
FileName      ="D:/tranzi/trans.tri"; // слэши прямые!!! имя файла с транзакциями для квика
Bublgum = IIf(Name() == "RIM8", 1.0,1.2);


////////// Правила системы ///////////////





//////////// Формируем транзакцию.//////////////
////////////////////////////////////////////////
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////

Classcode = GroupID(1);



procedure savetrifile(stransid,sstr)
{
   f = fopen(FileName, "r");
   found = 0;
   if(f)
   {
      while(!feof(f))
      {
         s = fgets(f);
         if(StrFind( s, stransid) > 0) found = 1;
      }
      fclose(f);
   }
   if (NOT found)
      {
         f = fopen(FileName, "a");
            if(f)
            {
               fputs(sstr+"\n",f);
               fclose(f);
            }
      }
}

function makeandsave(sOper, operID, sprice)
{
   CCS="";
   if (Client != "")  CCS="CLIENT_CODE="+Client+";";

   transid = "TRANS_ID=" +FullName() + NumToStr(operID, format=1.0) + LastValue(TimeNum())+"; ";



   str = transid   +
"PRICE="         +NumToStr(sprice, format = Bublgum, separator=False)+"; " + "QUANTITY="      +NumToStr(Lots, format = 1.0)+"; "+
   "OPERATION="   +sOper+"; "+
   "CLASSCODE="   +Classcode+"; "+
   "ACTION="         +"NEW_ORDER; "+
   "TYPE="            +"L; "+
   "SECCODE="      +Name()+"; "+
   "ACCOUNT="      +Account+"; "+
   CCS;

   savetrifile(transid, str);
}

if (TimeFrame == Interval()/60 & FullName() != "")
{
   if(Buy)
   {
     price=(1+Otstup/100)*Close[BarCount-1];
      makeandsave("B", 1, price);
   }
   if(Sell)
   {
      price=(1-Otstup/100)*Close[BarCount-1];
      makeandsave("S", 2, price);
   }
   if(Short)
   {
      price=(1-Otstup/100)*Close[BarCount-1];
      makeandsave("S", 3, price);
   }
   if(Cover)
   {
      price=(1+Otstup/100)*Close[BarCount-1];
      makeandsave("B", 4, price);
   }

}//// mehanizator (c) 2004, ссылки мне запрещены
//// 000 (c) 2008, реклама покоцана мной


Олег посмотри здесь, это вроде итоговый вариант с учетом фортс и спот. Решил проблему по дурацки, но хоть так, в плане торговля фьючем индекса и 5 бумагами на споте (счет единый). Когда определю каким фьючем добью его в лоты и в базу пока забил RIM8. Кстати, а больше ничего делать не нужно, может еще есть какаято особенность торговли между спотом и фьючами. И еще как я понимаю, если мин шаг будет например 100р, то это будет выглядить так Bublgum = IIf(Name() == "RIM8", 3.0,1.2);

_________________
Юра

Последний раз редактировалось: commenced (Вт Июн 10, 2008 11:22 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 09, 2008 10:21 pm Ответить с цитатой Вернуться к началу

Ниче не понял, а зачем новая тема, этот робот из того получился. Олег ты посмотрел нового роботека, он рабочий или нет?

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Пн Июн 09, 2008 11:24 pm Ответить с цитатой Вернуться к началу

Пока разделял тему забыл ответить. Smile Вроде все ок.
Только не уверен, что идея баблгамом прокатит.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.

Последний раз редактировалось: 000 (Пн Июн 09, 2008 11:35 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пн Июн 09, 2008 11:34 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Пока разделял тему забыл ответить. Smile Вроде все ок.
Только не уверен, что идес баблгамом прокатит.


По немецки это типа бубльгум Smile

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Июн 11, 2008 8:08 am Ответить с цитатой Вернуться к началу

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

_________________
Юра

Последний раз редактировалось: commenced (Ср Июн 11, 2008 8:19 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Ср Июн 11, 2008 8:18 am Ответить с цитатой Вернуться к началу

Для заданя сайза для разных символов можно еще использовать какое либо неиспользуемое поле из Information. Вписать туда размер позиции для данного символа и смотреть его из робота. Писанины меньше и можно оперативно менять при необходимости.

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

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

000 писал(а):
Для заданя сайза для разных символов можно еще использовать какое либо неиспользуемое поле из Information. Вписать туда размер позиции для данного символа и смотреть его из робота. Писанины меньше и можно оперативно менять при необходимости.


Спасибо, за совет.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Ср Июн 25, 2008 9:39 pm Ответить с цитатой Вернуться к началу

Робот для фьюча, с нормальным отступом:

Код:
///////// Установки ///////////

TimeFrame      = 60;                  // таймфрейм в минутах.
Account         = "SRTTYGGHXE";   // ваш аккаунт на бирже
Client         = "SPHHGJHKHHHXE";            // код клиента
Lots = IIf(Name() == "RIU8",1,
0);                 // сколько лотов желаете торговать
Otstup         = 0.01;                     // в процентах. заявка будет выставлена хуже текущей цены на столько процентов
FileName      ="D:/tranzi/trans.tri"; // слэши прямые!!! имя файла с транзакциями для квика


//////////// Формируем транзакцию.//////////////
////////////////////////////////////////////////
//////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! /////////
////////////////////////////////////////////////

Classcode = GroupID(1);
Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize;


procedure savetrifile(stransid,sstr)
{
   f = fopen(FileName, "r");
   found = 0;
   if(f)
   {
      while(!feof(f))
      {
         s = fgets(f);
         if(StrFind( s, stransid) > 0) found = 1;
      }
      fclose(f);
   }
   if (NOT found)
      {
         f = fopen(FileName, "a");
            if(f)
            {
               fputs(sstr+"\n",f);
               fclose(f);
            }
      }
}

function makeandsave(sOper, operID, sprice)
{
   CCS="";
   if (Client != "")  CCS="CLIENT_CODE="+Client+";";

   transid = "TRANS_ID=" +FullName() + NumToStr(operID, format=1.0) + LastValue(TimeNum())+"; ";



   str = transid   +
"PRICE="         +NumToStr(sprice, format = 1.0, separator=False)+"; " + "QUANTITY="      +NumToStr(Lots, format = 1.0)+"; "+
   "OPERATION="   +sOper+"; "+
   "CLASSCODE="   +Classcode+"; "+
   "ACTION="         +"NEW_ORDER; "+
   "TYPE="            +"L; "+
   "SECCODE="      +Name()+"; "+
   "ACCOUNT="      +Account+"; "+
   CCS;

   savetrifile(transid, str);
}

if (TimeFrame == Interval()/60 & FullName() != "")
{
   if(Buy)
   {
     price = Close[BarCount-1] + Otstup;
      makeandsave("B", 1, price);
   }
   if(Sell)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 2, price);
   }
   if(Short)
   {
      price = Close[BarCount-1] - Otstup;
      makeandsave("S", 3, price);
   }
   if(Cover)
   {
      price = Close[BarCount-1] + Otstup;
      makeandsave("B", 4, price);
   }

}//// mehanizator (c) 2004, ссылки мне запрещены
//// 000 (c) 2008, реклама покоцана мной


Работает на фьюче, шаг цены учтен, делать как для робота Олега, кол-во лотов я забил по конкренному имени, но это частный случай, мне так удобнее, на данный момент.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
commenced
Советник


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Чт Июн 26, 2008 2:12 pm Ответить с цитатой Вернуться к началу

Олег какая то лажа с роботом точнее со сканером, в названии файлов я прописал настройки, робот кудато зажулил ковер, который должен был идти с Buy.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Чт Июн 26, 2008 10:43 pm Ответить с цитатой Вернуться к началу

Пока трудно что либо сказать. Часто такие косяки бывают?

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пт Июн 27, 2008 6:05 am Ответить с цитатой Вернуться к началу

000 писал(а):
Пока трудно что либо сказать. Часто такие косяки бывают?


Да

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Пт Июн 27, 2008 7:38 am Ответить с цитатой Вернуться к началу

Тогда еще вопросы.
В сканере при работе робота эта сделка показывается?
Какой фрейм?
Какой период сканирования?

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


Зарегистрирован: 08.04.2008
Сообщения: 643
Откуда: от "Верблюда"

СообщениеДобавлено: Пт Июн 27, 2008 10:05 am Ответить с цитатой Вернуться к началу

000 писал(а):
Тогда еще вопросы.
В сканере при работе робота эта сделка показывается?
Какой фрейм?
Какой период сканирования?


Тайм 1 час, период в названии файлов, просто для уменьшения объема я удалил все не интересующие сделки, в сканере при работе робота показывается именно эта сделка, а должно быть 2.

_________________
Юра
Посмотреть профиль Отправить личное сообщение Отправить e-mail
000
Site Admin


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

СообщениеДобавлено: Пт Июн 27, 2008 10:53 am Ответить с цитатой Вернуться к началу

Ага. Тогда период сканирования не важен. Косяк в коде системы или настройках. Сегодня я занят, а в выходные меня вообще не будет. В понедельник будем разбираться. Ок?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen