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



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

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

Прошу прощения, если подобная тема уже всплывала - не смог найти.

Ситуация следующая:

К примеру, имеет простенькую - МА(21) и АДХ. Лонг - АДХ > 20, C > MA(21). Выход - C < MA(21) либо по ТП или СЛ. Соответсвенно, шорт полностью противоположен.

Имеем следующий код:
P1 = Param ("Period MA1", 21, 0, 144, 1);
P2 = Param ("Period ADX", 14, 0, 144, 1);
P3 = Param ("ATR", 14, 0, 144, 1);

MA1 = MA (Close, P1);
ADX1 = ADX (P2);
SL = 2*ATR (P3);
Out1 = TimeNum() == 184000;

Buy = ADX1 > 20 AND C > MA1;
Sell = C < MA1;
Short = ADX1 > 20 AND C < MA1;
Cover = C > MA1;

ApplyStop( stopTypeLoss, 2, abs(SL), 1, volatile = False, ReEntryDelay = 0 );
//ApplyStop(stopTypeLoss, stopModePercent, 0.5, ExitAtStop = 1);
ApplyStop(stopTypeProfit, stopModePercent, 1, ExitAtStop = 1);

// trade size: 25% of current portfolio equity
//SetPositionSize( 200, spsPercentOfEquity );
Equity( 1 );

В итоге мы получаем ситуацию, когда при выходе по ТП, цена закрытия все равно может находится выше МА и АДХ выше 20, таким образом мы тут же получаем новый лонг. Либо, после выхода по условию, цена опять возвращается выше МА и снова получаем новый лонг.

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


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

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

Код:

Buy = ADX1 > 20 AND C > MA1;
Sell = C < MA1;
Short = ADX1 > 20 AND C < MA1;
Cover = C > MA1;

Direct = Flip(Buy, Short);

Buy = Buy AND Direct;
Short = Short AND !Direct;

Как то так. Не проверял, но должно работать.

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen