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



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

СообщениеДобавлено: Пн Окт 05, 2009 4:11 pm Ответить с цитатой Вернуться к началу

Нужно расчитать уровень стопа, на котором происходит лимитная продажа.

Есть условие Buy и простой % стоп от уровня покупки. Если записать
Код:

Stop = Optimize("Opt Stop", 1, 0.25, 5, 0.25); // В процентах
Buy = ...
StopLevel = ValueWhen(Buy, C, 1) * (1 - Stop/100);

Sell = Cross(StopLevel, C);
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);

То StopLevel изменяется, потому что появляется много сигналов на покупку.

Если поменять местами
Код:

Stop = Optimize("Opt Stop", 1, 0.25, 5, 0.25); // В процентах
Buy = ...

Sell = Cross([StopLevel, C);
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
StopLevel = ValueWhen(Buy, C, 1) * (1 - Stop/100);


то StopLevel считается правильно, но тогда он как аргумент не может использоваться в Sell.

Как правильно сделать? Трейлинг стоп не нужен. Нужен просто стоп в момент покупки. Rolling Eyes
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 05, 2009 4:20 pm Ответить с цитатой Вернуться к началу

Да все гораздо проще. Ставь стоп функцией ApplyStop() и не надо никакого StopLevel

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



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

СообщениеДобавлено: Вт Окт 06, 2009 5:17 pm Ответить с цитатой Вернуться к началу

Добавил
Код:
ApplyStop(stopTypeLoss, stopModePercent, StopAmount, 0, False);


На тестах вроде как net profit рисуется красивый, но если разобраться...

Я в тестере отключаю стопы, правильно? Торгуем только лонги. Если ApplyStop срабатывает корректно, то как его значком отметить? Функция же ничего не возвращает. Ее как бы и нет, после стрелки Buy и срабатывания стопа идет стрелка Sell по условию. А если правильно, то должна быть снова стрелка Buy.

Может неправильный порядок операторов?

Код:
Buy =
Sell =
ApplyStop
Buy = ExRem(Buy, Sell);
Sell = ExRem(Sell, Buy);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Окт 06, 2009 6:30 pm Ответить с цитатой Вернуться к началу

1. Убирай на фиг ExRem() Он не нужен.
Когда система в позиции тестер сам откинет "лишние" сигналы Buy.
2. Если необходимо отметить стрелками на чарте срабатывание стопов заданных функцией ApplyStop(), то надо использовать функцию Equity(). В описании к ней внизу есть комментарии, там все написано.

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



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

СообщениеДобавлено: Вт Окт 06, 2009 6:46 pm Ответить с цитатой Вернуться к началу

Ок. Спасибо, пошел читать.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen