Автор |
Сообщение |
MA8
Зарегистрирован: 05.12.2010
Сообщения: 16
|
Только начал разбираться с AFL и не могу исправить вот такой пример:
Код: |
Buy = Cross( EMA( Close, 5 ) , EMA( Close, 40 ) );
Sell = Cross( EMA( Close, 40 ), EMA( Close, 5 ) ); |
Хочу сделать так, чтобы сигналы на покупку и продажу поступали в момент пересечения 5-дневной средней с 40-средневной.
В чем моя ошибка в коде?[/code] |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Нет никакой ошибки. А почему решил, что ошибка? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
MA8
Зарегистрирован: 05.12.2010
Сообщения: 16
|
Решил, что ошибка потому что, посмотрев сделки, увидел, что они совершаются не в момент пересечения средних, а когда цена закрытия пересекает одну из линий. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
spitfire
![](images/avatars/14059505354d4eba7b43982.jpg)
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Могет добавить к коду строчки BuyPrice, SellPrice? |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
MA8 писал(а): |
Решил, что ошибка потому что, посмотрев сделки, увидел, что они совершаются не в момент пересечения средних, а когда цена закрытия пересекает одну из линий. |
Этого не может быть. Код верный еа 100%. И очень, очень маловероятно, что Ами лажает. Скорее всего что то не так смотришь. Давай скрины. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
MA8
Зарегистрирован: 05.12.2010
Сообщения: 16
|
000 писал(а): |
Этого не может быть. Код верный еа 100%. И очень, очень маловероятно, что Ами лажает. |
Все верно, Ами не лажает. Разобрался с проблемой. На графике был выбран другой период для одной из средних, поэтому пересечения не совпадали.
Но обнаружил другую проблемую Скрипт открывает только длинные позиции, на скриншоте видно, что 10 марта короткая позиция не была открыта, хотя 5-дневная линия пересекла 20-дневную. (в скрипте я поменял один параметр с 40 дней на 20)
[/img] |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Правильно. Он и не будет открывать короткую позицию. И этому целых 2 причины.
1. У тебя в коде нет правил на открытие короткой.
Открытие короткой позиции
Short = Cross(....);
Закрытие короткой
Cover = Cross();
2. В настройках АА Position стоит Long, а для открытия коротких надо Long and Short
Если бы в настройках стояло Long and Short, то Ами бы ругался, что в коде нет правил на открытие шорта. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
MA8
Зарегистрирован: 05.12.2010
Сообщения: 16
|
Все, теперь разобрался
Большое спасибо за помощь.
Есть все-таки еще один вопрос. Почему если прогнать один и тот же код по всем акциям, то получется 13 сделок, а если выбрать только одну, то получается больше чем для всех - 17? Пробовал менять размер начального капитала, но ситуация не меняется. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
000
Site Admin
![](images/avatars/183029264847fb5337d4ea4.gif)
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Все просто. У тебя в коде не установлен размер позиции.
SetPositionSize();
Поэтому Ами когда видит сигнал на сделку берет на все. Соответственно все следующие сигналы игнорируются, т.к. нет свободных денег, до тех пор, пока не закроется уже открытая позиция. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
![](images/spacer.gif) |
MA8
Зарегистрирован: 05.12.2010
Сообщения: 16
|
000 писал(а): |
Все просто. У тебя в коде не установлен размер позиции.
SetPositionSize();
|
Большое спасибо. Буду разбираться. |
|
|
Посмотреть профиль Отправить личное сообщение |
![](images/spacer.gif) |
|