Автор |
Сообщение |
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Использую конструкцию:
Buy = ExRem(Buy,Short);
Short = ExRem(Short,Buy);
Как мне показалось, система работает неверно. Вывел значения Бай и Шорт на график, дабы видеть, где система их выдает.
Получается какая-то чушь. Или я что неверно понимаю?
Я так понимаю, при удалении сигналов через ЭксРем, Бай и Шорт должны, как минимум, чередоваться. И более того, если я правильно понимаю, не просто чередоваться, но и не появляться, пока система находится в позиции.
На картинке мы видим, что пока система в позиции, сигналы вполне себе идут (правда только на картинке). Более того - они даже не чередуются. Так, подряд выдается два бая. Но это же неверно? Или я что-то не понимаю?
П.С. И дополнительно еще один вопрос.
Допустим по условию мы входим в лонг, когда нижняя тень свечи пересекает определенный уровень, а в шорт, когда верхняя тень свечи пересекает определенный уровень. Посмотрим на картинку два. У нас на одной свече выполняются сразу два условия. Тогда отчего система приняла решение войти в шорт? И как вообще решать подобные ситуации? Увеличивать ТФ по возможности не предлагать. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Когда на одном баре есть оба события из ExRem такое бывает. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Когда на одном баре есть оба события из ExRem такое бывает. |
Специально убрал ExRem, протестировал. Бары то с двумя событиями никуда не деваются. Опять система принимает какое-то решение. На основе чего? Я не могу понять. Или где-то в настройках есть галочка - отдавать предпочтение лонгу или шорту?
И как быть по первому вопросу? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
И вот что еще не могу понять.
Есть код системы. Результат его прогона из АА показан на картинке стрелками.
А есть ТОТ ЖЕ САМЫЙ код, который вставлен на график цены и треугольниками выводится результаты на график.
Почему разные результаты? Я ничего не могу понять. Почему разный вход в первый лонг? Почему в АА выход не прошло в том месте, где выход по треугольникам? Он должен там быть. Даже при условии разного входа. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Продолжим.
Пытаясь разобраться с тем, почему при достижении поставленной цели на расширении 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
|
Ами предназначен для тестирования торговых идей, а не наборов случайных правил. Если в твоей торговой идее постоянно выскакивает одновременно вход в длинную и короткую позицию, то надо думать что не так с торговой идеей а не ругаться как так Ами не правильно считает.
А если торговая идея нормальная и за историю тестирования 1-2 раза возникла ситуация когда одновременно и лонг и шорт, то не все ли равно как ами разрулит такую ситуацию? При достаточном количестве сделок это мало повлияет на статистику исследуемой системы... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Ами предназначен для тестирования торговых идей, а не наборов случайных правил. Если в твоей торговой идее постоянно выскакивает одновременно вход в длинную и короткую позицию, то надо думать что не так с торговой идеей а не ругаться как так Ами не правильно считает.
|
В данном случае не идет речь об одновременно входе в длинную и короткую. Взгляни на картинку. На нижнее окне - всплески buy и short различны. Дело в другом. Дело в том, что не запоминается значение.
Т.е. всё-таки мы приходим к тому, что без цикла осуществить запоминание параметров в Ами просто невозможно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
AntColonel писал(а): |
В данном случае не идет речь об одновременно входе в длинную и короткую. Взгляни на картинку. На нижнее окне - всплески buy и short различны. Дело в другом. Дело в том, что не запоминается значение.
Т.е. всё-таки мы приходим к тому, что без цикла осуществить запоминание параметров в Ами просто невозможно? |
Никто никогда не скрывал того, что далеко не всегда можно заменить расчет циклом на расчет с массивами.
Иногда это неоправданно сложно, а иногда не возможно в принципе.
В данном случае, если не ошибаюсь тебе просто надо делать выход при помощи ApplyStop(). Нафига весь этот геморой с уровнями, пересечениями? При входе берешь уровень выхода и в ApllyStop() его. И всего делов.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
В данном случае, если не ошибаюсь тебе просто надо делать выход при помощи ApplyStop(). Нафига весь этот геморой с уровнями, пересечениями? При входе берешь уровень выхода и в ApllyStop() его. И всего делов.... |
Да вот в том-то и дело, что не получится через ApplyStop(), поскольку уровень выхода напрямую зависит от диапазона Хай-Лой в момент входа.
Вот, кстати, всегда настораживало - ведь для ApplyStop() где-то же хранится информация о значении входа... Почему её тогда нельзя использовать для работы. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Цитата: |
Да вот в том-то и дело, что не получится через ApplyStop(), поскольку уровень выхода напрямую зависит от диапазона Хай-Лой в момент входа. |
Почему не получится? Подставляй в ApplyStop() уровень, АА его запомнит на момент входа и сработает как часы. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|