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



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

СообщениеДобавлено: Вт Авг 28, 2012 8:12 pm Ответить с цитатой Вернуться к началу

Здравствуйте. Не идёт робот. Вот два скрина, изменения подчеркнуты и видны изменения в АА. Но заявки всё равно не отправляются. Уже убрал свой код и оставил как на сайте. Что то дело с procedure, тестовая AFL с 22 страницы отправляет транзакции без проблем.
Image
и
Image[/img]
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Авг 28, 2012 8:57 pm Ответить с цитатой Вернуться к началу

Так это. Сигнала нет, вот он ничего и не отправляет. Там есть колонка "Сигнал". Заявка будет отправлена только если в этой колонке будет Buy, Sell, Short или Cover

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



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

СообщениеДобавлено: Вт Авг 28, 2012 9:22 pm Ответить с цитатой Вернуться к началу

Дело в том, что пока я не перенёс команду procedure у меня даже соединения с сервером не происходило. Вот лог
Image
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Авг 28, 2012 9:29 pm Ответить с цитатой Вернуться к началу

Я, если честно, так и не понял куда и что ты перенес.

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


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

СообщениеДобавлено: Вт Авг 28, 2012 9:35 pm Ответить с цитатой Вернуться к началу

Только что проверил робота с сайта. Работает.
Если заменить
Код:
Buy1 = Ref(Buy1, -1);

на
Код:
Buy1 = 1; //Ref(Buy1, -1);

и сделать Explore 1 РАЗ, то сразу отправляет заявку на покупку.

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



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

СообщениеДобавлено: Вт Авг 28, 2012 9:37 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Я, если честно, так и не понял куда и что ты перенес.

На первых двух скриншотах видно , я специально подчеркнул функцию процедуры procedure , вот её я и перенёс.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Авг 28, 2012 9:45 pm Ответить с цитатой Вернуться к началу

Непонятно куда. В общем я скачал с сайта код и запустил. Прекрасно работает. Sad

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



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

СообщениеДобавлено: Вт Авг 28, 2012 9:58 pm Ответить с цитатой Вернуться к началу

перекачал робота, работает. Буду у себя разбираться со своими условиями покупки/ продажи.
Посмотреть профиль Отправить личное сообщение
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 212
Откуда: Новосибирск

СообщениеДобавлено: Вс Сен 02, 2012 9:47 am Ответить с цитатой Вернуться к началу

Хотелось бы задать ряд вопросов и уточнений по роботу, если можно...

1. Работа с несколькими инструментами и стратегиями.
На первой странице данный вопрос уже обсуждался, однако не совсем ясно следующее: "А по моему с else лучше. Без else код будет проверять все ифы а с else после подходящего остальные проверять не станет." Как это понимать? т.е. если отрабаотает сигнал по первому инструменту, который стоит под функцией if, то остальные под else не будут просчитываться? А если все должно работать одновременно на трех инструментах с РАЗНЫМИ параметрами? Просто ставить везде if?

2. Работа с несколькими счетами.
Как я понял, с одного Ами сделать разбивку на разные Квики и счета нельзя. Однако я заметил, что если скопировать папку Ами и запустить, то получаем два работающих Ами, получающих инфу с одного Квика. Если мы откроем в каждом Ами по роботу (где, соответственно прописаны разные счета и пути к Квику), будет ли эти оба робота работать и рассылать заявки?

3. Цена выставления заявки.
Возможен ли апгрейд робота, который позволит выставлять заявки по цене закрытия свечи, на которой прошел сигнал. Я думал, так оно и есть, однако, как оказалось, цена выставляется исходя из последней полученной свечи после получения сигнала о закрытии сигнальной свечи. В итоге зявка попадает в стакан спустя три секунды после закрытия свечи. Цена за это время скачет. Зачастую получаются неприятные проскальзывания.

4. Сигнал с одного инструмента, заявка по другому.
Допустим я получаю сигналы со Сбербанка. В Ами он у меня на вкладке прописан основным инструментом, дополнительно идут два Foreign и индюк, на основе которых формируются сигналы. Хочу, чтобы заявка кидалась в стакан фьючерса на Сбербанк. Как мне это сделать? Прописать на данной вкладке основным фьючерс, а спот Сбера отправить в Foreign? Спот нужен в любом случае, ведь его индюки выдают сигнал.

Пока вроде все, что вспомнил. Заранее благодарю.
Посмотреть профиль Отправить личное сообщение
AntColonel



Зарегистрирован: 03.05.2011
Сообщения: 212
Откуда: Новосибирск

СообщениеДобавлено: Пн Сен 03, 2012 6:33 am Ответить с цитатой Вернуться к началу

Дополнительно задам еще один вопрос.

При работе АА, будь то Optimization или Explore, при переключении между окнами в винде иногда при возврате в Ами окно АА исчезает. Приходится все начинать заново (если шла оптимизация тестирования) или повторно включать робота.

Кто-нибудь сталкивался с подобным? Лечится ли это?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Сен 03, 2012 7:39 am Ответить с цитатой Вернуться к началу

Я не сталкивался. На остальное отвечу позже.

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



Зарегистрирован: 03.05.2011
Сообщения: 212
Откуда: Новосибирск

СообщениеДобавлено: Пн Сен 03, 2012 9:32 am Ответить с цитатой Вернуться к началу

Сделал робот на две системы. На картинке выложен код за исключением "аппаратной" части робота.

В окне Explore показывает оба инструмента и просчитывает параметры. Однако в ini-файле позиция по СИ пуста. Т.е. не ноль, а в принципе ничего нет.

У меня где-то тут ошибка?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Сен 03, 2012 9:23 pm Ответить с цитатой Вернуться к началу

В ини файл записываться параметр как только позиция измениться. Если в ini файле нет параметра то запрос к нему возвращает Т.е. позиции нет и так будет до тех пор пока позиция не откроется. Тогда в ини будет добавлен параметр.

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


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

СообщениеДобавлено: Пн Сен 03, 2012 9:37 pm Ответить с цитатой Вернуться к началу

AntColonel писал(а):
Хотелось бы задать ряд вопросов и уточнений по роботу, если можно...

AntColonel писал(а):

1. Работа с несколькими инструментами и стратегиями.
На первой странице данный вопрос уже обсуждался, однако не совсем ясно следующее: "А по моему с else лучше. Без else код будет проверять все ифы а с else после подходящего остальные проверять не станет." Как это понимать? т.е. если отрабаотает сигнал по первому инструменту, который стоит под функцией if, то остальные под else не будут просчитываться? А если все должно работать одновременно на трех инструментах с РАЗНЫМИ параметрами? Просто ставить везде if?


Если поставить так
if
if
if
то при работе кода будут проверены все три условия даже если первое уже сработало.
Если написать
if
else if
else if
то, после того как будет найдено сработавшее условие остальные не будут даже проверяться. Это немного ускорит работу кода.
AntColonel писал(а):

2. Работа с несколькими счетами.
Как я понял, с одного Ами сделать разбивку на разные Квики и счета нельзя. Однако я заметил, что если скопировать папку Ами и запустить, то получаем два работающих Ами, получающих инфу с одного Квика. Если мы откроем в каждом Ами по роботу (где, соответственно прописаны разные счета и пути к Квику), будет ли эти оба робота работать и рассылать заявки?

Боюсь, что ничего хорошего если запускать несколько Ами не получится. Мне кажется в Квик можно отправлять заявки для разных счетов. Иначе зачем в заявку ACCOUNT писать...
AntColonel писал(а):

3. Цена выставления заявки.
Возможен ли апгрейд робота, который позволит выставлять заявки по цене закрытия свечи, на которой прошел сигнал. Я думал, так оно и есть, однако, как оказалось, цена выставляется исходя из последней полученной свечи после получения сигнала о закрытии сигнальной свечи. В итоге зявка попадает в стакан спустя три секунды после закрытия свечи. Цена за это время скачет. Зачастую получаются неприятные проскальзывания.

Возможно ловить окончание бара по времени. Только будет использовано локальное время компа и надо тщательно следить чтобы оно было точным. Кроме того, допустим торгуем минутки и поставили ловить сигнал когда секунды больше 58. Вот стукнуло 58 секунд. Робот увидел сигнал и открыл позу, а потом пришли еще котировки, свечка изменилась и сигнал пропал.... А поза уже открыта...
AntColonel писал(а):

4. Сигнал с одного инструмента, заявка по другому.
Допустим я получаю сигналы со Сбербанка. В Ами он у меня на вкладке прописан основным инструментом, дополнительно идут два Foreign и индюк, на основе которых формируются сигналы. Хочу, чтобы заявка кидалась в стакан фьючерса на Сбербанк. Как мне это сделать? Прописать на данной вкладке основным фьючерс, а спот Сбера отправить в Foreign? Спот нужен в любом случае, ведь его индюки выдают сигнал.

Проще всего так.

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



Зарегистрирован: 03.05.2011
Сообщения: 212
Откуда: Новосибирск

СообщениеДобавлено: Вт Сен 04, 2012 7:35 am Ответить с цитатой Вернуться к началу

000 писал(а):

Если поставить так
if
if
if
то при работе кода будут проверены все три условия даже если первое уже сработало.
Если написать
if
else if
else if
то, после того как будет найдено сработавшее условие остальные не будут даже проверяться. Это немного ускорит работу кода.


Олег, спасибо за ответы.
В таком случае подскажи, код на моей картинке верен для двух систем на двух инструментах?
И конструкцию "Buy1 = Ref(Buy1, -1); ..." прописывать в каждой системе? Или один раз в конце, как показано у меня? Надо ли их обнулять перед системами?

И еще, в случае с elsе: остальные не будут проверяться лишь на той свече, где сработало первое условие, или пока не будет выхода из позиции, открытой по одной из систем по первому сработавшему условию?

000 писал(а):

Боюсь, что ничего хорошего если запускать несколько Ами не получится. Мне кажется в Квик можно отправлять заявки для разных счетов. Иначе зачем в заявку ACCOUNT писать...


Хорошо, есть поле АККАУНТ. Т.е. я так понимаю в роботе можно прописать несколько аккаунтов? Если да, то как это сделать? И как сделать указание по количеству лотов на каждый счет? И если опять же можно так сделать, то возможно можно там же прописать и пути для двух Квиков.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen