Автор |
Сообщение |
nsashans
Зарегистрирован: 07.03.2012
Сообщения: 8
|
Как правильно встроить в робот эту функцию ApplyStop? Пробовал по-разному, работает только в режиме тестирования в Квик заявки не идут... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Функцию ApplyStop() в роботе применять не просто. Для активации стопов необходимо использовать функцию Equity(). Почитай в хелпере Ами про Equity(), там достаточно подробно написано |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
nsashans
Зарегистрирован: 07.03.2012
Сообщения: 8
|
Я добавлял ее Equity(1) ...не помогло так и не могу понять ее принцип... основа робота была взята с Главной, просто сменил логику открытия |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Тогда, возможно, не работает потому, что в настройках тестера что либо установлено не верно.
Функция эквити фактически запускает тестер и в своей работе естественно использует его настройки.
Рекомендую для проверки написать простой индикатор со стрелками входа и выхода и посмотреть будут ли срабатывать стопы в индикаторе. Если в индикаторе будут, то и в тестере должны. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Не математик
Зарегистрирован: 11.04.2012
Сообщения: 44
Откуда: Баранки
|
Код: |
TimeFrameSet(inDaily);
Top = Ref(HHV(H, 60), -1);
Bot = Ref(LLV(H,60), -1);
TimeFrameRestore();
// Пересчёт на текущий (меньший) таймфрейм
Top = TimeFrameExpand(Ref(HHV(H,60), -1), inDaily);
Bot = TimeFrameExpand(Ref(LLV(H,60), -1), inDaily);
Buy = Cross(C,Top);
Sell = False;
BuyPrice= Top+3;//покупка по цене пробоя + 3 пункта
Short = Cross(Bot,C);
Cover = False;
ShortPrice= Bot-3; // продажа по цене пробоя - 3 пункта
ApplyStop( stopTypeNBar, stopModeBars, Optimize( "stopTypeNBar", 144, 24, 1440, 24 )); //оптимизация выхода по времени
Empty = Optimize("Empty", 1, 1, 5, 1);
|
Cобственно вопрос: бары какого таймфрейма я оптимизирую?
Если я открыл меньший(текущий!) таймфрейм=1час, значит 24 бара - 1 день...т.е в настройках я задал время выхода...6 дней(по умолчанию для теста),и с 1 дня по 60 день с шагом в 1 день ? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Оптимизируется базовый фрейм. Тот который стоит в настройках АА.
Цитата: |
Если я открыл меньший(текущий!) таймфрейм=1час, значит 24 бара - 1 день...т.е в настройках я задал время выхода...6 дней(по умолчанию для теста),и с 1 дня по 60 день с шагом в 1 день ?
|
Да.
Несколько комментариев по коду.
Вот тут.
Код: |
Top = TimeFrameExpand(Ref(HHV(H,60), -1), inDaily);
Bot = TimeFrameExpand(Ref(LLV(H,60), -1), inDaily);
|
следует писать
Код: |
Top = TimeFrameExpand(Top, inDaily);
Bot = TimeFrameExpand(Bot, inDaily);
|
Выше
Код: |
TimeFrameSet(inDaily);
Top = Ref(HHV(H, 60), -1);
Bot = Ref(LLV(H,60), -1);
TimeFrameRestore();
|
расчитываются Top и Bot а тут
Код: |
Top = TimeFrameExpand(Top, inDaily);
Bot = TimeFrameExpand(Bot, inDaily);
|
мы их расжимаем на текущий фрейм |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Не математик
Зарегистрирован: 11.04.2012
Сообщения: 44
Откуда: Баранки
|
Спасибо, Олег.
Код: |
ApplyStop( stopTypeNBar, stopModeBars, 144); |
Т.е. Позиция прекратит существование на закрытии 144 бара? Ну это так, для общего развития. Я так понимаю, лучший результат оптимизации не брать, а выбирать "золотую середину". Открыли позицию - это первый бар...закрылся 144 бар выходим...
И как добавить 2е условие: выход по времени или выход по стопу.
Приоритетнее выход по времени, но если цена пошла не в нашу сторону- закрыть по стопу. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Пиши 2 ApplyStop(). Один n-барный второй стоп. Будут работать оба. Если стоп ранбше n-барного, то стоп, если стоп не сработал, то n-барный. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Не математик
Зарегистрирован: 11.04.2012
Сообщения: 44
Откуда: Баранки
|
Код: |
BuyPrice= Top+3; //покупка по цене пробоя + 3 пункта |
Я проморгал один нюанс , так правильно. Заработало лучше.
Код: |
BuyPrice= Top+3*TickSize; //покупка по цене пробоя + 3 пункта |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|