Автор |
Сообщение |
Sturman
Зарегистрирован: 24.09.2009
Сообщения: 17
|
Нужно расчитать уровень стопа, на котором происходит лимитная продажа.
Есть условие 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.
Как правильно сделать? Трейлинг стоп не нужен. Нужен просто стоп в момент покупки. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Да все гораздо проще. Ставь стоп функцией ApplyStop() и не надо никакого StopLevel |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sturman
Зарегистрирован: 24.09.2009
Сообщения: 17
|
Добавил
Код: |
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
|
1. Убирай на фиг ExRem() Он не нужен.
Когда система в позиции тестер сам откинет "лишние" сигналы Buy.
2. Если необходимо отметить стрелками на чарте срабатывание стопов заданных функцией ApplyStop(), то надо использовать функцию Equity(). В описании к ней внизу есть комментарии, там все написано. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Sturman
Зарегистрирован: 24.09.2009
Сообщения: 17
|
Ок. Спасибо, пошел читать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|