Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У RTS после запятой не может быть цифр
Цитата: |
Контракты котируются в базисных пунктах Индекса РТС – значение индекса с точностью до двух знаков после запятой, умноженное на 100.
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
belin писал(а): |
Сравнил два кода, отличаются только по бай и селл, и у меня было 190000.0 (кажется, код твоим затер) а у тебя 190000. Я ставил 190000.0 по старой привычке, чтобы отличать от целого числа и потом проще было передать Ref(Close,-1) + запас на проскальзывание, а он может быть и не округлённым до целого, ведь при лимитниках нас это интересует, меня , например. |
Подумал, может в округлении дело и косячат Double- смарта и float Ами? И если у РТС нет знаков после запятой, как SmartCom пихает туда Double? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А разве если Double, то обязательно есть десятичные знаки?
Вообще, не знаю как смарт, а квик через tri очень критично относится к лишним знакам. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
000 писал(а): |
А разве если Double, то обязательно есть десятичные знаки?
Вообще, не знаю как смарт, а квик через tri очень критично относится к лишним знакам. |
Мы говорим именно о лимитных заявках, Ами тоже в числах содержит некий незначительный мусор, и тогда как купить по цене не хуже Close + Atr(10)? Чтобы не купить на выносе? Если нужно округлять, только скажи, об(int)им всё что только можно, но грядущие пользователи могут не понять, сам на вопросы в форуме отвечаешь, знаешь как народ коды пишет |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот если посмотришь код робота для квика, то увидишь там вот такую строку
Код: |
Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize; |
Эта строка округляет цену подаваемой заявки в зависимости от зазмера тика тргуемой бумаги.
Без этого никак нельзя.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
Вопросов нет, сегодня после открытия будем тестировать. Спасибо. Пора отдыхать- (посмотреть форумы, кино и т.д.) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
ВСЁ РАБОТАЕТ. Да, похоже всё дело было в знаке после запятой, без него первая заявка не проходит, как Олег и говорил, с месс. возможно неправильный символ, (подсоединение к смарту и всё такое), а следующие ставиятся нормально, после разрыва соединения, пересоединения всё нормально, только если выйти из Ами, приходится пропустить первую заявку, но её нет в системе, можно легко обработать. Один раз увидел "нет связи с сервером", удивился, но в этот момент связи действительно не было. ВСЁ РАБОТАЕТ. Сейчас погоняю на ценах за пределами лимитов, этих данных у нас дата плагин не поставляет, возможны выходы за пределы. Можно продолжать дальнейшую разработку со снятием заявок. Ждём. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
И за пределами лимитов всё работает, плагин доставляет заявку на биржу, а уж то что система её отклонила, пока ему не известно, но мы надеемся на продолжение. Если лупить по маркету, то уже можно запускать простенького робота, на демо однозначно можно. Вопрос о приходящем времени постановки заявки пока снимаю, сегодня время в минутах на минутной базе с минутной настройкой експлорера приходит правильное, возможно вчера из-за моих ошибок, было что-то не так. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Погоняй его плиз как следует. Просьба сообщать о любом косяке |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
Да я бы погонял, но подлый демо сервер, как узнал что можно тестировать стоит гад после 14-00 клиринга, а на ММВБ я не работаю. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
Да, гады закрыли тестовый ФОРТС на два дня.
Вот, с сайта: Уважаемые пользователи тестового доступа!
Тестовая торговля на FORTS будет недоступна в течение двух дней 9-го и 10-го июня в связи с работами по обновлению тестовой торговой системы биржей РТС.
Работа будет возобновлена 14 июня по обычному расписанию.
В связи с этим, в указанные дни на тестовом сервере 89.175.35.229 будет доступна торговля только на ММВБ.
В связи с этим вопросы по ММВБ, если взять скажем ЛУКОЙЛ, цену нужно ставить с точностью до копеек? Насколько я понимаю, у лукойла 1 бумага в лоте, а у Газпрома 10, в количестве, передаваемом в функцию ITOrder нужно передавать число лотов или число акций? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Я или сегодня попозже или завтра выложу код простенького робота для тестирования. Погоняшь хоть на фортс хоть на мамбе... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вот робот. Должен работать, но возможно, что есть косяки.... Если по нему что непонятно - спрашивайте.
Код: |
Filter = 1;
TimeFrame = 5*60; // таймфрейм в секундах.
Accaunt = "ST5015-RF-01";
Tickers = "RIM1,SRM1"; // торгуемые символы через запятую без пробелов. Для контроля ошибок
/////////////
///////////////
// задаем размер лотов и коды символов
/////////////
if(Name() == "RIM1")
{
NameForPos = "RIM1"; // это для записи файла с текущей позицией,
//на случай если имя бумаги в Ами содержит запрещенные символы
Lots = 1;
Code = "RTS-6.11_FT";
}
else if(Name() == "SRM1")
{
NameForPos = "SRM1"; // это для записи файла с текущей позицией,
//на случай если имя бумаги в Ами содержит запрещенные символы
Lots = 5;
Code = "SBRF-6.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) {
AddTextColumn(ITOrder(Accaunt, Code, bs, 1, 1, 0, Lots, 0), "номер ордера");
N = ITOrderMessage();
AddTextColumn(N, "ответ IT Trade");
if(StrToNum(N) > 0) {
str = str + " заяка исполнена" + " ответ сервера=" + N;
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;
}
}
///////////// проверка наличия символа в списке для торговли ////////////////
k = 0;
Permit_Ticker = False;
do {
Tick = StrExtract(Tickers, k);
k++;
if(Name() == Tick)
Permit_Ticker = True;
} while(Tick != "");
//////////////Система///////////////
Buy1 = Cross(C, MA(C, 10));
Sell1 = Cross(MA(C, 10), C);
Short1 = 0;
Cover1 = 0;
//////////////Система///////////////
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-2]) {
order(1);
str = str + " Buy";
AddTextColumn("Buy", "Buy");
LogWrite(str);
}
else if(Sell1[BarCount-2]) {
order(2);
str = str + " sell";
AddTextColumn("Sell", "Sell");
LogWrite(str);
}
if(Short1[BarCount-2]) {
order(3);
str = str + " Short";
AddTextColumn("Short", "Short");
LogWrite(str);
}
else if(Cover1[BarCount-2]) {
order(4);
str = str + " Cover";
AddTextColumn("Cover", "Cover");
LogWrite(str);
}
}
else if(TimeFrame != Interval()) {
PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
"ошибка", timeout = 5, left = -1, top = -1 );
}
|
Робот пишет лог файл robot_log.it в папку куда установлен Ами и файлы с текущей позицией по бумаге типа RIM1_robot.it |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
Пределал код под Газпром на 1 минутках, на тестовом сервере сегодня только ММВБ, Жду сигналов, робот только лонговый, а день шортовый, если не будет сигналов ещё переделаю на высокочастотник на 5 сукунд. интересно за один день демосчет на ММВБ слить можно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
belin
Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user
|
Заработало!!!, GAZP_Robot.it есть, но в нём всегда 0, Explorer настроен на curent symbol, n last qoutation =1, run every 5sec. Напокупал по 10 акций каждые 5 сек, пока не остановил. В Логе робота первая заявка возможно неправильный символ заявки нет, а далее покупает каждые 5 секунд,
10.06.2011 13:41:00 GAZP заявка НЕ исполнена ответ сервера=возможно неправильный символ Buy
10.06.2011 13:41:05 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:11 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:18 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:23 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:29 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:34 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
10.06.2011 13:41:40 GAZP заявка НЕ исполнена ответ сервера=доставлен на сервер Buy
Сижу разбираюсь. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Роботы |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|