ТЕСТИРОВАНИЕ ЦЕЛЕВОЙ ПРИБЫЛИ
Энциклопедия торговых стратегий














ТЕСТИРОВАНИЕ ЦЕЛЕВОЙ ПРИБЫЛИ

ТЕСТИРОВАНИЕ ЦЕЛЕВОЙ ПРИБЫЛИ На этой основе удалось получить лучшую из пока обнаруженных стратегий размещения защитной остановки при исходном параметре 2,5, сдвиге СИДС = 1 и коэффициенте адаптации КОЭФФ = 0,30. В оригинальном тесте модифицированного ЭСС (табл. 14-4) был использован оптимальный фиксированный уровень целевой прибыли, сейчас же на его место поставлен динамический лимитный приказ - уровень целевой прибыли, который изначально установлен далеко от рыночной цены, но приближается к ней со временем. Идея состоит в том, чтобы обеспечить выход из "застойных" сделок на пике шумовой активности цены, при этом не жертвуя прибылью потенциально выгодных позиций в первые дни их "жизни". Использованный подход очень напоминает методику получения динамической защитной остановки на основе экспоненциального скользящего среднего. Здесь скользящее среднее инициализируется необычным образом: скользящей сумме присваивается значение рыночной цены плюс (для длинных) или минус (для коротких позиций) произведение среднего истинного диапазона и параметра ptlim. Таким образом, скользящее среднее начинается, как и при вычислении защитной остановки. Точно таким же образом уровень целевой прибыли корректируется в каждый последующий день: расстояние между текущей ценой целевой прибыли и текущей ценой закрытия умножается на параметр ptga. Результат затем вычитается из текущей цены целевой прибыли, приближая ее к рыночной цене. В отличие от защитной остановки целевая прибыль может перемещаться в обоих направлениях, хотя это и маловероятно - если позиция открыта уже достаточно долго, то лимитный приказ прервет сделку при любом сильном благоприятном движении цены. Второй параметр ptga управляет периодом скользящего среднего, т.е. скоростью приближения целевой прибыли к рыночной цене. Правила, в общем, идентичны вышеприведенному тесту защитной остановки на модифицированном ЭСС, но относятся к уровню целевой прибыли. // Выходим из сделок, используя стандартный выход с улучшенными защитными // остановками и целевой прибылью atr = exitatr[cb]; if(entryposted > 0) { // инициализация и выходы для длинных позиций на каждый день switch (modeltype) { case 1: limprice = entryprice + ptlira * atr; stpprice = min (Lowest(lo, 2, cb), entryprice = mmstp * atr); break; case 2: case 3: case 4: limprice = entryprice + ptlim * atr; stpprice = entryprice - mmstp * atr; break; default: nrerror("Invalid modeltype") ; } ts.exitlonglimit('A', limprice}; ts.exitlongstop('B', stpprice); } else if(entryposted < 0) { // инициализация и выходы для коротких позиций на каждый день switch(modeltype) { case 1: limprice = entryprice - ptlim * atr; stpprice = max (Highest(hi, 2, cb) entryprice + mmstp * atr) ; break; case 2: case 3: case 4: limprice = entryprice - ptlim * atr; stpprice = entryprice + mmstp * atr; break; default: nrerror("Invalid modeltype"); } ts.exitshortlimit('C' , limprice); ts.exitshortstop('D' , stpprice); } else { // выходы после дня входа if(ts.position() > 0} { // длинные позиции switch(modeltype) { case 1: stpprice = max(stpprice, Lowest(lo,2, cb) ) ; break, case 2: stpprice = max(stpprice,els[cb]-stpa*atr); break; case 3: tmp = (hi[cb] - stpa * atr) - stpprice; if(tmp > 0.0) stpprice += stpb * tmp; break; case 4: tmp = ( h i [ c b ] - stpa * atr) - stpprice; if(tmp > 0.0) stpprice += stpb * tmp; limprice = limprice - ptga*(limprice-cls[cb] ) , break; } ts.exitlonglimit('F' , limprice) ; ts.exitlongstop ('G' , stpprice}; if (cb-entrybar >= maxhold) ts.exitlongclose('E' } ; } else if{ts.position() < 0) { // короткие позиции switch (modeltype) [ case 1: stpprice = min(stpprice, Highest(hi,2,cb) ) ; break; stpprice = min(stpprice, els [cb]+stpa*atr} ; break; case 3: tmp = (lo[cb] + stpa * atr) - stpprice; if(tmp < 0.0) stpprice += stpb * tmp; break; case 4: tmp = (lo[cb] + stpa * atr) - stpprice; if{tmp < 0.0) stpprice += stpb * tmp; limprice = limprice + ptga*(cls [cb]-limprice); break; ) ts.exitshortlimitl'I1, limprice); ts.exitshortstopl'J1 , stpprice); if {cb-entrybar >= maxhold) ts.exitshortclose('H' ) ; ) ) Приведенный выше фрагмент кода показывает реализацию динамического лимитного приказа целевой прибыли совместно с экспоненциальной защитной остановкой согласно табл. 14-4. В табл. 14-5 приведена информация об эффективности торговли портфелем как функции значений исходной целевой прибыли (ptlim в коде, ИЦП в таблице) и коэффициента скорости адаптации (ptga в коде, КОЭФФ в таблице). Первый параметр, управлявший расположением целевой прибыли относительно цены входа (в единицах среднего истинного диапазона), прогонялся от 2 до 6 с шагом 0,5. Коэффициент скорости адаптации прогонялся от 0,05 до 0,4 с шагом 0,05. Лучшее из сочетаний показало эффективность, превосходящую результат, полученный при использовании фиксированной целевой прибыли (соотношение риска/прибыли -1,32, процент прибыльных сделок не изменился - 37%, средний убыток со сделки - $1325). Эта модель также была не слишком чувствительна к изменениям параметров. Результаты показывают, что с целевыми прибылями следует быть осторожным: они имеют тенденцию преждевременно закрывать сделки с высоким потенциалом прибыли. Как видно из табл. 14-5, при более близком размещении целевой прибыли процент прибыльных сделок резко возрастал (больше сделок достигало лимитного приказа целевой прибыли и закрывалось с маленькой прибылью) . При этом соотношение риска/прибыли и средние показатели ухудшались, показывая, что увеличение процента выгодных сделок не может скомпенсировать потери потенциальных прибылей, вызванные слишком близким расположением целевой прибыли. Иногда лучше не иметь никакой целевой прибыли - при этом по крайней мере вы не пропустите важные благоприятные движения рынка. То же справедливо и в отношении коэффициента адаптации - уровни целевой прибыли, слишком быстро приближавшиеся к рыночной цене, преждевременно закрывают хорошие позиции. Назад

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
Hosted by uCoz