Анализ нескольких валютных пар по валюте, ваше мнение, можно ли это использовать? - страница 2

 
chv:
Piligrimm:
Вы на правильном пути, за групповым анализом валютных пар - будущее, постепенно большинство трейдеров придут к этому. Я уже давно использую групповой анализ, и результаты прогнозов по группе валют на порядок лучше, чем при использовании одной пары с запаздывающими аргументами.
Согласен с Вами, что мультивалютный анализ может дать больше информации, чем одна пара. Но проводить его можно по-разному. Я, когда дойду до него плотно, сделаю это не так, как описано в статье 'Теоретические основы построения кластерных индикаторов для рынка FOREX'.
Методики мультивалютной оценки могут быть весьма разные, вот в чём дело.
В своем ответе я не имел ввиду эту статью, я мельком просмотрел ее, и она меня совсем не заинтересовала.
Разумеется методики могут быть разные, и выбор той или иной из них определяется алгоритмом Вашей торговой стратегии, а это сугубо индивидуально, к тому же и ресурсами компьютера.
Я, в связи с тем, что моему ноутбуку 7 лет, и он слишком слаб для решения сложных задач, а новый пока купить не имею возможности, в анализе использую 15 валютных пар, включая золото, и моя экспертная система едва успевает завершить свой цикл расчета к приходу нового бара работая на 5 минутном таймфрейме и дает прогноз на час вперед по High, Low, Close, а также по тренду выделенному из Close с помощью вайвелет преобразования. Возможностей для увеличения точности и глубины прогноза множество, все упирается в ресурсы компьютера. Надеюсь, что в ближайшее время сумею приобрести новый комп, и тогда смогу делать все тоже самое уже на минутном таймфрейме, о работе с тиками пока только мечтаю.
 
Piligrimm:
В своем ответе я не имел ввиду эту статью, я мельком просмотрел ее, и она меня совсем не заинтересовала.
Разумеется методики могут быть разные, и выбор той или иной из них определяется алгоритмом Вашей торговой стратегии, а это сугубо индивидуально, к тому же и ресурсами компьютера.
Я, в связи с тем, что моему ноутбуку 7 лет, и он слишком слаб для решения сложных задач, а новый пока купить не имею возможности, в анализе использую 15 валютных пар, включая золото, и моя экспертная система едва успевает завершить свой цикл расчета к приходу нового бара работая на 5 минутном таймфрейме и дает прогноз на час вперед по High, Low, Close, а также по тренду выделенному из Close с помощью вайвелет преобразования. Возможностей для увеличения точности и глубины прогноза множество, все упирается в ресурсы компьютера. Надеюсь, что в ближайшее время сумею приобрести новый комп, и тогда смогу делать все тоже самое уже на минутном таймфрейме, о работе с тиками пока только мечтаю.

Прогнозы на мультивалютнике сбываются (вовремя)?
Ресурсы железа - это не главное. Машина стоит килобакс-полтора, стратегия - дороже.
 

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

Меньше 2 гигагерц и 2 гигабайт памяти и уже все не то, пересяду на что-то новое, навароченное и врядли буду поддерживать и это, ноут не в счет, потому что ноуты не способны вынести полноценную нагрузку, какие бы навароченные небыли, мобильный процессор остается мобильным процессором, а хорошо подобранный комп, с серверной осью может многое, хотя меньше, чем тот же серверный агрегат. У каждого свой подход, поэтому не буду говорить, что надо и что ненадо, пользоваться можно всем, если позволяет работать без проблемм, а вот поддерживать врядли... Время идет и запросы постоянно растут, появляются новые разработки, которые требуют новых вложений, поэтому не думать об этом не получается, у меня наверное только этот комп самый долгоживущий, по причине высокой стабильности и отсутсвия проблемм, а на самом деле я думаю только о хорошем сервере. Только первый пень из интела был, с тех пор восновном использую AMD, даже 386 DX 40(просто рвал интел) и 486 был AMD, забыл бы, что такое интел, если бы не напоминали:)

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

 
xnsnet:

лучше давайте не будем про железо,


И я о том же. На ... железо, стратегия корелляции пар важнее, она есть?
 
chv:
xnsnet:

лучше давайте не будем про железо,


И я о том же. На ... железо, стратегия корелляции пар важнее, она есть?

Что я могу сказать, по отслеживанию графиков и увиденному, типа этой статьи и индикаторов, мнений и множества постов, а так же других текстов, я скланяюсь к тому, что это действительно верное направление, когда напишу что-то похожее на анализатор, смогу сказать точнее, заодно и покажу что сам увидел:) Все силы направил в это направление на данный момент:) Мне нужно довести до ума то что уже написал, в течении недели протестировать на рынке и думаю можно будет показать. Пишу не выходя из процесса, на .NET и можно будет дописать по свойму, так как исходные тексты не буду скрывать, было бы что скрывать, да и зачем, в одиночку все равно это бессмыслица, моих мозгов не хватит однозначно:)
 
Полноценного тестирования я пока еще не делал, нужно кое-что доработать в программе, к тому же тестирование моей системы возможно только на демо или на реале. Но предварительные результаты дают вполне приличную и обнадеживающую картину. За счет того, что экспертная система переобучается и дает новый прогноз по приходу каждого нового бара, даже если происходит резкое изменение ситуации на рынке - она успевает скорректировать прогнозы, а с учетом мультивалютного анализа, при правильном выборе инструмента на котором ведется торговля, создается дополнительный эффект заглядывания в будущее, т.к. некоторые инструменты реагируют на изменения на рынке раньше, некоторые - позже. Если выбрать инструмент для торговли который наиболее заторможенный по реакции, то получается очень даже интересная картина. Мне в этом отношении наиболее нравится для торговли золото.
Что касается корреляции пар, то я выбираю инструменты с максимальной как положительной, так и отрицательной корреляцией относительно тех, по которым предполагаю торговать. Вообще этот вопрос очень сложный. 99% точности прогноза зависят от правильного подбора и комбинирования входных параметров, я уже много шишек себе на этом набил.
К тому же во многом выбор параметров зависит и от самой стратегии, что подходит для одной стратегии, оказывается малоэффективным для другой. Заочно здесь никаких рекомендаций дать нельзя. Единственно, что могу сказать исходя из моего многолетнего опыта моделирования и прогнозирования временных рядов (не только в области финансовых рынков), иногда взаимная комбинация даже слабо коррелированных параметров может оказаться более эффективной, чем использование одного параметра с высокой степенью корреляции, при этом, методы комбинирования могут быть самые разные, от самого примитивного перемножения, до сведения отдельных параметров в какой-либо нелинейный полином.
 

Тики научился собирать, вобщем подготовил плацдарм для анализа:) Каждый тик поставляется серверным временем Srv, временем захвата Utc, и ценой по Bid в файлах на один тик используется 24 байта, в пямяти приблизительно 48 байт в связанной коллекции. Размышляю как лучше связывать символы между собой. так как не хотелось бы использовать только валютные пары и вообще устанавливать какие-то маральные ограничения в смешивании. Графической визуализацией пока не буду заниматься, пока акцентирую внимание на числовых данных и их смешивании, а значит пока буду расширать именно такой инструментальный набор.

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

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

В советнике используется вот такой код:

#import "mttermex.dll"
    bool ClasterInitialize( string iContext, string iSimbol, int iDigits, int iSpread, double iPoint );
    bool ClasterFinalize( string iContext );
    bool ClasterUpdate( string iContext, double iBid, string itime );
#import
 
string Context = "                                                                                                                                 ";
 
int init() {
    ClasterInitialize( Context, Symbol(), MarketInfo( Symbol(), MODE_DIGITS ), MarketInfo( Symbol(), MODE_SPREAD ), MarketInfo( Symbol(), MODE_POINT ) );
    return(0);
}
 
int deinit() {
    ClasterFinalize( Context ); 
    return(0);
}
 
int start() {
    ClasterUpdate( Context, MarketInfo( Symbol(), MODE_BID ), TimeToStr( MarketInfo( Symbol(), MODE_TIME ), TIME_DATE|TIME_MINUTES|TIME_SECONDS ) );
    return(0);
}



C форматом структуры даты и времени разбираться не стал, пойзже, а пока преобразовал в строку на входе и на выходе в DateTime


 

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

CompareMono
CompareMonoCollection
ComparePair
ComparePairCollection

Эти классы между собой перевязываются таким образом, что не способны работать по недостающим парам, есть Моно коллекция элементов моно, называем каждый элемент по имени валюты например "EUR", "USD", "GBP" и так далее, обработка соотношений производится только в том случае если запущены советники хотябы по трем валютам, хотя может быть указано больше, то есть по девяти валютным парам в квадратном соотношении. Для этого мы вручную добавляем нужные валюты и при добавлении советников анализ не будет запущен до тех пор пока не будет добавлено хотябы девять валюных пар, и по всем не пройдет хотябы одного тика, для сравнительного вывода требуется хотябы два тика хотябы по одной валюте, при том что по другим от двух и больше, при этом в промежутке задействовано множество промежуточных тиков других пар. Играют роль время, скорость и объем. Недостающие валюты, могут быть либо не обработаны, либо обработаны пойзже, вступая в силу при проходе по всем блокам, ну вобщем приблизительно так. Пока это только теория реализации потока, отрабатываю методы классов.

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

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

 



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

Использование .NET Framework 2.0 написано на C# и экспортная библиотека на MC++(минимум необходимого). Для VS.NET 2005

Файлы:
mtterm11.zip  123 kb
 
//Вместо string itime
bool ClasterUpdate( string iContext, double iBid, string itime )
//можно написать 
bool ClasterUpdate( string iContext, double iBid, datetime itime )

//А в DLL будет функция 
MTExport bool __stdcall ClasterUpdate( char* iContext, double iBid, unsigned int itime )

//Время в секундах с 1971 года и есть unsigned int itime

//Если надо в си преобразовать в строки то можно использовать библиотеку time.h

//Я кстати посмотрю ваш код может быть интерфейсные диалоги на .NET сделаю и из C++ Dll буду вызывать.
//Расчётную часть стратегии думаю лучше написать на с++ 
Причина обращения: