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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

СообщениеДобавлено: Чт Янв 26, 2012 1:39 pm Ответить с цитатой Вернуться к началу

Вот такую конструкцию можно использовать?
S=...;
S1=Ref(S,-BarsSince(Buy));
S2=Ref(S,-BarsSince(Short));
S3=IIf(Buy,S1,S2);

ApplyStop(stopTypeLoss, stopModePoint, S3, 1, True);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Янв 26, 2012 5:07 pm Ответить с цитатой Вернуться к началу

Сделать то можно почти все. За разрешение изменения уровня стопа отвечает 5-ый параметр (volatile)
А чтобы он изменялся по параметру на момент сделки запомние его
qqq = ValueWhen(Buy, параметр);

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



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

СообщениеДобавлено: Чт Янв 26, 2012 5:24 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Сделать то можно почти все. За разрешение изменения уровня стопа отвечает 5-ый параметр (volatile)
А чтобы он изменялся по параметру на момент сделки запомние его
qqq = ValueWhen(Buy, параметр);

почему то не правильно работает функция IIF
Вот при такой конструкции
S=...;
q1=ValueWhen(Buy,S);
q2=ValueWhen(Short,S);
S3=IIf(Buy,q1,q2);
ApplyStop(stopTypeLoss, stopModePoint, S3, 1, True);

правильно считаются только шорты а баи нет. Соответственно если заменить S3=IIf(Short,q2,q1) будут правильно считаться баи. а шорты нет. Не подскажите в чем здесь ошибка?
Посмотреть профиль Отправить личное сообщение
Дмитрий



Зарегистрирован: 29.11.2011
Сообщения: 96
Откуда: Саратов

СообщениеДобавлено: Чт Янв 26, 2012 8:03 pm Ответить с цитатой Вернуться к началу

Вопрос снимается. Нашел решение. надо использовать
S3=IIf(BarsSince(Buy)<BarsSince(Short),q1,q2);
Посмотреть профиль Отправить личное сообщение
AmiTrt



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

СообщениеДобавлено: Вт Мар 13, 2012 11:59 am Ответить с цитатой Вернуться к началу

Дмитрий писал(а):

Вот при такой конструкции
S=...;
q1=ValueWhen(Buy,S);
q2=ValueWhen(Short,S);
...

Не понял - а зачем такой огород городить из q1 и q2, если в данном коде можно просто S использовать без привлечения q1, q2 - ??
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Мар 13, 2012 12:08 pm Ответить с цитатой Вернуться к началу

Действительно. Если в случаях Buy и Short были разные стопы... А так можно просто

Код:
s = ValueWhen(Buy OR Short, S);

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



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

СообщениеДобавлено: Ср Май 16, 2012 12:09 pm Ответить с цитатой Вернуться к началу

Дмитрий писал(а):
Вопрос снимается. Нашел решение. надо использовать
S3=IIf(BarsSince(Buy)<BarsSince(Short),q1,q2);

Наткнулся на один баг с похожей конструкцией - на первой сделке, приходящейся на первые(глобально среди всех периодов) bar может не сработать и выдать неопределенный стоп.
Чтобы и там корректно сработало - добавить условие-пустышку надо:

S3=IIf(BarsSince(Buy)<BarsSince(Short) OR false,q1,q2)
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen