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



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

СообщениеДобавлено: Вт Май 21, 2013 12:00 pm Ответить с цитатой Вернуться к началу

Олег, появилась необходимость в "отливках" в роботе, скажи как корректно прописать условия в системе и какие блоки в роботе нужно дописать?
У меня условие на лонг=доливка лонга = условие на отливку шорта, аналогично с условие на шорт= доливка шорта = отливка лонга. Есть некая нулевая цена, от которой и будем смотреть, какую позу открывать...Может возможно просто прописать 2 команды:
1 - когда растет
2- когда падает
т.е. не закрывать позы командой селл или ковер, а просто Buy=.....// набрали 5 лотов, поступил сигнал на отливку- мы открыли один шорт Short = ..... //(фактически по счету просто продали 1 контракт)

И еще вопрос: не получается прикрутить переменный лот. Нужно так
Код:
Lots    = floor(abs( Ref(Up,-1) - C ) / step );

step- величина постоянная
Up - считается в цикле в теле системы.
Как указать, что лот должен быть таким (считается по закрытию свечи). В тесте то считает, а тут матюгается...

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Май 21, 2013 8:42 pm Ответить с цитатой Вернуться к началу

Цитата:
И еще вопрос: не получается прикрутить переменный лот. Нужно так

Код:
Lot = floor(abs( Ref(Up,-1) - C ) / step );
Lots = Lot[BarCount-2];

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



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

СообщениеДобавлено: Ср Май 22, 2013 9:04 am Ответить с цитатой Вернуться к началу

Олег, а почему [BarCount-2] а не [BarCount-1], я вчера сделал -1, но пока не проверил... Отливки тоже дописал, сегодня гляну...если что то не получится, тогда отпишу

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Май 22, 2013 10:52 am Ответить с цитатой Вернуться к началу

Потому, что BarCount-1 это последний бар (как правило еще не доформированный), а BarCount-2 это предпоследний или последний гарантированно целый бар.

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



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

СообщениеДобавлено: Чт Май 23, 2013 11:29 am Ответить с цитатой Вернуться к началу

Да, с BarCount разобрался. Посмотри след. момент. В твой робот добавил возможность отливки. Соответственно для отливки лонга
Код:
else if(Buy3[BarCount-1] AND pos > 0 AND pos < LimB AND BarID != SdID) {
      str = str + "  Buy (отливка)";
      sd = "BuyOut";
      orders("S", round(C[BarCount-1]) - Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);

и для отливки шорта
Код:
 else if(Short3[BarCount-1] AND pos < 0 AND abs(pos) < LimS AND BarID != SdID) {
      str = str + "  Short (отливка)";
      sd = "ShortOut";
      orders("B", round(C[BarCount-1]) + Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);
   }

сигнал отрабатывает корректно, отливает как надо, и сколько надо, но запись в Quik_robot тут же обнуляется, хотя поза остается... я добавил для этого такие строки, может напутал что...
Код:
else if(pos > 0 AND bs == "S")          // отливка лонга
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos - Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "BarID", BarID);
      }
      else if(pos < 0 AND bs == "B")          // отливка шорта
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos + Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "BarID", BarID);
      }

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos - Lot);

замени Lot на Lots

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



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

СообщениеДобавлено: Чт Май 23, 2013 2:46 pm Ответить с цитатой Вернуться к началу

000 писал(а):
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos - Lot);

замени Lot на Lots

только в добавленных строках? или и в твоих тоже?

_________________
Деда Мороза не существует!!!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

У меня была константа Lots. У тебя по системе Lots получился массив. Мы из него делаем константу Lot. Соответственно меняем...

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



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

СообщениеДобавлено: Пт Июн 14, 2013 12:15 am Ответить с цитатой Вернуться к началу

Олег, скажи пожалуйста, как ты контролируешь работу робота на своем счете? Я имею ввиду, контроль того, что сделки открываются там, где это будо задумано по торговой стратегии.
Я сейчас пользую этого робота (спасибо, пашет без ошибок)) и мне очень не привычно после МТ4, что я не вижу, когда и где мой робот торговал , если не проверяю счет каждый день - вижу только изменение баланса портфеля в квике.
Может быть стоит сделать файлик, куда робот будет записывать проведенные сделки и индикатор, чтобы из этого файлика он брал инфу и рисовал стрелочки на графике? ИМХО для контроля того, что стратегия работает правильно такая штука будет весьма полезна.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Июн 14, 2013 12:25 am Ответить с цитатой Вернуться к началу

Хм. Ну вообще робот и так пишет сделки в файлик.
Цитата:
Кроме того робот записывает все свои действия в файл Robot_quik.log который робот создаст в папке в которую установлен AmiBroker

Лично я смотрю этот файлик. Мне достаточно.
Пожалуй стоит написать "индикатор", который из этого файлика будет рисовать на график. Спасибо за идею.
Хотя подобных кодов было написано уже гора... Laughing

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



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

СообщениеДобавлено: Пн Июн 17, 2013 1:29 pm Ответить с цитатой Вернуться к началу

Переустанавливал систему, потом стал настраивать робота:
При получении сигнала:
"заявка НЕ исполнена ответ сервера=0"

Уже забыл, что это значит, где проблема?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Июн 17, 2013 1:37 pm Ответить с цитатой Вернуться к началу

Хм. Это как раз означает, что непонятно почему Квик не вернул номер заявки. Возможно проблемы с интернетом или сервером Квика.

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



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

СообщениеДобавлено: Пн Июн 17, 2013 1:41 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Хм. Это как раз означает, что непонятно почему Квик не вернул номер заявки. Возможно проблемы с интернетом или сервером Квика.

При этом пишет, что есть соединение с сервером
Я квик обновил и использовал новую TRANS2QUIK.dll
попробую на старых версиях

вроде тут как-то был какой-то упрощенный код для проверки отправления заявки, а то у меня сигналы 1-2 раза в день, долго ждать
Посмотреть профиль Отправить личное сообщение
BRTO



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

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

Тьфу, разобрался - забыл сменить код инструмента после экспирации Mad
Посмотреть профиль Отправить личное сообщение
Дмитрий



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

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

Здравствуйте! Кто нибудь знает как можно прогонять код робота в анализаторе с периодичностью менее чем 1 секунда?
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen