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



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

СообщениеДобавлено: Вс Фев 10, 2013 8:57 am Ответить с цитатой Вернуться к началу

Использую конструкцию:

Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);

Как мне показалось, система работает неверно. Вывел значения Бай и Шорт на график, дабы видеть, где система их выдает.

Получается какая-то чушь. Или я что неверно понимаю?

Я так понимаю, при удалении сигналов через ЭксРем, Бай и Шорт должны, как минимум, чередоваться. И более того, если я правильно понимаю, не просто чередоваться, но и не появляться, пока система находится в позиции.

На картинке мы видим, что пока система в позиции, сигналы вполне себе идут (правда только на картинке). Более того - они даже не чередуются. Так, подряд выдается два бая. Но это же неверно? Или я что-то не понимаю?

П.С. И дополнительно еще один вопрос.

Допустим по условию мы входим в лонг, когда нижняя тень свечи пересекает определенный уровень, а в шорт, когда верхняя тень свечи пересекает определенный уровень. Посмотрим на картинку два. У нас на одной свече выполняются сразу два условия. Тогда отчего система приняла решение войти в шорт? И как вообще решать подобные ситуации? Увеличивать ТФ по возможности не предлагать.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Фев 10, 2013 9:32 am Ответить с цитатой Вернуться к началу

Когда на одном баре есть оба события из ExRem такое бывает.

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



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

СообщениеДобавлено: Вс Фев 10, 2013 9:36 am Ответить с цитатой Вернуться к началу

000 писал(а):
Когда на одном баре есть оба события из ExRem такое бывает.


Специально убрал ExRem, протестировал. Бары то с двумя событиями никуда не деваются. Опять система принимает какое-то решение. На основе чего? Я не могу понять. Или где-то в настройках есть галочка - отдавать предпочтение лонгу или шорту?

И как быть по первому вопросу?
Посмотреть профиль Отправить личное сообщение
AntColonel



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

СообщениеДобавлено: Вс Фев 10, 2013 10:19 am Ответить с цитатой Вернуться к началу

И вот что еще не могу понять.

Есть код системы. Результат его прогона из АА показан на картинке стрелками.

А есть ТОТ ЖЕ САМЫЙ код, который вставлен на график цены и треугольниками выводится результаты на график.

Почему разные результаты? Я ничего не могу понять. Почему разный вход в первый лонг? Почему в АА выход не прошло в том месте, где выход по треугольникам? Он должен там быть. Даже при условии разного входа.
Посмотреть профиль Отправить личное сообщение
AntColonel



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

СообщениеДобавлено: Вс Фев 10, 2013 5:22 pm Ответить с цитатой Вернуться к началу

Продолжим.

Пытаясь разобраться с тем, почему при достижении поставленной цели на расширении 161% не произошло выхода их позиции, я вывел отдельным графиком показания Buy/Short, дабы посмотреть, как их убирает ExRem. И еще одни окном вывел показания D161H и D161S. Напомню часть кода, отвечающего за сигналы:

Код:

Buy = (BC1 OR BC4 OR BC3) AND TM4 AND TM5 AND !BeginDay AND !anBC2;
Short = (SC1 OR SC3 OR SC4) AND TM4 AND TM5 AND !BeginDay AND !anSC2;

Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);

H1 = ValueWhen(Buy OR Short, NewHigh, n = 1);
L1 = ValueWhen(Buy OR Short, NewLow, n = 1);
Delta = H1-L1;
D161H = L1 + Delta*1.62;
D161S = H1 - Delta*1.62;

Lout3 = Cross (H, D161H);

Sout3 = Cross (D161S, L);

Sell = Lout3 OR Lout2 OR TM;
Cover = Sout3 OR Sout2 OR TM;


То есть по идеи в параметры D161H и D161S у нас записываются уровни по достижение которых ценой должен происходит выход. И они не должны меняться при появлении новых сигналов, ведь мы удаляем лишние функцией ExRem.

Ну вот, вывели мы все это отдельно для визуализации и сразу стало понятно, отчего не срабатывал выход. Значения D161H и D161S успешно перерисовываются при проходе новых сигналов в том случае, если экстремумы были обновлены.

Если мы взглянем на картинку, то по нашей задумке выход из второго шорта должен был произойти в 22 часа на уровне 146068. Это значение видно в окне D161S. Но параметр был перерисован после прохода "удаленного" сигнала Buy.

Подскажите решение проблемы.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Фев 10, 2013 5:54 pm Ответить с цитатой Вернуться к началу

Ами предназначен для тестирования торговых идей, а не наборов случайных правил. Если в твоей торговой идее постоянно выскакивает одновременно вход в длинную и короткую позицию, то надо думать что не так с торговой идеей а не ругаться как так Ами не правильно считает.
А если торговая идея нормальная и за историю тестирования 1-2 раза возникла ситуация когда одновременно и лонг и шорт, то не все ли равно как ами разрулит такую ситуацию? При достаточном количестве сделок это мало повлияет на статистику исследуемой системы...

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



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

СообщениеДобавлено: Вс Фев 10, 2013 6:11 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ами предназначен для тестирования торговых идей, а не наборов случайных правил. Если в твоей торговой идее постоянно выскакивает одновременно вход в длинную и короткую позицию, то надо думать что не так с торговой идеей а не ругаться как так Ами не правильно считает.


В данном случае не идет речь об одновременно входе в длинную и короткую. Взгляни на картинку. На нижнее окне - всплески buy и short различны. Дело в другом. Дело в том, что не запоминается значение.

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


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

СообщениеДобавлено: Вс Фев 10, 2013 9:09 pm Ответить с цитатой Вернуться к началу

AntColonel писал(а):

В данном случае не идет речь об одновременно входе в длинную и короткую. Взгляни на картинку. На нижнее окне - всплески buy и short различны. Дело в другом. Дело в том, что не запоминается значение.

Т.е. всё-таки мы приходим к тому, что без цикла осуществить запоминание параметров в Ами просто невозможно?

Никто никогда не скрывал того, что далеко не всегда можно заменить расчет циклом на расчет с массивами.
Иногда это неоправданно сложно, а иногда не возможно в принципе.

В данном случае, если не ошибаюсь тебе просто надо делать выход при помощи ApplyStop(). Нафига весь этот геморой с уровнями, пересечениями? При входе берешь уровень выхода и в ApllyStop() его. И всего делов....

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



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

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

000 писал(а):

В данном случае, если не ошибаюсь тебе просто надо делать выход при помощи ApplyStop(). Нафига весь этот геморой с уровнями, пересечениями? При входе берешь уровень выхода и в ApllyStop() его. И всего делов....


Да вот в том-то и дело, что не получится через ApplyStop(), поскольку уровень выхода напрямую зависит от диапазона Хай-Лой в момент входа.

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


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

СообщениеДобавлено: Пн Фев 11, 2013 6:17 am Ответить с цитатой Вернуться к началу

Цитата:
Да вот в том-то и дело, что не получится через ApplyStop(), поскольку уровень выхода напрямую зависит от диапазона Хай-Лой в момент входа.

Почему не получится? Подставляй в ApplyStop() уровень, АА его запомнит на момент входа и сработает как часы.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen