Начать новую тему Ответить на тему |
Список форумов 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 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Убрать "лишние" сигналы проще всего функцией ExRem()
Типа так
Код: |
Buy1 = ExRem(Buy1, Sell1);
|
Про то, как отображать лог в exele не знаю. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Ок. Спасибо.
1. Вопрос, отдельное окно тикера для визуального контроля работы робота: на одной свече есть сигнал на код Sell1 и Short1 , стрелочка рисуется только одна для сигнала Short1. Как реализовать чтоб стрелочек было две как и в коде на Sell1 и Short1 одна над другой (чёрная -Sell1 , и красная соответственно Short1 ).
2. Как убрать сигналы на одной свече. Код Short1 = Short1 AND Sell1 ==0 ;
работает , но убирает некоторые правильные сигналы на Short1 ?
Buy1 = Cross(C, MA(C, 40)) AND C > MA(C, 20);
Sell1 = Cross(MA(C, 20), C);
Short1 = Cross(MA(C, 40), C) AND C < MA(C, 20);
Cover1 = Cross(C, MA(C, 20));
Short1 = Short1 AND Sell1 ==0 ;
///////////Конец Системы////////////
Buy1 = Ref(Buy1, -1); // условие "на следующей свече"
Sell1 = Ref(Sell1, -1);
Short1 = Ref(Short1, -1);
Cover1 = Ref(Cover1, -1);
Buy1 = ExRem(Buy1, Sell1); // переключатель (пока не совершиться закрытие длинной позиции, новая длинная позиция открытся не может)
Sell1 = ExRem(Sell1, Buy1);
Short1 = ExRem(Short1,Cover1);
Cover1 = ExRem(Cover1,Short1);
///////////Рисование////////////
PlotShapes( Buy1*shapeUpArrow, colorGreen, 0, L );
PlotShapes( Sell1*shapeDownArrow, colorBlack, 0, H );
PlotShapes( Short1*shapeDownArrow, colorRed, 0, H );
PlotShapes( Cover1*shapeUpArrow, colorBlue, 0, L ); |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Возможно у тебя стрелки накладываются. Посмотри в хелпере функцию PlotShapes у неё последний параметр позволяет сдвигать значек вверх-вниз.
Попробуй вместо ExRem() для фильтрации сигналов использовать функцию Equity() |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
Олег, странно, но периодически бывает, робот делает больше сделок, чем нужно, т.е., например:
был шорт 1 фьюча, пошел сигнал на лонг, робот сначала закрывает шорт( покупает 1 лот), потом входит в лонг - покупает еще 1 лот, и на этом должен бы остановится. Но вместо этого еще через секунду он покупает еще 1 лот. Такое чувство, что имеющаяся позиция не успевает отобразиться, робот думает, что ее нет, и продолжает.
Почему - понять не могу, обновление выставлено 1 сек, комп достаточно мощный, вся связка не должна тормозить
В лог пишет так:
Код: |
23.07.2012 23:30:02 SBRF Cover заяка исполнена ответ сервера=########## позиция на момент исполнения -1
23.07.2012 23:30:02 SBRF Cover заяка исполнена ответ сервера=########## позиция на момент исполнения -1
23.07.2012 23:30:03 SBRF Buy заяка исполнена ответ сервера=########## позиция на момент исполнения 0 |
Закрывает шорт двумя сделками вместо одной... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. Два ковера подряд (два закрытия шорта) и время у них одинаковое. Похоже, что оба ковера исполнены за один прогон. Проверь код робота. Есть подозрение, что у тебя там 2 раза if(Cover1[BarCount-1]... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Для того чтоб стрелки не накладывались сделал так.(чередую закрашенный треугольник с не закрашенным квадратом)
PlotShapes( Buy1*shapeUpArrow, colorGreen, 0, L );
PlotShapes( Sell1*shapeHollowSquare, colorGreen, 0, H );
PlotShapes( Short1*shapeDownArrow, colorRed, 0, H );
PlotShapes( Cover1*shapeHollowSquare, colorRed, 0, L );
Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Привет!" Робот открыл длинную позицию, я ( в качестве эксперимента) закрыл этот лонг руками в квике. Робот в АА в столбце позиция так и оставил цифру "1", когда робот "увидел" что пора закрывать тот лонг который он открывал, то не смог его исполнить и с логом
24.07.2012 17:30:18 SBER Sell заяка НЕ исполнена ответ сервера=0 безуспешно пытался несколько раз позу закрыть.
Вопрос. При закрытии лонга робот должен был спросить квик о состоянии позы и тот по моему должен был ответить что лонга нет. Тогда робот должен был обновить свой столбец в АА "Позиция" с цыфры "1" на "0". А он этого не сделал. Если так и должно быть то скажи как возобновить (в экстренных случаях) правильное отображение позы в столбце "позиция" АА.
Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Увы. Робот не может спросить Квик о состоянии позы. Такой функционал в плагине не реализован. Этому есть 2 причины.
Если руками влез в работу робота, то надо руками залезть в robot.ini и там изменить позу по соответствующей бумаге. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
vadimal
Зарегистрирован: 02.02.2011
Сообщения: 78
|
Спасибо. Работает всё как ты и сказал. |
|
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
000 писал(а): |
Хм. Два ковера подряд (два закрытия шорта) и время у них одинаковое. Похоже, что оба ковера исполнены за один прогон. Проверь код робота. Есть подозрение, что у тебя там 2 раза if(Cover1[BarCount-1]... |
В том то и дело, что код - скопирован с сайта без изменений...
И такое не при каждом закрытии шорта...
В общем буду разбираться |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Пришли мне свой код в личку.
Account и Client_Code убери. Посмотрю.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
000 писал(а): |
Пришли мне свой код в личку.
Account и Client_Code убери. Посмотрю.... |
Отправил |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Отвечу тут в назидание.
1. Что у тебя в коде делает строка
_SECTION_END();
Она там не нужна совершенно и я затрудняюсь предположить акой она дает эфект.
2. У тебя в системе используется ApplyStop();
Он там не работает.
Это конечно к делу не относится, но... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
BRTO
Зарегистрирован: 01.03.2009
Сообщения: 105
|
000 писал(а): |
Отвечу тут в назидание.
1. Что у тебя в коде делает строка
_SECTION_END();
Она там не нужна совершенно и я затрудняюсь предположить акой она дает эфект.
2. У тебя в системе используется ApplyStop();
Он там не работает.
Это конечно к делу не относится, но... |
_SECTION_END(); - не заметил, действительно.
Я систему скопировал из кода, который тестирую, вместе с ним и ApplyStop(). Действительно, в таком виде толку не много, а с Equity()?
Олег, ты вроде писал, что на крайняк и ApplyStop в робот подойдет.
Там только стоп-профит, и он так редок, что проще руками закрыть.
В любом случае, спасибо за помощь - так ведь и знал, что какие-то корявые ошибки будут, все от невнимательности... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
с Equity() будет работать, но лучше использовать эту схему |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|
Начать новую тему Ответить на тему |
Список форумов 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 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|