Теория случайных потоков и FOREX - страница 43

 

Теория потоков очень большой и фундаментальный труд. Я его здесь пытался как мог изложить на пальцах. Слишком сложная математика. Но с её помощью можно математически описать любой поток, это может быть поток событий в мире (такие как выступления глав Центробанков, процентные ставки, действий Бен ладанов и т.д. ЛЮБЫХ !!) Это может быть поток психологической энергии, поток заявок на покупку продажу и т.д. Там приводиться математика, как и какими формулами можно это сделать, как один поток будет взаимодействовать с другим и как это выявить и исследовать и т.д.

Nuzhny спасибо, у меня фильтр Калмана есть и реализован на нескольких языках. Суть не в нем, а в том, что в этот фильтр вложено. Какая модель. Сама процедура фильтрации стандартна и известна. Это как преобразование Фурье, все знают, все умеют, но надо понимать что там и как. Скальпель держать в руках могут многие – но не все они хирурги. Если в фильтр вложить линейные модели, то про что вы говорите - это будет линейный фильтр, а можно и нелинейные - это будет нелинейный фильтр. Процедура одна универсальная (есть правда несколько вариаций её в зависимости от исходных данных, но это не важно).

Дело в том что многие формулы Большакова в течении более 50 лет не могли решить, пока Берг математически не доказал, не возможность их точного решения. И сравнительно недавно Слукин начальник НИО МГТУ им. Баумана показал, что можно найти решения с так называемой достаточной для практики точностью.

Волей судьбы я столкнулся с этими научными изысканиями, как мог их расписал применительно к рынку (часто объясная что то другим у самого шарики на место встают). Я понимаю приложи тут инвест пароль к счету на реале с эквити который упирается в небо или занимай 3 года первое место в конкурсе, вес этой ветки был бы больше. Но надеюсь идеи и мысли изложенные тут не стали от этого менее ценны. Nuzhny надеюсь те 4 часа что Вы потратили на чтение не прошло для вас даром. Хотя бы думаю, было интересно и заставило задуматься.

 

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

Вот собственно шаблон индикатора.

#property  indicator_chart_window
#property  indicator_buffers 2
#property  indicator_color1  Silver
#property  indicator_color2  MediumVioletRed

extern  int      MinBars = 0;

int      PreBars;
datetime BarTime;
int      StartPos;
int      pos;

double   Kalman[], Prognoz[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() {
  SetIndexBuffer(0,Kalman);
  SetIndexBuffer(1,Prognoz);
  SetIndexStyle(0,DRAW_LINE);
  SetIndexStyle(1,DRAW_LINE);
//---- Устанавливает значение пустой величины  
  SetIndexEmptyValue(0,0.0);
  SetIndexEmptyValue(1,0.0);
  SetIndexLabel(0,"Kalman");
  SetIndexLabel(1,"Prognoz");
  return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit() {
  return(0);
}
//+------------------------------------------------------------------+
//|расчеты при инициализации и сбоях                                 |
//+------------------------------------------------------------------+
int Reset() {
  if (MinBars == 0) MinBars = Bars-2;
  StartPos = MinBars;
  PreBars = 0;
  BarTime = 0;
// .......
  StartPos++;
  return(StartPos);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
double K_1=1, K_2=1;
//  Работаем только по закончившимся барам
  if (Bars == PreBars) return(0);  
//  Проверим, достаточно ли баров на графике
  if (Bars < MinBars) {
    Alert("Калман: Недостаточно баров на графике");
    return(0);
  }  
//  Если не было докачки истории, обсчитываем только закончившийся бар
  if (Bars-PreBars == 1 && BarTime==Time[1]) StartPos = 1;
//  Иначе пересчитываем заданное в функции Reset() количество баров 
  else StartPos = Reset();
// Модифицируем контрольные переменные
  PreBars = Bars;  
  BarTime = Time[0];
// Цикл по истории
  for (pos=StartPos;pos>0;pos--) {
// алгоритм расчета .....
// ......
// истинное (оцененное) значение цены 
   Kalman[pos]=K_1*Close[pos];      // в качестве примера
// наносим прогноз на график
   Prognoz[pos-1]=K_2*Kalman[pos]; // в качестве примера

  }  //  pos=StartPos;pos>0;pos--) 
  return(0);
}

Как сделать что бы индикатор находясь на минутках, брал данные с задаваемого внешней переменной таймфрейма 5, 15, 30 и т.д. и правильно отражал это на графике.

Заранее Спасибо.

З.Ы. Индикатор построен по принципу не важно что было вчера, час назад, минуту. Важно какая цена сейчас и точность прогноза =матрица перехода=матрица системы ( в примере взято число) соответсвенно K_1 (поправка) и K_2(отвечает за точность прогноза).

Файлы:
 
Prival >>:

Как сделать что бы индикатор находясь на минутках, брал данные с задаваемого внешней переменной таймфрейма 5, 15, 30 и т.д. и правильно отражал это на графике.

Заранее Спасибо.

заменить Close на iClose не подойдет?

только нужно использовать дополнительный механизм для предварительной закачки (перед вызовом iClose)  котировок с нужных таймфреймов

 
sabluk писал(а) >>

заменить Close на iClose не подойдет?

только нужно использовать дополнительный механизм для предварительной закачки (перед вызовом iClose) котировок с нужных таймфреймов

Срабатывать должен только по сформированному бару. Между считать нельзя (

Мне кажеться что это что то простое, но никак уловить не могу что нужно добавить в if

 
_
Файлы:
 
Prival писал(а) >>

Суть не в нем, а в том, что в этот фильтр вложено. Какая модель. Сама процедура фильтрации стандартна и известна. Это как преобразование Фурье, все знают, все умеют, но надо понимать что там и как. Скальпель держать в руках могут многие – но не все они хирурги. Если в фильтр вложить линейные модели, то про что вы говорите - это будет линейный фильтр, а можно и нелинейные - это будет нелинейный фильтр. Процедура одна универсальная (есть правда несколько вариаций её в зависимости от исходных данных, но это не важно).

Привет, Сергей !

А вот интересно, можно ли в фильтре Калмана использовать статистическую модель. И линейная, и нелинейная, и любая другая детерминированная модель - это ведь одно дело, а статистическая - совсем другое.

 

Вот что Сергей ответил на мой пост несколько месяцев назад, Юрий.

 
Yurixx писал(а) >>

Привет, Сергей !

А вот интересно, можно ли в фильтре Калмана использовать статистическую модель. И линейная, и нелинейная, и любая другая детерминированная модель - это ведь одно дело, а статистическая - совсем другое.

там есть и статистические модели. Это модели шумов возбуждения и измерения. вот тут я прикрепил файл 'Теория случайных потоков и FOREX' посмотрите как и из каких предположений зделана модель Зингера. Там вроде не сложно. Если что то нужно пояснить будет я часто в скайпе

 
Mathemat >>:

Вычитая из цены текущее значение ЛР, мы прекрасно избавляемся от трендов, в том числе и от нелинейных.

Здравствуйте,уважаемый Mathemat.
Заранее прошу прощения,если мой вопрос Вам покажется излишне простым и неинтересным, но для меня он очень важен.
Вообще, Ваше обсуждение здесь меня очень заинтересовало.
На странице 17 данной темы 22.11.2007 в 14:12 Вы написали следующее:
"Вычитая из цены текущее значение ЛР, мы прекрасно избавляемся от трендов, в том числе и от нелинейных."
Получатся ли у Вас в результате такой операции новые значения цены,то есть новый ряд котировок?
Заранее благодарен.Жду ответа.

 
prostoleha >>:

"Вычитая из цены текущее значение ЛР, мы прекрасно избавляемся от трендов, в том числе и от нелинейных."
Получатся ли у Вас в результате такой операции новые значения цены,то есть новый ряд котировок?

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

Причина обращения: