AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Прошу прощения, если подобная тема уже всплывала - не смог найти.
Ситуация следующая:
К примеру, имеет простенькую - МА(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, таким образом мы тут же получаем новый лонг. Либо, после выхода по условию, цена опять возвращается выше МА и снова получаем новый лонг.
Вопрос: как заставить систему делать только один вход по условию? Следующий должен быть в обратном направлении. Т.е. игнорировать вещи, указанные в прошлом абзаце. |
|
|