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



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

СообщениеДобавлено: Вт Янв 25, 2011 10:27 pm Ответить с цитатой Вернуться к началу

да, примерно так. ЛогикаSmile
Но и на баре входа uroven должен выть известен. И тогда все будет норм. И стрелка BUY будет в нужное время в нужном месте.
Сделаешь, напиши. Посмотрим стопы. У меня они уже в одной системе неплохо работают.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ZDN



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

СообщениеДобавлено: Вт Янв 25, 2011 10:49 pm Ответить с цитатой Вернуться к началу

Teema писал(а):
да, примерно так. ЛогикаSmile
Но и на баре входа uroven должен выть известен. И тогда все будет норм. И стрелка BUY будет в нужное время в нужном месте.
Сделаешь, напиши. Посмотрим стопы. У меня они уже в одной системе неплохо работают.


ок! завтра сделаю, отпишусь... скинь кодик стопов, если такой же принцип, а то у меня всё еще вопрос открыт...
Посмотреть профиль Отправить личное сообщение
Teema



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

СообщениеДобавлено: Вт Янв 25, 2011 10:51 pm Ответить с цитатой Вернуться к началу

Нет готового варианта. Только часть из того что Олег написал проверена. Вместе доделаемSmile
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


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

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

Ок. Давайте пока сами. Завтра вечером посмотрю, что у вас получилось.
Пока напишу почему сделал так и почему не правильно работает.
Sell = L < IIf(Buy, L, (Ref(L, -1) + Ref(L, -2))/2);

На баре где покупка стоп определятся по минимуму свечки. В принципе там и так уже стоит стоп опставленный ApplyStop(), но если оставить обычный скользящий, то есть вероятность, что он окажется выше Low на баре входа и не кстати сработает. Поэтому я его установил на Low.
А не работает вот почему. Стоп имеет приоритет перед всеми другими сигналами и если на одном баре 2 сигнала (в данном случае выход и стоп), то сработает именно стоп.

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



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

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

[quote="zadun"]
Teema писал(а):
да, примерно так. ЛогикаSmile
Но и на баре входа uroven должен выть известен. И тогда все будет норм. ......


Пробую - пробую, но есть маленькое НО.... - uroven теперь у меня рассчитывается на предыдущем баре, а не на баре входа, т.к. на условие покупки теперь добавлено ref(...,-1). Есть ли вариант??? (оператор или прием) - как то зафиксировать ценник uroven-я и присвоить его на бар, где и происходит вход в рынок. У меня ведь сигнал и uroven рассчитываюся баром раньше и по параметрам предыдущих баров, а не на том, где вход.

А стоп наверно как то через логику придется мудрить, может даже через циклRolling Eyes
Question
Посмотреть профиль Отправить личное сообщение
Teema



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

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

Я так делаю Buy=H>ref(U,-1); сравниваешь High с предыдушим значением уровня. Ну и другие условия добавляй.
Короче, на предыдущем баре должны быть готовы все условия и уровни.
На текущем баре пишешь условия входа в сделку, при этом берешь все нужные значения с предыдущего бара.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ZDN



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

СообщениеДобавлено: Чт Янв 27, 2011 8:38 am Ответить с цитатой Вернуться к началу

Всё дело в том, что я так и делаю, но ерундистика у меня в присвоении BuyPrice.... он та у меня будет равен uroven, а тот рассчитан на предыдущем баре - вот стрелка и ставится баром раньше, а не так как надо. вот если бы как то пересчитать (перенести ценник) uroven на бар входа, тогда и стрелка была бы на нужном баре.
Посмотреть профиль Отправить личное сообщение
ZDN



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

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

Асы Amibroker - Help!!! Всё перепробывал для решения задачи со стопом, но ни как не могу отделаться от возникшей проблеммы с срабатыванием первоначального стоп вместо скользящего. Crying or Very sad
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Янв 27, 2011 10:43 pm Ответить с цитатой Вернуться к началу

Во первых по входу и уровню.
Обзову условие Cond
Код:

