Главная страница
Навигация по странице:

  • 168 ЧАСТЬ II

  • ТЕСТИРОВАНИЕ МОДЕЛЕЙ, ОСНОВАННЫХ НА ПОНЯТИИ ПЕРЕКУПЛЕННОСТИ/ПЕРЕПРОДАННОСТИ

  • Тесты 1—3. Стохастические модели на основе понятия перекуп

  • Тесты 4—6. Модели RSI на основе понятия перекупленности/пере

  • Тесты моделей на основе сигнальной линии

  • Тесты 7—9. Модели на основе стохастического осциллятора с сиг

  • Тесты 10—12. Модели MACD на основе сигнальной линии.

  • Тесты 13—15. Модели расхождения

  • Д.Катс.Д.Маккормик.Энциклопедия торговых стратегий. Донна л. Маккормик


    Скачать 5.96 Mb.
    НазваниеДонна л. Маккормик
    АнкорД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
    Дата28.01.2017
    Размер5.96 Mb.
    Формат файлаpdf
    Имя файлаД.Катс.Д.Маккормик.Энциклопедия торговых стратегий.pdf
    ТипДокументы
    #727
    КатегорияЭкономика. Финансы
    страница18 из 41
    1   ...   14   15   16   17   18   19   20   21   ...   41
    ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ 165
    // объявляем локальные переменные static int rc, cb, ncontracts, maxhold, len1, len2, len3;
    static int modeltype, ordertype, osctype, signal, i, j, k;
    static float mmstp, ptlim, stpprice, limprice, tmp;
    static float exitatr[MAXBAR+1];
    static float sigline[MAXBAR+1], oscline[MAXBAR+1];
    static float upperband[MAXBAR+1] , lowerband [MAXBAR+1] ;
    // копируем параметры в локальные переменные для удобного обращения lenl = parms[l]; // более короткий для первого параметра длины
    1еn2 = parms[2] ; // более длинный для второго параметра длины
    1епЗ = parms[3]; // длина теста дивергенции modeltype = parms[7]; // тип осцилляторной модели входа osctype - parms[8]; // тип осциллятора ordertype = parms[9]; // тип входного приказа maxhold = 1 0 ; // период максимального удержания позиции ptlim = 4 ; // целевая прибыль в единицах волатильности mmstp = 1 ; // защитная остановка в единицах волатильности
    // пропускаем неправильные комбинации параметров,
    if ( (osctype==4 && len1>=len2) ) (
    set_vector(eqcls, 1, nb, 0.0);
    return;
    }
    // выполняем вычисления для всех данных, используя процедуры быстрой обработки
    // массивов
    AvgTrueRangeS{exitatr,hi,lo,cls,50,nb); // средний истинный диапазон для выхода switch(osctype} { // выбираем осциллятор case 1: // классические быстрые стохастики
    StochOsc(oscline,hi,lo,cls,1,len1,nb); //Быстрый %К
    MovAvg(sigline, oscline, 1, 3, nb); //Быстрый %D
    set_vector(upperband, 1, nb, 80.0); //верхняя граница set_vector(lowerband, 1, nb, 20.0); //пробой нижней границы break;
    case 2: // классические медленные стохастики
    StochOsc(oscline,hi,lo,cls,2,lenl,nb); //Медленный %К
    MovAvg(sigline, oscline, 1, 3, nb); //Медленный %D
    set_vector(upperband, 1, nb, 80.0); //верхняя граница set_vector(lowerband, 1, nb, 20.0); //пробой нижней границы break;
    case 3: // классический RSI
    RsiOsc(oscline, cls, 1, lenl, nb); //RSI
    MovAvgtsigline, oscline, 1, 3, nb) ; //3-дневное ПСС
    set_vector(upperband, 1, nb, 70.0); //верхняя граница set_vector(lowerband, 1, nb, 30.0); //пробой нижней границы break;
    case 4 : // классический MACD
    MacdOsc(oscline,cls,1,lenl,len2,nb); //классический MACD
    MovAvg(sigline, oscline, 2, 9, nb) ; //9-дневное ЭСС
    for{i=l; i<=nb; i++}
    lowerband[i]=1.5*fabs(oscline[i] ) ; //пороги
    MovAvg(upperband,lowerband,1,120,nb); //как долгосрочная for{i=l; i<=nb; i++} //отклонение от среднего lowerband[i]= -upperband[i]; //полосы break;
    default: nrerror("Invalid moving average selected");
    };
    // проходим через штрихи (дни), чтобы смоделировать реальную торговлю for{cb = 1; cb <= nb; cb++} {
    // не открываем позиций до начала периода выборки
    // ... то же самое, что и установка MaxBarsBack в TradeStation

    166 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
    if(dt[cb] < IS_DATE) { egcls[cb] = 0.0; continue; )
    // выполняем ожидающие приказы и считаем накопленный капитал rс = ts.update{opn[cb], hi[cb], lo[cb], cls[cb], cb);
    if(rc = 0) nrerror("Trade buffer overflow"};
    eqcls[cb] = ts.currentequity(EQ_CLOSETOTAL);
    // считаем количество контрактов для позиции
    //... мы хотим торговать эквивалентом долларовой волатильности
    //... 2 новых контрактов S&P-500 от 12/31/98
    ncontracts = RoundToInteger(5673.0 / dlrvfcbj);
    if(ncontracts < 1) ncontracts = 1;
    // избегаем устанавливать приказы на дни с ограниченной торговлей if(hi[cb+l] == lo[cb+l]) continue;
    // генерируем входные сигналы, цены стоп- и лимитных приказов,
    // используя определенную модель входа на осцилляторах
    #define CrossesAbove (a,b,c) (а[с]>=b[с] && а[с-1]#define CrossesBelow(a,b, с) (a[c]=b [с-1] )
    #define TurnsUp(a,c) (а[с]>=а[с-1] && а[с-1]<а[с-2])
    #define TurnsDn(a,c) (a[c]=а [с-2] )
    signal=0;
    switch (modeltype) {
    case 1: // модель перекупленности-перепроданности if(CrossesAbove(oscline, lowerband, cb)}
    signal = 1;
    else if(CrossesBelow(oscline, upperband, cb))
    signal = -1;
    limprice = 0.5 * (hi [cb] + lo [cb] ) ;
    stpprice = cls[cb] +0.5 * signal * exitatr[cb];
    break;
    case 2: // модель сигнальной линии if(CrossesAbove(oscline, sigline, cb))
    signal = 1;
    else if(CrossesBelow(oscline, sigline, cb))
    signal = -1;
    limprice = 0.5 * (hi [cb] + lo[cb]) ;
    stpprice = cls[cb] + 0.5 * signal * exitatr[cb];
    break;
    case 3: // модель дивергенции i = LowestBar(cls, len3, cb) ;
    j = LowestBar(oscline, len3, cb);
    if(i < cb && i > cb-6 && j > cb-len3+l && i-j > 4
    && TurnsUp(oscline, cb)) signal = 1;
    else {
    i = HighestBar(cls, len3, cb} ;
    j = HighestBar(oscline, len3, cb);
    if(i < cb && i > cb-6 && j > cb-len3+l && i-j > 4
    && TurnsDn(oscline, cb)) signal = -1;
    )
    limprice = 0.5 * (hi[cb] + lo[cb]);
    stpprice = cls[cb] + 0.5 * signal * exitatr[cb];
    break;
    default: nrerror("Invalid model selected");
    )
    #undef CrossesAbove
    #undef CrossesBelow
    #undef TurnsUp
    #undef TurnsDn
    // входим в сделку, используя определенный тип приказа if (ts.position() <= 0 && signal == 1) {
    switch(ordertype) { // выбираем нужный вид приказа case 1: ts.buyopen('1', ncontracts); break;
    case 2: ts.buylimit('2', limprice, ncontracts); break;

    ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ 167
    Логика кода весьма напоминает программу, использованную для тес- тирования скользящих средних. Сначала копируется ряд параметров в местные переменные для простоты ссылок и считывания дальнейшим кодом. Затем проверяется наличие непригодных сочетаний параметров,
    например для MACD (osctype = 4) длина короткого скользящего средне- го должна быть меньше, чем длинного, иначе тест будет пропущен. В сле- дующем крупном блоке osctype выбирает вид рассчитываемого осцилля- тора (1 — быстрый стохастический, 2 — медленный стохастический, 3 —
    классический RSI, 4 — классический MACD) . Осциллятор oscline затем рассчитывается в виде ряда данных или вектора, генерируются дополни- тельные кривые, связанные с ним, например сигнальная линия sigline или медленная версия осциллятора. Верхний (upperband) и нижний (lowerband)
    пороги либо рассчитываются, либо задаются. Для стохастического осцил- лятора используются стандартные пороги 80 и 20, для RSI — пороги на уровне 70 и 30. Хотя MACD как таковой не имеет порогов, пороги для него устанавливаются на уровне плюс-минус полтора стандартных отклоне- ния от нуля. Затем начинается процесс перебора данных, день за днем.
    В цикле перебора данных представляют интерес два главных блока —
    первый генерирует сигналы покупки и продажи, а также цены для лимит- ного и стоп-приказов, используемых выбранной моделью. Параметр mode/type выбирает модель: 1 — модель перекупленности/перепроданно- сти, 2 — модель сигнальной линии, 3 — модель на расхождении. При этом используется один из вышеперечисленных осцилляторов, выбранный параметром osctype. Последний блок производит вход в рынок согласно выбранному значению параметра ordertype: 1 — для входа по цене откры- тия, 2 — по лимитному приказу, 3 — по стоп-приказу. Затем симулятор использует стандартную модель выхода для закрытия сделок.
    Точные логические основания для входа будут обсуждаться ниже в контексте индивидуальных тестов, что не требует от читателя понимания или обращения к коду.
    case 3: ts.buystop('3', stpprice, ncontracts); break;
    default: nrerror("Invalid buy order selected");
    }
    }
    else if(ts.position1) >= 0 && signal == -1) {
    switch(ordertype) { // выбираем желаемый тип приказа case 1: ts.sellopen('4', ncontracts); break;
    case 2: ts.selllimit('5', limprice, ncontracts); break;
    case 3: ts.sellstop('6', stpprice, ncontracts); break;
    default; nrerror("Invalid sell order selected");
    }
    }
    // симулятор использует стандартную стратегию выхода tmp = exitatr[cb];
    ts.stdexitcls ('Х', ptlim*tmp, nmstp*tmp, maxhold) ;
    } // обрабатываем следующий день
    ]

    168 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
    РЕЗУЛЬТАТЫ ТЕСТОВ
    Проводилось тестирование трех осцилляторных моделей входа: на осно- ве понятия перекупленности/перепроданности (осцилляторы RSI и сто- хастический), на основе взаимодействия осциллятора с сигнальной лини- ей (стохастический осциллятор и MACD) и на основе расхождения (ста- тистический осциллятор, RSI и MACD). Все индивидуальные комбинации были исследованы с входами по цене открытия, по лимитному приказу и по стоп-приказу. Сравнение результатов всех трех видов входов приве- дено ниже в данной главе.
    Табл. 7-1 и 7-2 содержат результаты каждого из 21 тестов. Данные рас- пределены по торгуемым финансовым инструментам, по моделям, пока- завшим прибыль и убыток в пределах выборки (табл. 7-1) и вне пределов выборки (табл. 7-2). Первый столбец (SYM) — это символ рассматривае- мого рынка, первая строка — номер теста. Степень прибыльности и убы- точности рынков для каждой модели указана следующим образом: один минус (—) означает убыток в $2000 — 4000, два минуса (- -) — убыток более $4000; один плюс ( + ) означает прибыль $1000 — 2000, два плю- са (++) — прибыль более $2000; пустая ячейка означает прибыль до $ 1000
    или убыток до $1999 со сделки.
    ТЕСТИРОВАНИЕ МОДЕЛЕЙ, ОСНОВАННЫХ НА ПОНЯТИИ
    ПЕРЕКУПЛЕННОСТИ/ПЕРЕПРОДАННОСТИ
    Входы генерировались, когда осциллятор пересекал верхний порог вниз или нижний порог вверх. Эти модели являются противотрендовыми. Ког- да осциллятор указывает на импульс цен, направленный вниз, произво- дится покупка. В противоположном случае производится продажа. В тес- тах от 1 до 6 использовались стохастический осциллятор и RSI, поскольку для них существуют стандартные пороги, часто применяемые вышеопи- санным способом.
    Тесты 1—3. Стохастические модели на основе понятия перекуп-
    ленности/перепроданности. Эти тесты оценивают работу модели с входом по цене открытия (тест 1), по лимитному приказу (тест 2) и по стоп- приказу (тест 3). Использован оригинальный Быстрый %К по Лэйну, пе- риод — от 5 до 25 с шагом 1. Наилучшие значения для тестов 1, 2 и 3 соста- вили 25, 20 и 16 соответственно. Для стохастического осциллятора тради- ционные пороговые значения составляют 20 (нижнее) и 80 (верхнее). В
    целом эти модели несли тяжелые убытки как в пределах, так и вне выбор- ки (табл. 7-3). Как и в предыдущих тестах, вход по лимитному приказу был наилучшим (т.е. имел минимальный убыток со сделки). Процент прибыль- ных сделок (37% в пределах, 36% вне пределов сделки) также был макси-

    ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ
    169
    Таблица 7—1. Эффективность в пределах выборки по тестам и рынкам
    мальным при использовании этого входа. Вход по стоп-приказу дал про- межуточные результаты, по цене открытия — наихудшие. Торговая стра- тегия работала достаточно плохо в обеих выборках и на всех рынках. Вне пределов выборки небольшие прибыли были получены на рынке британ- ского фунта и апельсинового сока со всеми видами входов, а при входе по стоп-приказу — на рынке леса, соевых бобов и живых свиней; отмеча- лись еще некоторые неупорядоченные мелкие прибыли. В общем, эта модель принадлежит к числу худших из тестировавшихся.

    170
    ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
    Таблица 7—2. Эффективность вне пределов выборки по тестам и рынкам
    Тесты 4—6. Модели RSI на основе понятия перекупленности/пере-
    проданности. Эта модель оценивалась с входом по цене открытия (тест 4),
    по лимитному приказу (тест 5) и по стоп-приказу (тест 6). Рассчитывался оригинальный RSI по Вильямсу, период — от 5 до 25 с шагом 1. Наилуч- шее значение для всех тестов составило 25. Использованы традиционные пороговые значения: 30 (нижнее) и 70 (верхнее). Модель работала еще хуже, чем стохастическая, процент прибыльных сделок в общем случае колебался от 26 до 37%. Средний убыток в сделке достигал $7000. Общая

    ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ 171
    прибыль была лучше, чем в тесте стохастического осциллятора, и, посколь- ку было совершено меньше сделок, хотя убыток на сделку был больше,
    общий убыток оказался меньше. Модель не нашла какого-либо «слабого места рынка, которое можно было бы использовать для получения при- были. Лучше всего работал вход по лимитному приказу, прочие — при- мерно одинаково. Прибыль получена на значительно большем количестве отдельных рынков, особенно в тесте 5, где при входе по лимитному при- казу прибыльными были в пределах выборки казначейские облигации,
    золото, серебро, платина, скот, овес и кофе; вне пределов выборки — зо- лото, серебро, платина, скот и овес. Кроме того, вне пределов выборки прибыль удалось получить на рынках NYFE, британского фунта, мазута,
    кукурузы, сахара, апельсинового сока и леса.
    Тесты моделей на основе сигнальной линии
    В принципе, это модели, основанные на пересечении цены и скользящего среднего, с тем отличием, что ценовой ряд заменяется значениями осцил- лятора. В таком случае скользящее среднее называется сигнальной лини-
    ей. Когда осциллятор опускается ниже сигнальной линии, открывают ко- роткую позицию, когда поднимается выше, открывают длинную позицию.
    Осцилляторы имеют меньшее запаздывание, чем скользящие средние, и менее зашумлены, чем собственно цены. Поэтому при использовании дан- ной торговой системы можно надеяться на получение более своевремен- ных и надежных сигналов. В тестах 7-12 использованы стохастический осциллятор и MACD. Медленный %К обычно имеет сильно выраженное циклическое поведение, что делает его пригодным для входов на основе сигнальной линии. График MACD обычно строится с сигнальной линией,
    даже когда пересечения не рассматриваются как критерий входа.
    Тесты 7—9. Модели на основе стохастического осциллятора с сиг-
    нальной линией. Эта модель оценивалась с входом по цене открытия
    (тест 7), по лимитному приказу (тест 8) и по стоп-приказу (тест 9). Рассчи- тывался оригинальный Медленный %К по Лэйну, поскольку в предвари- тельном тестировании Быстрый %К приводил к избыточному числу сде- лок, вызванных высоким уровнем шума. Сигнальная линия представляла собой простое скользящее среднее Медленного %К с периодом 3 дня. Пе- риод осциллятора — от 5 до 25 с шагом 1. Наилучшие значения для тестов
    7, 8 и 9 составили 15, 14 и 11 соответственно. В целом модель несла тяже- лые убытки в расчете на одну сделку. Ввиду большого количества сделок убытки были астрономическими. Вход по лимитному приказу был наи- лучшим (т.е. имел минимальный убыток в сделке и максимальный про- цент прибыльных сделок). Хуже всего работал вход по цене открытия. Эта модель положительно реагирует на использование стоп-приказов. Воз-

    172 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
    можно, это связано с тем, что они действуют подобно фильтрам трендов:
    если обнаружено движение против тренда, прежде, чем сработает вход,
    разворот рынка должен подтвердиться. Входы по стоп-приказу также ра- ботали лучше в системах на пересечении скользящих средних. В общем,
    только на двух рынках была получена прибыль в пределах выборки, вне пределов — несколько мелких прибылей на других рынках; на рынке кофе удалось получить более $2000 в сделке.
    Тесты 10—12. Модели MACD на основе сигнальной линии. Эта мо- дель оценивалась с входом по цене открытия (тест 10), по лимитному при- казу (тест 11) и по стоп-приказу (тест 12). Рассчитывался классический
    MACD с использованием экспоненциальных скользящих средних. Пери- од короткого скользящего среднего прогонялся от 3 до 15 с шагом 2, пери- од длинного скользящего среднего — от 10 до 40 с шагом 5. Скользящее среднее, служащее сигнальной линией, имело традиционный фиксиро- ванный период, равный 9. В общем, этот осциллятор работал лучше, чем какой-либо из испытанных до сих пор. В пределах выборки лучшим был вход по лимитному приказу, худшим — по цене открытия. Вне пределов выборки вход по стоп-приказу давал максимальный (из полученных до сих пор) процент прибыльных сделок (40%) и минимальный средний убы- ток в сделке. В пределах выборки только рынок леса давал ощутимую при- быль при входе по лимитному приказу. При входе по стоп-приказу в пре- делах выборки были прибыльны также рынки живых свиней, свиной гру- динки, кофе и сахара. Из них вне пределов выборки остались прибыль- ными лес, живые свиньи, свиная грудинка и кофе. Многие рынки, убы- точные в пределах выборки, дали прибыль вне ее. Положительные резуль- таты по максимальному количеству рынков были получены при исполь- зовании входа по стоп-приказу.
    ТЕСТЫ МОДЕЛЕЙ, ОСНОВАННЫХ НА РАСХОЖДЕНИИ
    Тесты 13 — 21 рассматривают расхождения графиков цены и стохастичес- кого осциллятора, RSI и MACD. Расхождение — это концепция, исполь- зуемая техническими трейдерами для описания явления, легко заметно- го на графике, но трудно поддающегося алгоритмическому определению и анализу. Примеры расхождения изображены на рис. 7-1. Расхождение
    появляется, когда рынок образует провал, более низкий, чем провал или пара провалов, образованных в это время осциллятором, указывая, таким образом, на покупку. Сигнал к продаже возникает в противоположной ситуации. Поскольку формы волн могут быть самыми разными, опреде- ление расхождений — нетривиальная задача. Хотя наш алгоритм устро- ен элементарно и далек от совершенства, при исследовании графиков он

    ГЛАВА 7 Входы НА ОСНОВЕ ОСЦИЛЛЯТОРОВ 173
    дает достаточно надежные результаты, чтобы сулить о качестве основан- ных на расхождении систем.
    Мы будем обсуждать только сигналы покупки, поскольку сигналы про- дажи представляют собой их точную противоположность. Логика алго- ритма такова: в течение обозреваемого исторического периода (1епЗ) на- ходят дни с минимальным значением в ценовой серии и в значениях ос- циллятора. Затем проверяют ряд условий: во-первых, минимум ценового ряда не должен приходиться на текущий день (т.е. должно начаться повы- шение), но попадать в пределы прошлых шести дней (т.е. этот провал дол- жен быть близок к текущему моменту). Минимум в ценовой последова- тельности должен иметь место не менее чем через четыре дня в последо- вательности значений осциллятора (глубочайший провал осциллятора должен опережать глубочайший провал цен). Еще одно условие состоит в том, чтобы минимальное значение осциллятора не приходилось на пер- вый день в обозреваемом периоде (т.е. должен быть сформирован мини- мум). Лучше, чтобы осциллятор был в самом начале обратного движения
    (что определяет второй провал как сигнал к покупке). Если все условия выполнены, то расхождение налицо и отдается приказ на покупку. Если приказ на покупку не отдан, то подобным же образом производится по- иск расходящихся пиков, и при их обнаружении и соответствии подоб- ным критериям отдается приказ на продажу. Такая методика достаточно хорошо находит расхождения на графиках. За исключением вида входов,
    единственное различие в тестах с 13 по 21 — это используемый вид ос- циллятора.
    Тесты 13—15. Модели расхождения цены и стохастического ос-
    циллятора. Со стандартными входами использовался Быстрый %К. Оп- тимизация состояла в прогонке периода стохастического осциллятора от
    5 до 25 с шагом 1 и обозреваемого периода расхождения от 15 до 25 с ша- гом 5. Лучшие параметры для периода и длины составили 20 и 15 для вхо- да по цене открытия, 24 и 15 для входа по лимитному приказу и 25 и 15 для входа по стоп-приказу. Как в пределах, так и вне пределов выборки эф- фективность этой модели была в числе худших; в пределах выборки не- сколько лучше работал вход по лимитному приказу, вне пределов — вход по стоп-приказу. В пределах выборки при использовании всех видов вхо- дов прибыль была получена на рынках неэтилированного бензина, соевых бобов и соевой муки; при входе по лимитному приказу также были при- быльны рынки золота и свиной грудинки. Вне пределов выборки неэти- лированный бензин был прибыльным со всеми видами входов, соевые бобы — при входах по цене открытия и по стоп-приказу. Вне пределов выборки прибыль была получена на большем количестве рынков, причем наилучших результатов удалось достичь при использовании входа по стоп- приказу. Такое явление, несомненно, показывает, что оптимизация не ока- зывала влияния на результаты, а также то, что на рынках в последние годы

    174 ЧАСТЬ II ИССЛЕДОВАНИЕ входов в РЫНОК
    произошли изменения, повысившие эффективность использования по- добных моделей. Это может быть объяснено снижением числа трендов и более неровным характером торговли на многих рынках.
    Тесты 16—18. Модели расхождения цены и RSI. Оптимизация состоя- ла в прогонке периода RSI от 5 до 25 с шагом 1 и обозреваемого периода расхождения от 15 до 25 с шагом 5. В общем, результаты были плохими. В
    пределах выборки наименее убыточным был вход по стоп-приказу, за ним следовал вход по лимитному приказу. Поскольку RSI — один из излюб- ленных индикаторов, используемых при поисках расхождения, такие пло- хие результаты достойны особого внимания. Мазут приносил прибыли со всеми видами входов, неэтилированный бензин был весьма прибылен при входе по цене открытия и по стоп-приказу, сырая нефть — при входе по лимитному приказу и по стоп-приказу. В пределах выборки со всеми входами были прибыльны соевые бобы, с входом по стоп-приказу непло- хо работали апельсиновый сок, кукуруза, соевое масло и свиная грудин- ка. Вне пределов выборки рынок нефтепродуктов не приносил устойчи- вых прибылей, а соевые бобы оставались прибыльными со всеми видами входов; апельсиновый сок и соевое масло по-прежнему приносили при- быль при входе по стоп-приказу.
    Тесты 19—21. Модели расхождения цены и MACD. Период короткого скользящего среднего прогонялся от 3 до 15 с шагом 2; период длинного скользящего среднего — от 10 до 40 с шагом 5; обозреваемый период рас- хождения — от 15 до 25 с шагом 5. Исследовались только те наборы пара- метров, где период длинного скользящего среднего был значительно боль- ше, чем период короткого.
    Наконец-то модели, которые работают, принося положительную
    прибыль и в пределах, и вне пределов выборки! При входе по цене откры- тия торговля была прибыльной в обоих образцах данных. В пределах вы- борки средняя сделка приносила $1393, прибыльными были 45% сделок, а вероятность случайности результатов была всего 8,7% (после коррекции
    99,9%). И длинные, и короткие позиции были прибыльными. Несмотря на низкую статистическую достоверность в пределах выборки, вне ее пре- делов прибыли продолжались: с учетом проскальзывания и комиссион- ных средняя прибыль в сделке составила $140 при 38% прибыльных сде- лок (только короткие позиции были прибыльны).
    Вход по лимитному приказу в пределах выборки работал несколько хуже, но вне пределов выборки — значительно лучше. На рис. 7-2 изобра- жен график изменения капитала для теста с входом по лимитному прика- зу. В пределах выборки средняя прибыль в сделке составила $1250 при 47%
    прибыльных сделок (максимальное из полученных значений); прибыль- ными были и длинные, и короткие позиции, причем вероятность случай- ности прибылей составила 13,1% (после коррекции 99,9%). Вне пределов

    1   ...   14   15   16   17   18   19   20   21   ...   41


    написать администратору сайта