что думаете про портфельную торговлю?

  • это полная фигня, разводка от экономистов

    Голосов: 27 11,2%
  • нормальный годный метод, сам использую

    Голосов: 59 24,4%
  • метод нормальный, но я предпочитаю другие

    Голосов: 29 12,0%
  • на акциях покатит, на форексе не покатит

    Голосов: 22 9,1%
  • слишком низкодоходный

    Голосов: 8 3,3%
  • слишком рискованный

    Голосов: 10 4,1%
  • слишком сложный

    Голосов: 24 9,9%
  • слишком субъективный

    Голосов: 8 3,3%
  • зачем раскрыли грааль???

    Голосов: 47 19,4%
  • я ничего не понял вообще

    Голосов: 40 16,5%

  • Всего проголосовало
    242

transcendreamer

Местный знаток
вот почему важно совершать не более чем одну сделку со спредом после последнего перерасчета спреда (см рис), из такого запила нельзя выйти даже с помощью усреднения (более корректно было бы ликвидировать позиции после выхода за большой пик).... а если рассмотреть лонги непосредственно в точке OOS то они закрываются отлично, это и есть первая и последняя сделка, такое случается (субъективно) в более 90% случаев... вторые и третьи сделки - много хуже
 

Вложения

  • cfd.png
    cfd.png
    29,5 КБ · Просмотры: 84

transcendreamer

Местный знаток
доброго всем дня и хорошего тренда
давненько в этой теме не было возбуждающих текстов...
попробую восполнить этот пробел и напишу маленькую эротическую повесть...

ранее в теме "парный трейдинг" рассматривался спред портфелей:
http://forexsystemsru.com/ruchnye-t...zhdenie-parnogo-treidinga-202.html#post857667 (+ соседние посты)

тогда посредством специфических извращений строились два портфеля оптимизированных к одной и той же модели линейного тренда и затем путем вычета одного портфеля из другого можно было получить спред (см картинку)... тогда я не сделал график разниц (собственно спреда) но те кто сделал это самостоятельно могли видеть что он (спред) получился самый обычный, похожие спреды делаются простым приравниванием портфеля к любой валютной паре, а при этом суммарный объем лотов получался довольно большой а возвратность - бывает и получше... поэтому рекомендовать такой метод в качестве основного нельзя... но поскольку тема была про парный трейдинг то можно считать это экспериментом парного трейдинга портфелями...

парный портфельный трейдинг также менее удобен из-за двухэтапной оптимизации
кроме того одноэтапная оптимизация (как мне кажется) работает лучше
можно было бы еще проверить спред между двумя спредовыми портфелями
но что-то подсказывает мне что лучше не будет
сейчас я хочу вернуться к трендовым портфелям
 

Вложения

  • trendspread.png
    trendspread.png
    39,9 КБ · Просмотры: 113

transcendreamer

Местный знаток
эффективность трендовых портфелей

допустим хочется проверить эффективность трендовых портфелей как таковых
какие для этого есть варианты?
можно было бы написать советник
но во-первых в мт4 нельзя будет протестировать такой советник
а во-вторых даже если написать его в мт5 будут сложности
а именно:
- нужно менять/переоптимизировать портфель прямо в ходе тестирования
- нужно формализовать количественные критерии входов-выходов и усреднений

попробуем сформулировать критерии теста портфелей
что же на самом деле мы хотим проверить? что мы ожидаем от портфеля?
этот вопрос можно считать открытым для обсуждения
а я пока попробую предложить свой вариант

очевидно что от портфеля мы хотим стабильного роста (несомненно!)
что можно было бы выразить через соотношения просадки и темпов прироста equity
то есть максимизация ( equity(T)-equity(0) ) / maxDD
но также очевидно что нас в основном интересует правая сторона графика
это как смотреть на график истории памм-счета и думать о его перспективах
в принципе история торгов важна но важнее переносимость результатов в будущее
при инвестировании в памм счет мы как минимум желаем чтобы не ушло в минус
и как максимум - чтобы выросло выше вложенной суммы
что достигается только тогда когда график памма покажет прирост справа
(прирост относительно последней правой точки)
тогда пользуясь этим соображением можно сформулировать так:

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

учитывая практику усреднений этого критерия должно быть достаточно

технически можно добавить количественные критерии:
1. время до возврата выше текущего последнего значения
2. глубина просадки до возврата выше текущего последнего значения
3. время до достижения целевой доходности (например 20%)
4. доходность в рамках разумного времени (например месяц)

или конечно можно просто воспользоваться коэффициентом Шарпа
 

transcendreamer

Местный знаток
допустим для начала возьмем простой визуальный критерий
возврат выше крайней правой точки в обозримом будущем
остается проблема проведения тестирования
попробуем сформулировать границы тестирования
что именно мы хотим протестировать?

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

вообще тут следует упомянуть про Единый Тренд
Единый Тренд в любой момент времени можно выразить через разные инструменты
это легко увидеть тестируя разные портфели в экселе или в МТ
Единый Тренд невероятно живуч
можно даже намеренно исказить структуру портфеля и Он все равно останется
иногда Он сохраняется даже если сильно обрезать историю для теста
также Он иногда проявляется много позже на форварде иногда больше чем через год
также Он отражается на других рынках
(хотя тут уже неизвестно что на чем отражается)
одним словом Он существует
и для тестирования важно понимать что именно мы тестируем
чтобы не тестировать одно и то же в разных вариациях
то есть хочется протестировать не только Священный Долгосрочный Тренд
но и более мелкие трендики, трендюсики и трендюшечки
с другой стороны в генеральной совокупности всех тестов Он будет доминировать
и это тоже следует иметь в виду
то есть при выборе кейсов нужно дать равноправие разным трендам
но и не ограничивать специально Великий Тренд
таким образом будем практиковать политеизм
поклоняемся Единому Богу и признаем мелкие божества
такая-то вот религия

теперь определим что является кейсом
кейсом будем считать сочетание параметров:
{ N инструментов , дата старта , дата финиша }
с точки зрения конечной реализации нужно еще одну дату
дату конца форвардного периода
получается так:
{ N инструментов , дата старта , дата конца истории , дата конца форварда }
 

transcendreamer

Местный знаток
никто так и не решился написать про свою практику портфельного трейдинга
то отсюда можно сделать вывод:
1. либо никто ее не использует портфели
либо что наиболее вероятно
2. эффективность портфелей столь велика что никто не хочет делиться граалем

придется продолжить обсуждение "сам с собой"
тем не менее я надеюсь что кто-нибудь забредет и поделится креативными мыслями

продолжу про оценку эффективности
не буду раскрывать всех тайн (а то вдруг ЦБ прочитает и отнимет все наши деньги)
перейду непосредственно к подготовке тестера
 

transcendreamer

Местный знаток
тестер будет реализовываться в экселе
так будет быстрее чем программировать в мкл
потеря наглядности будет небольшая
так как переключать таймфремы не понадобится
все точки графика будут днями
масштабировать тоже не придется
и никаких индикаторов не будет

план
первое что понадобится - выгрузка данных
предлагается выгрузить все инструменты кроме слаболиквидных
затем сделаем случайную выборку по инструментам
затем сделаем случайную выборку периода
истории длиной двух лет будет достаточно
сформируем оптимальную модель тренда
я буду пользоваться все той же регрессией
и продлим модель в будущее на графике
буду использовать простейший эксельный график
 

transcendreamer

Местный знаток
выгрузка данных


конечно я не призываю выгружать каждый инструмент отдельно
есть хитрость
выводим все интересующие инструменты в Обзор Рынка
затем правой кнопкой - сохранить как - указываем имя файла
получаем на выходе обычный текстовый файл с перечнем инструментов

я взял все мажорные и основные минорные пары альпари ецн
убрал неудобоваримые вещи типа мексиканского песо и южноафриканского ранда
российский рубль тоже попал под раздачу
также выкинул все пары с плохой историей
плохая история это большие пропуски, шпильки и искусственные коридоры
китайский юань - хорошая валюта но мне почудилось что лучше пока убрать
мало ли что у этих китайцев на уме

результат:
USDCHF GBPUSD EURUSD USDJPY USDCAD AUDUSD EURGBP EURAUD EURCHF EURJPY GBPCHF CADJPY GBPJPY AUDNZD AUDCAD AUDCHF AUDJPY CHFJPY EURNZD EURCAD CADCHF NZDJPY NZDUSD AUDSGD CHFSGD EURSGD GBPAUD GBPCAD GBPNZD NZDCAD NZDCHF USDSGD EURHKD EURNOK EURSEK USDDKK

теперь загоняем эту строку в equity data exporter
период для выгрузки: начиная с 2 января 2012
ждем небольшое время
и получаем csv файл со всем данными

количество рядов данных: 36
количество точек (дней): 646
 

transcendreamer

Местный знаток
выборка рядов данных


это концептуальный момент
данные выгрузили, теперь надо решить что делать с этой простыней
чисто теоретически можно было бы составить портфель из 36 инструментов
но здравый ум подсказывает что это неумно: там же кросс-курсы
значит нужно выбрать из 36 какое-то разумное количество элементов
я решил что их будет 8
во-первых 8-элементный портфели уже достаточно хороши
добавление к ним еще новых элементов обычно не улучшает портфель
во-вторых выборка будет случайной
и иногда возможна ситуация когда один инструмент будет выбран дважды/трижды
в этом случае число инструментов сократится на количество повторов
тогда еще будет возможно протестировать портфели с 7,6,5 элементов
в теории возможно что получится портфель с 2,3,4 элементами
и даже возможно что будет портфель из одного инструмента
но это будет крайне маловероятно
для 8 слотов самые типичные состояния: 6,7,8 элементов

выборка рядов будет случайной
то есть будет генерироваться 8 случайных чисел в диапазоне от 1 до 36
конечно можно оспорить этот способ как самый примитивный
но зато самая простая реализация
плюс равноправие всем инструментам

вывод рядов данных удобнее можно сделать с помощью функции "индекс"
ее нужно определить как функцию массива чтобы вытащить целиком весь ряд
тогда не нужно морочиться с поточечным выводом
в качестве параметра "индекса" будет использоваться ранее сгенерированное СЧ
в итоге получаем 8 "индексов" и 8 рядов данных
данные лучше вытаскивать вместе с заголовками чтобы не заблудиться потом...
 

transcendreamer

Местный знаток
выборка периода


выборка периода будет даже проще чем выборка рядов данных
используем точно так же равномерное распределенные СЧ
стандартный экселевский генератор
а в качестве параметра указываем даты тестового периода:
точку старта (номер дня)
точку финиша (номер дня)
сами даты даже не придется никак обрабатывать
я выбрал диапазон для точки старта от 2 до 250
и для точки финиша от 301 до 550
памятуя о том что всего точек 646
такая разбивка дает довольно широкий спектр вариантов
даже очень широкий
анализируемый период будет от 50 до 550 дней (грубо)
и форвардный период от 100 до 350 дней (грубо)
сразу стоит сказать что в спектр случаев попадают и заведомо слишком агрессивные
это например когда форвард в два раза больше теста
конечно же никакой разумный человек так поступать не будет
но на начальном этапе хочется посмотреть все случаи
будет интересно

каких либо дополнительных действий для выборки периода не нужно
ведь ряды данных уже и так вытянуты "индексами" полностью
в дальнейшем будет использоваться простое обращение к точками по номеру строки
точнее по номеру строки минус один
именно поэтому стартовая точка имеет диапазон от двух
чтобы не захватить случайно заголовок ряда

...

итак, на этом этапе сделано следующее:
1. выгружены данные 36 инструментов
(я буду останавливаться на тривиальном моменте пересчета в валюту депозита)
2. сделана случайная выборка 8 рядов из 36
(выборка меняется в каждом тесте)
3. сделана выборка анализируемого периода по номерам строк
(выборка меняется в каждом тесте)

"выборка меняется в каждом тесте" означает следующее
функции СЧ в экселе пересчитываются автоматически при обновлении листа
поэтому каждый раз выполнив обновление (F9 если кто забыл) получаем новый тест
причем новый тест включает новый набор символов
и новый анализируемый период
тем самым получаем автоматический генератор-тестер на все возможные случаи
 

transcendreamer

Местный знаток
модель и оптимизация

пока только сделана выборка данных
но с данными ничего не происходило
если не считать выравнивания истории/пропуски/несинхронность
а также перевода пунктов в валюту
эти операции выполняет скрипт equity data exporter (в кодобазе)

построение модели тренда чрезвычайно простое
так как это просто линейный тренд
значение первой точки равно 0
значение каждой следующей равно предыдущей + некое постоянное число
число может быть любым
это влияет только на масштаб лотов в дальнейшем

оптимизация как я уже говорил будет выполняться с помощью регрессии
в экселе есть замечательная надстройка "анализ данных"
но поскольку данные на листе обновляются "на лету" она в этот раз не подойдет
к счастью великий микрософт предусмотрел это и сделал специальную функцию
функция называется ЛИНЕЙН и выполняет то же самое
она относится к функциям массивов поэтому требует специального обращения
в справке экселя есть подробная информация с примерами
только три момента нужно иметь в виду

момент первый
если у вас старый эксель до 2003 года: в нем есть проблемы
в старом экселе эта функция не умела справляться с мультиколлинеарностью
а у нас мультиколлинеарность будет!
об этой проблеме говорится в базе самого микрософта
_http://support.microsoft.com/kb/828533/ru
но наверняка таких древних экселей уже ни у кого не сталось
просто на всякий случай

момент второй
по какому-то недомыслию выводимые параметры ЛИНЕЙН перепутаны
точнее следуют в обратном порядке
это не дает возможность выполнить матричные операции с вектором решений
но поскольку вектор небольшой, всего 8 элементов, это можно сделать и вручную
тем не менее для меня это было неожиданностью "из-под куста"

момент третий
нельзя просто так взять и передать массив в функцию
не умеет синтаксис экселя различать ссылки в тексте
либо это только у меня не получилось?
возможно это сделали специально для какой-то надобности?
но к счастью микрософт сделал функцию и для такого случая
ДВССЫЛ к вашим услугам
интересно кто это придумывает такие идиотские имена в русском экселе?
выпороть бы его засранца

ДВССЫЛ разбирает предварительно собранный текст и передает ссылку на массив
текст конечно же должен быть легитимным адресом массива по правилам экселя
это нам понадобится дважды
для передачи ряда данных линейного тренда (зависимой переменной)
и для передачи всех рядов данных инструментов (независимых переменных)
тут же будет производится и обрезка нужного периода
(все это можно лучше посмотреть наглядно на листе с примером)

итак, выбора периода осуществляется двумя случайными числами
которые генерируются в специально отведенном диапазоне
в функцию регрессии передается только "обрезанный" кусок истории
именно тот который ограничен СЧ по номерам строк
тем самым достигается автоматический пересчет всего кейса "на лету"
без дополнительных ручных операций

немного о выборке рядов
как я уже говорил может оказаться что ряды будут коллинеарны
есть такая бяка в статистике (википедия поможет если вы не в курсе)
коллинерность возникает если случайно инструмент выберется два и более раз
или случайно выберется замкнутый многоугольник валют
(eurgbp-eurusd-gbpusd например)
кстати трендовые модели порфтелей спокойно переживают это
в отличие от спредовых
это так просто к случаю подвернулось
так уж хорошо получается что эксель (ЛИНЕЙН) успешно справляется с этим!
он просто присваивает коэффициент 0 "лишним рядам данных"
тем самым фактически исключая их из регрессии
это эквивалентно тому как если бы мы вообще не выбирали эти ряды
то есть получается портфель -1,-2,-3... инструмента
очень удобно
во-первых сразу тестируем маленькие портфели
во-вторых не нужно дополнительно ничего делать с лишними рядами
и эксель способен пересчитать всю модель за секунду

единственный недостаток во всей схеме:
было бы правильно для чистоты эксперимента сделать пересчет equity
то есть пересчитывать equity с нуля для каждый выборки
(речь о кумулятивной equity в точке старта анализируемого периода)
но мне кажется это оказывает очень несущественное влияние
ведь линейный тренд обрезается адекватно выборке так же как и ряды данных
и вряд ли будет значимая разница в решении если пересчитывать без обнуления
 
Последнее редактирование модератором:

transcendreamer

Местный знаток
график и результаты


тут почти не нужно говорить
график строится обычным экселевским способом
для удобства можно вывести тут же и график тренда с обрезкой
вертикальные скачки "от нуля" и "к нулю" означают границы анализируемого периода

прикладываю свой бесхитростный эксел файл
там все очень просто и все наглядно видно
используя этот тестер можно оценить эффективность пертфелей
а еще можно использовать этот тестер как предпросмотр портфелей
или как средство поиска/подбора инструментов в портфель

нажимая F9 можно пересчитывать разные кейсы
и сразу видеть как посчитанный портфель ведет себя в будущем
основная цель - найти точку выше правой границы тестового периода
хотя бы однажды портфель должен вернуться выше правой границы

если есть идеи как имплементировать оценки качества портфеля - welcome

теперь любой желающий может приобщиться к секте портфельных трейдеров
и наглядно увидеть силу Единого Тренда и порвать рынок
и показать этим наглым центральным банкам
самое главное - придумать куда девать все свои миллионы
заработать - это лишь первый шаг
а вот что с ними потом делать - вот проблема
скоро в мире не останется достойных стоящих внимания объектов
острова в тропиках почти поделены, пустых замков в европе почти не осталось
если возникнут мысли чего бы еще такого купить - просьба срочно писать сюда
 

Вложения

  • big-test.png
    big-test.png
    120 КБ · Просмотры: 159
  • big-test.zip
    big-test.zip
    385,1 КБ · Просмотры: 69

vonamsu

Активный участник
equity data exporter

Приветствую Transcendreamer
Касаемо твоего скрипта - equity data exporter
пока только сделана выборка данных
но с данными ничего не происходило
если не считать выравнивания истории/пропуски/несинхронность
а также перевода пунктов в валюту
эти операции выполняет скрипт equity data exporter (в кодобазе)

Также выдрал mql5:
Скрипт сохраняет историю историю стоимости выбранных инструментов в файл CSV. Скрипт рассчитывает, как изменились бы средства, если бы мы удерживали позиции по этим инструментам. (заметь - при постоянном лоте/объеме по позиции) Поддерживается выгрузкы данных по валютным парам и CFD контрактам.

Да, функционал у него незаменим в данной теме, но все же... Скажи пожалуйста. В данном скрипте учтено выравнивание по стоимости пункта в валюте депозита? Судя по записям - видимо не учтено (может и ошибаюсь). Насколько я понял, в данном скрипте задается для всех котир один и тот же постоянный лот (объем позиции), далее проходят манипуляции по подготовки необходимых рядов (этап залатывания/синхронизации и т.д.). Вот этот постоянный лот меня и смущает. Ведь если так (без учета стоимости пункта), то получается следующее: что изначально для обработки данных эти же данные подаются с неверными/некорректными величинами.
Давно хотел этот момент выяснить касаемо данного скрипта.
 

transcendreamer

Местный знаток
Приветствую Transcendreamer
Касаемо твоего скрипта - equity data exporter
пока только сделана выборка данных
но с данными ничего не происходило
если не считать выравнивания истории/пропуски/несинхронность
а также перевода пунктов в валюту
эти операции выполняет скрипт equity data exporter (в кодобазе)

Также выдрал mql5:
Скрипт сохраняет историю историю стоимости выбранных инструментов в файл CSV. Скрипт рассчитывает, как изменились бы средства, если бы мы удерживали позиции по этим инструментам. (заметь - при постоянном лоте/объеме по позиции) Поддерживается выгрузкы данных по валютным парам и CFD контрактам.

Да, функционал у него незаменим в данной теме, но все же... Скажи пожалуйста. В данном скрипте учтено выравнивание по стоимости пункта в валюте депозита? Судя по записям - видимо не учтено (может и ошибаюсь). Насколько я понял, в данном скрипте задается для всех котир один и тот же постоянный лот (объем позиции), далее проходят манипуляции по подготовки необходимых рядов (этап залатывания/синхронизации и т.д.). Вот этот постоянный лот меня и смущает. Ведь если так (без учета стоимости пункта), то получается следующее: что изначально для обработки данных эти же данные подаются с неверными/некорректными величинами.
Давно хотел этот момент выяснить касаемо данного скрипта.

скрипт переводит все вычисления equity в валюту представления - это валюта депозита, либо если таковую не удалось определить - USD, при переводе оценки equity каждого инструмента на каждый бар выполняется оценка стоимости пункта этого инструмента и переводится в валюту представления (депо либо USD), стоимость пункта плавающая и это учитывается

лот постоянный, задается соответствующим параметром, и одинаковый для всех инструментов, это не должно смущать, ведь в данном случае именно это и является целью - узнать сколько стоит единичный лот/минилот/микролот для каждого инструмента чтобы обеспечить аддитивность разных инструментов (подобно акциям и фьючерсам), зная стоимость единичного лота (и его динамику в истории) далее самостоятельно подбираем множители (умножаем на некое число) и получаем нужным для портфеля объем - можно представить это как аналогию с акциями: купили одну акцию, она имеет свою начальную стоимость и свою динамику, если хотим больший объем - покупаем 2,3,4...10...1000... акций, вот и здесь задача превратить валютные пары в сопоставимые и аддитивные акции
 

b2v2

Активный участник
график и результаты

Круто. Как раз собирался дневки выгрузить для экспериментов.
Если не жалко, выложи еще файл с котировками пар, а не эквити.

Мысли попозже напишу, когда покручу.
Но уже очевидно, что даже на больших интервалах не 100% гарантия продолжения тренда. Пары иногда повторяются, но для трендового синтетика это не страшно.

Мало пишем потому, что мысли медленно приходят:)
Мы же не можем, как НеКолла ВСЕ в плюс выводить:)
Из абстрактных последних идей кое-что напишу в следующем месседже.
 

b2v2

Активный участник
Мысли:
Вот есть у нас, например, инструмент a1=1, а также инструмент b1=1/a1=1.
Купим a и b одновременно. Через некоторое время будет a2=1+delta x, b2=1/(1+delta x).
А прирост будет a2+b2-a1-b2 = (delta x)^2. Т.е. всегда плюс.
Пока все.
Некоторые наверняка догадались, что дельта хеджирование хочется пообсуждать.
 

transcendreamer

Местный знаток
Круто. Как раз собирался дневки выгрузить для экспериментов.
Если не жалко, выложи еще файл с котировками пар, а не эквити.

Мысли попозже напишу, когда покручу.
Но уже очевидно, что даже на больших интервалах не 100% гарантия продолжения тренда. Пары иногда повторяются, но для трендового синтетика это не страшно.

Мало пишем потому, что мысли медленно приходят:)
Мы же не можем, как НеКолла ВСЕ в плюс выводить:)
Из абстрактных последних идей кое-что напишу в следующем месседже.

к сожалению файла с чистыми котировками нет (((
скрипт выгружает только equity
а чем equity не устроили?

конечно 100% гарантии нет никогда
но достаточно достичь условия возвратности в подавляющем большинстве случаев
в остальных - разумное усреднение (адекватно капиталу)

спасибо за ответ!
 

transcendreamer

Местный знаток
Мысли:
Вот есть у нас, например, инструмент a1=1, а также инструмент b1=1/a1=1.
Купим a и b одновременно. Через некоторое время будет a2=1+delta x, b2=1/(1+delta x).
А прирост будет a2+b2-a1-b2 = (delta x)^2. Т.е. всегда плюс.
Пока все.
Некоторые наверняка догадались, что дельта хеджирование хочется пообсуждать.

только где же найти такой инструмент b1?
надо полагать это опцион?
 

b2v2

Активный участник
Что-то Сека сделки не выкладывает.
Сека - баблокос перерыв устроил для просмотра футбола??:)
 
Верх