Cond = ...;
Buy = Ref(Cond, -1) AND O < Ref(H, -1) AND H > Ref(H, -1);
// на прошлом баре было условие а на текущем открытие ниже прошлого хая а най выше прошлого
BuyPrice = Ref(H, -1);
// цена сделки равна прошлому хаю.




Правильней BuyPrice сделать так
Код:

BuyPrice = IIf(O > Ref(H, -1), O, Ref(H, -1));

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


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

СообщениеДобавлено: Чт Янв 27, 2011 11:02 pm Ответить с цитатой Вернуться к началу

Теперь про стоп. Идеально конечно написать цикл, но можно попробовать и так.
Код:
Sell = L < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, L));
SellPrice = IIf(O < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, L)), O, Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, L)));

Если Low меньше верхнего из уровней первый из которых скользящий стоп (Ref(L, -1) + Ref(L, -2))/2 а второй Low в момент когда был прошлый сигнал Buy.
С ценой выхода так. Если открытие ниже уровня стопа, то выход по открытию. В противном случае выход по уровню.
Тут может быть косяк. Если за время сделки возникнет еще один сигнал на покупку, то и первый стоп перенесется на уровень Low этого бара несмотря на то, что сигнал не будет исполнен т.к. система уже в рынке.
Но тут как посмотреть. В общем в этом есть логика. Ведь на сигнале входа мы ставим стоп на Low? так почему бы не переносить его и в процессе сделки если возник новый сигнал?


Теперь о косяке в логике системы.
Мы входим внутри свечи при пробитии уровня и ставим стоп на Low этой свечи. Интересно как мы это можем сделать когда до закрытия свечи её Low не известен? Таким образом мы подсматриваем вперед.

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



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

СообщениеДобавлено: Пт Янв 28, 2011 9:25 am Ответить с цитатой Вернуться к началу

Спасибо, Олег! Smile
Я вхожу при пробитии уровня рассчитанного на предыдущей свече и ставлю стоп на Low той же предыдущей свечки, а уж потом когда закроется свеча, где я входил - отменяю поставленный стоп и рассчитываю скользящий стоп по Low закрытой свечи и предыдущей, как среднее.
Олег, НЕТ заглядывания в будущее. Торгую эту систему уже несколько месяцев, пока всё ок, но есть дополнительные идеи и поэтому нужно воспроизвести ее в тестере amibroker’a.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Янв 28, 2011 9:44 am Ответить с цитатой Вернуться к началу

Тогда так.
Код:

Sell = L < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, Ref(L, -1)));
SellPrice = IIf(O < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, L)), O, Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, L)));

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



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

СообщениеДобавлено: Пт Янв 28, 2011 11:36 am Ответить с цитатой Вернуться к началу

Вставил в тестер вот такой код:
Sell = L < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, Ref(L, -1)));
SellPrice = IIf(O < Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, Ref(L, -1))), O, Max((Ref(L, -1) + Ref(L, -2))/2, ValueWhen(Buy, Ref(L, -1))));

Проверил на выборке результаты тестера, сперва обрадовался (несколько трейдов выполнились идеально), но потом появилась вот такая картина (см. рисунок):
- в течении позиции у меня был один ложный сигнал на продажу и сразу за ним сигнал на покупку, хотя перед сигналом на продажу было еще целая куча сигналов на покупку;
- выход произошел баром раньше по цене минимума предыдущего бара (или пред-предыдущего бара, где должен был быть выход), как будь то у меня на этом баре был сигнал на вход, а там, где случился выход - был выход по первоначальному стопу, а не по скользящему, т.е. по условию (MAX(...,...).

Наверно здесь еще проверка на продажу нужна или, Олег, как Вы и говорили, - нужен цикл.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пт Янв 28, 2011 2:54 pm Ответить с цитатой Вернуться к началу

Напишу. Только не сегодня. Или в субботу вечером или в воскресенье.

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



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

СообщениеДобавлено: Пт Янв 28, 2011 3:33 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Напишу. Только не сегодня. Или в субботу вечером или в воскресенье.


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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen