Начать новую тему Ответить на тему |
Список форумов 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, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
Автор |
Сообщение |
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
spitfire писал(а): |
Думаю только для тех кто торгует по дневкам и выше Остальные идут мимо. |
Дело в том, что для биржи нет такого понятия как сделка по рынку. У биржи идут только лимитные в стакан и в глубь стакана. Вот и интересно стало, может не стоит шибко заморачиваться про проскальзывание и прочие дела, если Квик нормально маркет-заявки исполняет? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Я заморачиваюсь по одной простой причине. Важно чтобы реальные торги как можно лучше соответсвовали тестам. В тестах мы явно указываем цену сделки. Поэтому и тут я предпочитаю использовать лимитники. Маркет-заявки имеют смысл если ликвидность инструмента достаточна высока для системы на рабочем таймфрейме. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
spitfire писал(а): |
Маркет-заявки имеют смысл если ликвидность инструмента достаточна высока для системы на рабочем таймфрейме. |
Ну если выставлять в стакан, и ждать пока тебя проглотят - да. Но я в тестах тоже вхожу как бы по рынку и проскальзывание ставлю пожирнее.
Олег у меня тут случайно два раза было обращение к функции AS_QUIK_SEND_SYNC_NEWORDER() и на второй раз она вернула 0 вместо номера ордера, я было подумал что лимита не хватило, глянул в Квик, а там нет никаких системных сообщений, кроме того, что я приконнектился в начале торгов.
Что означает такой ноль? И может быть при отправкой API никаких системных сообщений и не должно быть? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. 0 возвращается когда транзакция успешно отправлена на сервер. В таком случае из квика приходить номер заявки в другой переменной и в плагине 0 подменяется на номер заявки.
Ноль мог вернуться в двух случаях.
1. не подменился 0 на номер заявки в моем плагине (тогда это глюк плагина)
2. квик не прислал номер заявки (тогда это глюк квика)
На счет системных сообщений квика не знаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
Прикол ещё в том, что я это по записи в лог вижу, которая ну никак не должна была состоятся (либо я не шарю в операторе switch). В Квике при этом чисто и нет никаких не исполненных или повисших заявок. Нет так же и сообщений о нехватке лимитов или отвергнутых ордеров по причине какой-либо ошибки.
Мне бы узнать, как брать время события и переводить его в нормальный читаемый строковый вид, а то такая вот штука - NumToStr(DateTime(), formatDateTime) - выдаёт мне время бара. |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Вмсто DateTime() пиши Now() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
shaly
Зарегистрирован: 01.07.2008
Сообщения: 53
Откуда: Омск
|
Такая схема запуска робота в связке Ами-Квик решает проблему пропуска заявок на тиковом графике? Когда сканирование идет раз в 1 сек, а сигнал был 10 тиков назад и поэтому робот на него не отреагировал. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
Можно ли с разных АМИ отправлять транзакции через АPI одного терминала Квик? |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А можно ли с одного квика отдавать котировки в несолько Ами? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
000 писал(а): |
А можно ли с одного квика отдавать котировки в несолько Ами? |
Нельзя! Но для меня это не важно.., вопрос был в другом. Мне нужно знать можно ли торговать на одном счете из разных АМИ. |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да хрен его знает. Попробуй. Только как это реализовать если в 2 ами реалтайм котировки засунуть проблематично? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
kosbar писал(а): |
spitfire писал(а): |
Маркет-заявки имеют смысл если ликвидность инструмента достаточна высока для системы на рабочем таймфрейме. |
Ну если выставлять в стакан, и ждать пока тебя проглотят - да. Но я в тестах тоже вхожу как бы по рынку и проскальзывание ставлю пожирнее.
Олег у меня тут случайно два раза было обращение к функции AS_QUIK_SEND_SYNC_NEWORDER() и на второй раз она вернула 0 вместо номера ордера, я было подумал что лимита не хватило, глянул в Квик, а там нет никаких системных сообщений, кроме того, что я приконнектился в начале торгов.
Что означает такой ноль? И может быть при отправкой API никаких системных сообщений и не должно быть? |
Нашел случай когда AS_QUIK_SEND_SYNC_NEWORDER() возвращает 0. Если в заявке прописать РАЗМЕР ЗАЯВКИ == 0, то аозвращает 0. Имей ввиду. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
knell009
Зарегистрирован: 21.11.2011
Сообщения: 24
|
knell009 писал(а): |
Можно ли с разных АМИ отправлять транзакции через АPI одного терминала Квик? |
Ответ: Нет. Проверено! При постоянном соединении с одним АМИ, связь с другим не устанавливается. |
_________________ knell |
|
Посмотреть профиль Отправить личное сообщение |
|
Osiris
Зарегистрирован: 09.12.2009
Сообщения: 48
Откуда: Msk
|
000 писал(а): |
А можно ли с одного квика отдавать котировки в несолько Ами? |
Почему нельзя, конечно можно! Я так делал много раз
Жаль, что нельзя передавать заявки из нескольких Ами по API.
Можно одну Ами через API, а другую через TRI |
|
|
Посмотреть профиль Отправить личное сообщение |
|
kosbar
Зарегистрирован: 17.03.2009
Сообщения: 356
|
000 писал(а): |
Нашел случай когда AS_QUIK_SEND_SYNC_NEWORDER() возвращает 0. Если в заявке прописать РАЗМЕР ЗАЯВКИ == 0, то аозвращает 0. Имей ввиду. |
А что такое размер заявки? Количество лотов?
У меня с оператором switch ссора вышла, он умудряется войти в два case, не смотря на то, что заданному условию соответствует только один из них. Вот заходя во-второй вариант он умудряется послать заявку с ответом 0.
Переделал всё на if, теперь в логах все заявки с 0 =)))
Чо к чему аще не понимаю...
Код: |
SetBarsRequired(sbrAll, sbrAll);
Filter = 1;
INDX = LastValue(BarIndex());
ACC = "SPBFUT*****";
CCODE = "SPBFUT*****";
LOTS = 1;
SLIPP = 500;
ROBO = "robot";
LOGS = "logs.ini";
CLASS = "SPBFUT";
FUT = "RIH2";
QUIK = "C:\\QUIK";
//PR[0] = 0;
//NORD = "";
////ORDER////
AS_QUIK_CONNECT(QUIK);
function ORDER (LOT, OPER, PR)
{
AS_QUIK_CONNECT(QUIK);
NORD = AS_QUIK_SEND_SYNC_NEWORDER("555", ACC, CCODE, "L", CLASS, FUT, OPER, PR, LOT);
return NORD;
}
/////////////
////SYS/////
GO_LONG = 0;
GO_SHORT = 0;
AlertIf(GO_LONG[BarCount-1], "SOUND C:\\Windows\\Media\\tada.wav", "Audio alert", 1 );
AlertIf(GO_SHORT[BarCount-1], "SOUND C:\\Windows\\Media\\Ringin.wav", "Audio alert", 2 );
////////////
BAR = AS_READ_PARAM(ROBO, FUT, "BAR");
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
if(GO_LONG[BarCount-1] AND (INDX[BarCount-1] > BAR))
{
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
if(POS = -1)
{
PR = LastValue(C)+SLIPP;
NORD = ORDER (2*LOTS, "B", PR);
STR = "№ Order " + NORD + ", № Bar " + NumToStr(INDX,1.0) + ", Time "
+ Now()+ ", REVOLVER_LONG" + ", Price " + NumToStr(PR);
AS_WRITE_FILE(LOGS, STR);
AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
}
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
if(POS = 0)
{
PR = LastValue(C)+SLIPP;
NORD = ORDER (LOTS, "B", PR);
STR = "№ Order " + NORD + ", № Bar " + NumToStr(INDX,1.0) + ", Time "
+ Now()+ ", GO_LONG" + ", Price " + NumToStr(PR);
AS_WRITE_FILE(LOGS, STR);
AS_WRITE_PARAM(ROBO, FUT, "POSITION", 1);
AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
}
}
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
BAR = AS_READ_PARAM(ROBO, FUT, "BAR");
if(GO_SHORT[BarCount-1] AND (INDX[BarCount-1] > BAR))
{
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
if(POS = 1)
{
PR = LastValue(C)-SLIPP;
NORD = ORDER (2*LOTS, "S", PR);
STR = "№ Order " + NORD + ", № Bar " + NumToStr(INDX,1.0) + ", Time "
+ Now()+ ", REVOLVER_SHORT" + ", Price " + NumToStr(PR);
AS_WRITE_FILE(LOGS, STR);
AS_WRITE_PARAM(ROBO, FUT, "POSITION", -1);
AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
}
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
if(POS = 0)
{
PR = LastValue(C)-SLIPP;
NORD = ORDER (LOTS, "S", PR);
STR = "№ Order " + NORD + ", № Bar " + NumToStr(INDX,1.0) + ", Time "
+ Now()+ ", GO_SHORT" + ", Price " + NumToStr(PR);
AS_WRITE_FILE(LOGS, STR);
AS_WRITE_PARAM(ROBO, FUT, "POSITION", -1);
AS_WRITE_PARAM(ROBO, FUT, "BAR", INDX);
}
}
POS = AS_READ_PARAM(ROBO, FUT, "POSITION");
BAR = AS_READ_PARAM(ROBO, FUT, "BAR");
//AddTextColumn(Name(), "Символ", 1.0, colorDefault, colorDefault, 60);
AddColumn( C[BarCount-1], "Последняя цена", 1.2, colorDefault, colorDefault, 100 );
AddColumn( AS_READ_PARAM(ROBO, FUT, "POSITION"), "Позиция", 1.0, color |
Вроде всё правильно... Косяк где-то в функции ORDER, но там всё проще некуда... |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
|
Начать новую тему Ответить на тему |
Список форумов 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, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|