Начать новую тему Ответить на тему |
Список форумов 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 След. |
Автор |
Сообщение |
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
Олег, появилась необходимость в "отливках" в роботе, скажи как корректно прописать условия в системе и какие блоки в роботе нужно дописать?
У меня условие на лонг=доливка лонга = условие на отливку шорта, аналогично с условие на шорт= доливка шорта = отливка лонга. Есть некая нулевая цена, от которой и будем смотреть, какую позу открывать...Может возможно просто прописать 2 команды:
1 - когда растет
2- когда падает
т.е. не закрывать позы командой селл или ковер, а просто Buy=.....// набрали 5 лотов, поступил сигнал на отливку- мы открыли один шорт Short = ..... //(фактически по счету просто продали 1 контракт)
И еще вопрос: не получается прикрутить переменный лот. Нужно так
Код: |
Lots = floor(abs( Ref(Up,-1) - C ) / step ); |
step- величина постоянная
Up - считается в цикле в теле системы.
Как указать, что лот должен быть таким (считается по закрытию свечи). В тесте то считает, а тут матюгается... |
_________________ Деда Мороза не существует!!! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
И еще вопрос: не получается прикрутить переменный лот. Нужно так |
Код: |
Lot = floor(abs( Ref(Up,-1) - C ) / step );
Lots = Lot[BarCount-2]; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
Олег, а почему [BarCount-2] а не [BarCount-1], я вчера сделал -1, но пока не проверил... Отливки тоже дописал, сегодня гляну...если что то не получится, тогда отпишу |
_________________ Деда Мороза не существует!!! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Потому, что BarCount-1 это последний бар (как правило еще не доформированный), а BarCount-2 это предпоследний или последний гарантированно целый бар. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
Да, с 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
|
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos - Lot);
замени Lot на Lots |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Alex14
Зарегистрирован: 12.11.2010
Сообщения: 90
|
000 писал(а): |
AS_WRITE_PARAM("Quik_Robot", Name(), "pos", pos - Lot);
замени Lot на Lots |
только в добавленных строках? или и в твоих тоже? |
_________________ Деда Мороза не существует!!! |
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
У меня была константа Lots. У тебя по системе Lots получился массив. Мы из него делаем константу Lot. Соответственно меняем... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Renown
Зарегистрирован: 14.10.2009
Сообщения: 38
|
Олег, скажи пожалуйста, как ты контролируешь работу робота на своем счете? Я имею ввиду, контроль того, что сделки открываются там, где это будо задумано по торговой стратегии.
Я сейчас пользую этого робота (спасибо, пашет без ошибок)) и мне очень не привычно после МТ4, что я не вижу, когда и где мой робот торговал , если не проверяю счет каждый день - вижу только изменение баланса портфеля в квике.
Может быть стоит сделать файлик, куда робот будет записывать проведенные сделки и индикатор, чтобы из этого файлика он брал инфу и рисовал стрелочки на графике? ИМХО для контроля того, что стратегия работает правильно такая штука будет весьма полезна. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Ну вообще робот и так пишет сделки в файлик.
Цитата: |
Кроме того робот записывает все свои действия в файл Robot_quik.log который робот создаст в папке в которую установлен AmiBroker |
Лично я смотрю этот файлик. Мне достаточно.
Пожалуй стоит написать "индикатор", который из этого файлика будет рисовать на график. Спасибо за идею.
Хотя подобных кодов было написано уже гора... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
Переустанавливал систему, потом стал настраивать робота:
При получении сигнала:
"заявка НЕ исполнена ответ сервера=0"
Уже забыл, что это значит, где проблема? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Это как раз означает, что непонятно почему Квик не вернул номер заявки. Возможно проблемы с интернетом или сервером Квика. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
000 писал(а): |
Хм. Это как раз означает, что непонятно почему Квик не вернул номер заявки. Возможно проблемы с интернетом или сервером Квика. |
При этом пишет, что есть соединение с сервером
Я квик обновил и использовал новую TRANS2QUIK.dll
попробую на старых версиях
вроде тут как-то был какой-то упрощенный код для проверки отправления заявки, а то у меня сигналы 1-2 раза в день, долго ждать |
|
|
Посмотреть профиль Отправить личное сообщение |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
Тьфу, разобрался - забыл сменить код инструмента после экспирации |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Дмитрий
Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов
|
Здравствуйте! Кто нибудь знает как можно прогонять код робота в анализаторе с периодичностью менее чем 1 секунда? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов 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 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|