торговая стратегия на базе Волновой теории Эллиота - страница 256

 

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


Да я понимаю, что из меня хреновый рассказчик. Объяснил как смог, полагал, что не стоит повторять много раз сказанное. :о)))


Насколько я теперь понимаю, значение ПЭ в данное точке изменяется по мере того, как текущий отсчет сдвигается все более вправо ? Ведь изменяется канал, который связывает данную точку и текщий отсчет.


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

Все, что я делаю, это отслеживаю динамику изменения локальных экстремумов (в данном случае минимумов) относительно окна N для каждого временного отсчета, на котором мы наблюдали процесс длинною N (витиевато получилось). На картинке видно, как во времени «образуются окна». Далее, просто их совмещаю:



Для этого подхода, окно, длинною N всегда должно оставаться постоянной величиной. Матрица, вернее поверхность, получается следующего размера [N: (N-zone)]. Выбор самого N, это отдельная история.
 
Значит Ваш график ПЭ - это траектория локального экстремума относительно текщего отсчета ?
 
Доброго времени суток уважаемому собранию.
Вчера набрел на пост, показавшийся мне весьма интересным и в чём то пересекающимся с темами, обсуждаемыми здесь (имхо).
http://forum.fxclub.org/showthread.php?t=22097&page=3
это пред-предпоследний пост в ветке от некоего UP (длинный такой)
 
Доброго вечера
Вот такая ситуация
Если взять выборку (Close)в любом месте EURUSD h1 216 баров и посчитать на эту выборку коэффициенты для параболической регрессии. F(x)=A0+A1*x+A2*x^2
После посчитать градиент потенциала
int shift=215;
for (int j=shift-3;j>=0;j--)
{
ArrayResize(a_Price,shift+3-j);
ArrayInitialize(a_Price,0);
int s=1;
for (int i=shift;i>=j;i--)
{
a_Price[s]=Close[i];
s++;
}
Raschet_koefficientov_paraboli(a_Price,shift-j);
double summGradienta=0;
for (int x=1;x<=shift-j;x++)
{
summGradienta+=Close[shift-x+1]-(A0+A1*x+A2*MathPow(x,2));
}
GP[j]=summGradienta*100000000000;
}
получается забавное число (оно всегда отрицательное) и примерно в области - 0,0278
а если весть индикатор пустить по истории на визуализации то очертания данного индикатора остаются постоянными особенно чем больше выборка тем стабильнее.
самое главное очертания не зависят от таймфрейма и валютной пары

суть функции
Raschet_koefficientov_paraboli
МНК и решение системы обратной матрицей
как то это можно использовать ?
PS. Это моя "неудачная" попытка на пост от solandr 08.07.06 20:12
таких как там картинок у меня не получается
С уважением

PPS Если кому нужно выложу сюда свой код полностью.
 
2 olyakish

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

По сути дела же сказать нечего, поскольку нет кода. Но если вы его выложите, то думаю solandr поможет вам разобраться.
 
Вот текст индикатора
//+------------------------------------------------------------------+
//|                                      Gradient_Potenciala_ind.mq4 |
//|                                                         olyakish |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "olyakish"
#property link      ""
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_level1 0
/*
#property indicator_level2 0.0254
#property indicator_level3 -0.0229
*/
#property indicator_minimum -0.03
#property indicator_maximum 0.03

double Matrica[4,5];
double det,det1; 
double Matrica`[4,4];
double A0,A1,A2;
double a_Price[];
double GP[],MA[],GP_Rev[];
int shift;
double NullGradient;

//---- функция расчета коэффициентов параболы типа F(x)=A0+A1*x+A2*x^2 
//---- передаем массив цен по которым происходит расчет коэффициентов и количество баров для расчета

int init()
  {
     SetIndexStyle(0, DRAW_LINE);
     SetIndexBuffer(0, GP);
     SetIndexLabel(0, "Gradient_Potenciala");
     SetIndexStyle(1, DRAW_LINE);
     SetIndexBuffer(1, MA);
     SetIndexLabel(1, "MA");
     
     shift=iBarShift(NULL, 0, ObjectGet("Start", OBJPROP_TIME1),false);
     SetIndexDrawBegin(0, 10);
    return(0);
  }

void Raschet_koefficientov_paraboli(double Mass_Price[], int bars_in)
   {
     
    //---- метод наименьших квадратов и решение системы уравнений обратной матрицей
    // --- имеем заполненную матрицу 3*4   
   ArrayInitialize(Matrica,0);
   ArrayInitialize(Matrica`,0);
   Matrica[1,1]=bars_in;
   for (int i=1;i<=bars_in;i++)
      {
         Matrica[1,2]+=i;
         Matrica[1,3]+=MathPow(i,2);
         Matrica[2,3]+=MathPow(i,3);
         Matrica[3,3]+=MathPow(i,4);
         Matrica[1,4]+=Mass_Price[i];
         Matrica[2,4]+=Mass_Price[i]*i;
         Matrica[3,4]+=MathPow(i,2)*Mass_Price[i];
      } 
    
    Matrica[2,1]=Matrica[1,2];
    Matrica[2,2]=Matrica[1,3];
    Matrica[3,1]=Matrica[2,2];
    Matrica[3,2]=Matrica[2,3];


   
   // ее det
    det= (Matrica[1,1]*Matrica[2,2]*Matrica[3,3]+Matrica[2,1]*Matrica[3,2]*Matrica[1,3]+Matrica[1,2]*Matrica[2,3]*Matrica[3,1])-
         (Matrica[1,3]*Matrica[2,2]*Matrica[3,1]+Matrica[1,2]*Matrica[2,1]*Matrica[3,3]+Matrica[1,1]*Matrica[2,3]*Matrica[3,2]);
   //Comment ("det=",det);
   //обратную матрицу
   Matrica`[1,1]=((Matrica[2,2]*Matrica[3,3])-(Matrica[2,3]*Matrica[3,2]));
   Matrica`[1,2]=-((Matrica[2,1]*Matrica[3,3])-(Matrica[2,3]*Matrica[3,1]));
   Matrica`[1,3]=((Matrica[2,1]*Matrica[3,2])-(Matrica[2,2]*Matrica[3,1]));
   
   Matrica`[2,1]=-((Matrica[1,2]*Matrica[3,3])-(Matrica[1,3]*Matrica[3,2]));
   Matrica`[2,2]=((Matrica[1,1]*Matrica[3,3])-(Matrica[1,3]*Matrica[3,1]));
   Matrica`[2,3]=-((Matrica[1,1]*Matrica[3,2])-(Matrica[1,2]*Matrica[3,1]));
    
   Matrica`[3,1]=((Matrica[1,2]*Matrica[2,3])-(Matrica[1,3]*Matrica[2,2]));
   Matrica`[3,2]=-((Matrica[1,1]*Matrica[2,3])-(Matrica[1,3]*Matrica[2,1]));
   Matrica`[3,3]=((Matrica[1,1]*Matrica[2,2])-(Matrica[1,2]*Matrica[2,1]));
   //расчет коэффициентов параболы A0-с, A1-b, A2=a
      
   A0=(Matrica`[1,1]*Matrica[1,4]+Matrica`[1,2]*Matrica[2,4]+Matrica`[1,3]*Matrica[3,4])/det;
   A1=(Matrica`[2,1]*Matrica[1,4]+Matrica`[2,2]*Matrica[2,4]+Matrica`[2,3]*Matrica[3,4])/det;     
   A2=(Matrica`[3,1]*Matrica[1,4]+Matrica`[3,2]*Matrica[2,4]+Matrica`[3,3]*Matrica[3,4])/det; 

   
   return(0); 
   }
   



int start()
  {
  if(ObjectFind("Start")!=0) {Comment ("Вертикальная линия Start не найдена");}////return(0);}
  else {Comment ("Вертикальная линия Start на баре  ",iBarShift(NULL, 0, ObjectGet("Start", OBJPROP_TIME1),false) );}
shift=iBarShift(NULL, 0, ObjectGet("Start", OBJPROP_TIME1),false);

shift=215;
GP[shift+1]=0;
GP[shift]=0;
GP[shift-1]=0;
GP[shift-2]=0;
for (int j=shift-3;j>=0;j--)  
   {
      ArrayResize(a_Price,shift+3-j); 
      ArrayInitialize(a_Price,0);
      int s=1;
      for (int i=shift;i>=j;i--) 
         {
          a_Price[s]=Close[i];   
          s++;
         }
         Raschet_koefficientov_paraboli(a_Price,shift-j); 
      double summGradienta=0;
      for (int x=1;x<=shift-j;x++)
          {
          summGradienta+=Close[shift-x+1]-(A0+A1*x+A2*MathPow(x,2));
          }
   GP[j]=summGradienta*100000000000;
   }
   SetIndexLabel(0, "Gradient_Potenciala"+GP[1] );
   Comment (GP[1]);
 ////////////////////////------------------------------------------------------------ 
  //-0.0216
      
    /*  
      
      ArrayResize(a_Price,shift+2); 
      ArrayInitialize(a_Price,0);
      int s=1;
      for (i=shift;i>=1;i--) 
         {
          a_Price[s]=Close[i];   
          s++;
         }
     */
  /*   
     for(i=1;i<=200;i++)
      {
       a_Price[s]=Close[2]-100*Point+i*Point;      
       Raschet_koefficientov_paraboli(a_Price,shift-1);
       summGradienta=0;
       for (x=1;x<=shift-j;x++)
          {
          summGradienta+=Close[shift-x+1]-(A0+A1*x+A2*MathPow(x,2));
          }
    summGradienta =summGradienta*1000000000;  
 //   Alert(Close[2]-100*Point+i*Point,"=",summGradienta);
      }
      
*/
  /*
   
   ArrayResize(GP_Rev,ArrayRange(GP,0));
   ArrayCopy(GP_Rev,GP,0,0,WHOLE_ARRAY);
  // ArrayIsSeries(GP_Rev);
  ArraySetAsSeries(GP_Rev,1);
   int ma_period=25;
   for(i=shift-ma_period-15;i>=1;i--)
   {
  MA[i]= iMAOnArray(GP_Rev,0,ma_period,0,MODE_SMA,i);
   }

*/   
   
 //  MA[2]= iMAOnArray(GP_Rev,0,10,0,MODE_SMA,2);
 //  MA[3]= iMAOnArray(GP_Rev,0,10,0,MODE_SMA,15);
 //  Comment ("MA[1]",MA[1]);
   return(0);
  }
//+------------------------------------------------------------------+



Посмотрите что он рисует на визуализации.

 
Честно говоря весьма проблематично разобраться в чужом коде. Я могу только предположить что вы производите суммирование не совсем так. Могу только ещё раз изложить свою идею расчёта. Может быть более чёткое объяснение поможет? Мой алгоритм расчёта выглядит примерно следующим образом:
1. Берём выборку например по последним 100 барам [99,0]. Для этой выборки мы хотим посмотреть как менялся градиент силы, воздействующей на цену-шарик, катящийся по изогнутому наклонному желобку. Принимаем что этот самый желобок начался на 99 баре и закончился соответственно на 0.
2. Берём допущение, что для расчёта градиента силы, воздействующей на шарик в какой-то конкретной точке траектории например на 45 баре, нас совершенно не интересует форма желобка, по которой он пройдёт потом после этого бара. То есть отрезок [44,0] нас не интересует. Таким образом для расчёта градиента силы, действующей на шарик на баре 45 мы рассматриваем отрезок [99,45].
3. Для этого отрезка [99,45] мы находим параболу с помощью МНК. Градиент силы, действующей на шарик-цену, будет равен разности между ценой в точке 45 и значению аппроксимирующей параболы.
4. Далее мы хотим получить значения градиентов, действующих на шарик-цену, на всём протяжении его движения по отрезку [99,0]. Для этого мы должны будем повторить пункты 1-3. То есть берём отрезки [99,95],[99,94],[99,93]........[99,2],[99,1],[99,0] и находим значения градиентов для каждого отрезка.
5. Теперь производим суммирование градиентов, полученных в пункте 4. Получаем значение суммы градиентов сил, действующих на шарик-цену, для данной точки 99. То есть вот это значение мы можем нарисовать на графике. Это будет точка, по временной шкале расположенная на баре 99.
6. Далее мы хотим получить значение суммы градиентов для остальных точек этого нашего желобка [99,0]. Для этого мы должны по очереди брать соответствующие желобки [98,0],[97,0],[96,0]......[6,0],[5,0],[4,0]. И для каждого из желобков повторять пункты 1-5. В итоге на графике мы получим такую вот волнообразную структуру, начинающуюся на 99 баре и затухающую на 0 баре.

PS: На картинке поста solandr 08.07.06 20:12 суммирование градиентов шло по модулю. Но потом я стал использовать простое алгабраическое суммирование и точки перехода через 0 этой структуры являются у меня точками возникновения реальных каналов, действующих в текущий момент времени. "торговая стратегия на базе Волновой теории Эллиота" solandr 27.08.06 21:05
Абсолютно ту же самую процедуру я провожу и для каналов линенйной регрессии. Тоже получаю волновую структуру и из неё временные границы действующих в текущий момент времени каналов.
 

Значит Ваш график ПЭ - это траектория локального экстремума относительно текущего отсчета?


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

В целом, я немного растерян, поскольку то о чем буду писать ниже, мы уже обсуждали много раз, в том числе про каналы, ПЭ и про «мертвую зону», (кроме некоторых незначительных аспектов). Ну да ладно, повторим по крайне мере пройденное, а Владислав, на правах идеолога, поправит. :о)

Разумеется, это не вся моя модель, а вернее вообще не модель. Здесь нет кусочка от теории волн Эллиотта, фундамента модели - показателя Херста, МСП в полном объеме, «волн фрактальной структуры» и многого другого, а так же связи между этими компонентами. Рассматриваю ПЭ и ее использование обособленно, а не описываю свою модель.

Потенциальная энергия (ПЭ) канала

Начну с самого графика ПЭ. От текущего отсчета (иначе, от нулевого отсчета в какой то конкретный момент времени) берется ценовая выборка, для примеров используется (H+L)/2 количеством N баров (или отсчетов). Эта ценовая выборка и является входной для расчета ПЭ. Если идти с шагом +1 в историю, каждая такая итерация будет ограничивать выборку длинной от n до N. В данном случае неважно направление, идти от 0 до N или от N до 0. Для каждого такого канала вычисляется ПЭ. В результате, одному каналу ставится в соответствие одно значение потенциальной энергии. Это красноречиво демонстрируют рисунки (обратите внимание на высокохудожественное исполнение :о)

n=5


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

А это вариант для n=8. Очередная итерация дала нам ценовую выборку в 8 отсчетов, для которой и вычисляется одно значение ПЭ:



Полученная функция ПЭ имеет свои экстремумы и каждому экстремуму соответствует канал определенной длины. Учитывая специфику метода расчета ПЭ, особый интерес представляют каналы, соответствующие локальным минимумам (т.е. не только самый маленький экстремум). Их значения, положение относительно окна длинной N, в сочетании с дополнительными характеристиками каналов дают иерархию вложенности. Из кандидатов определяется канал верхнего уровня (родительский), наделенный большим потенциалом. Причем, совершенно не обязательно этот канал будет самый длинный. Понятие больший «потенциал» здесь трактуется в соответствии с МСП. В сочетании с минимальным значением потенциальной энергии можно утверждать, что это наиболее устойчивый канал.

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

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


Для большей ясности, заменю «потенциал», понятием «энергия» канала. Будет ли канал существовать вечно? Конечно, нет, когда ни будь, он потеряет свою энергию и прекратит существование. Куда он ее денет, потратит? Мое не скромное мнение - передаст другим каналам. Или, если смотреть с философской точки зрения, другие каналы ее отберут. А как отследить утечку энергии из канала? … о чем это я, ах да, простите, отвлекся. Больше не буду.

Приведу пример расчета от «случайного» нулевого бара. «Случайность» обусловлена неслучайным выбором одного из типичных, на мой взгляд, сложных участков на графике. Далее это станет видно. Итак, фиксирую текущий отсчет, и рассчитываю ПЭ для N=130, мертвая зона принята 30. В результате, у нас 130-30=100 каналов, и для каждого вычислю значение ПЭ. Получился вот такой график с наложенным ценовым рядом (H+L)/2.



Приведенный график содержит четыре канала обладающие минимальными значениями ПЭ. Далее, идентификация каналов назначается по отсчетам (длина канала вычисляется соответственно так 130 – (отсчет локального экстремума)):
25 отсчет
51 отсчет
88 отсчет
117 отсчет

В результате, мы переходим от Системы из 100 каналов к Системе из 4. Рассмотрим каждый канал в отдельности:

25 отсчет ПЭ Канал верхнего уровня (Родительский).



Каналы нижнего уровня

51 отсчет ПЭ


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



Это означает, что эти два канала будут конкурировать за энергию: один собирается ее перенести в одну сторону, другой – в другую. Направления переноса, в общем, не сильно совпадают. Интересно, кто у кого отберет энергию.

88 отсчет ПЭ



117 отсчет ПЭ Канал обладает самым маленьким значением потенциальной энергии по сравнению с остальными.



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



Если найти пересечения всех каналов со всеми, то получиться приличное количество.


Опускаю нудный рассказ о построении разворотных зон, а сразу перейду к результату. Во первых, это относиться только к конкретной ПЭ, рассчитанной моим методом. Отмечу только, что расчетная функция ПЭ, это только начальные условия Системы (в данном случае, система – это четыре канала, а не 100),

Получили следующие разворотные зоны для каналов, участ




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



Динамическая модель

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

N=5
Отсчеты: 0 1 2 3 4
Значения: 3 4 2 2 7

N=10
Отсчеты: 0 1 2 3 4 5 6 7 8 9
Значения: 3 4 2 2 7 5 1 2 2 1

На практике выглядит так:



В целом ничего особенного, но свойство очень важное именно для динамической модели и по этому его выделил.

Теперь о самой динамической модели. Для примера возьмем часовой график. Предположим, что сейчас 16:00 какого то торгового дня. Чего я хочу сделать? Грубо говоря, выполнить кратко описанные действия выше. От нулевого бара, который соответствовал 16:00 строю график ПЭ, длинною N исторических баров (отсчетов). На рисунке этот факт запечатлен:



Теперь вспомним, что я делал час назад, т.е. в 15:00. Если не пил пиво, то наверняка так же строил график ПЭ:



Входные выборки ценовых рядов в 16:00 и 15:00 будут отличаться друг от друга только двумя самыми крайними значениями. А это, несомненно, должно незначительно отразиться на графиках ПЭ. Но каким образом? Возьмем текущий пример, рассмотренный выше (предположим, график ПЭ рассчитывался для 16:00) и построим еще один график часом назад, т.е. в 15:00:



Видно, что количество локальных экстремумов сохранилось, но есть небольшие изменения, а именно внутреннее движение относительно окна. Собственно, а чего я ожидал?. Локальные экстремумы так же изменяют свое положение относительно окна, длинной N (помним, что окно – эта фиксированная величина), а так же меняются уровни энергии при том, что форма кривой остается практически исходной. В 16:00 родительский канал по графику ПЭ имел отсчет 24 (длина канала 106). А в 15:00 (надо отметить, что этот канал так же оставался родительским) имел отсчет 22, что соответствует длине канала 108. Так же следует отметить, что не было перестроения уровней каналов. Главный канал теряет длину и устойчивость.

Когда-то я и подумал, а почему не посмотреть дальше в историю, как бы «замораживая» окно, наблюдая через него за процессом.




Остается только совместить (хотя это не единственное построение) все графики за N часов (время тут конечно не важно, это могут быть минуты, часы, дни и т.д.). Получаем следующее:



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

Вот такая матрица получается для рассмотренного примера (это не только красиво, но еще и познавательно, тут ведь как, главное расширить сознание :)



PS: Юрий, вложил всю силу художественного и изобразительного слова в этот пост. Надеюсь, станет более понятно. Вот, только у меня просьба, если опять будет не понятно, напишите, что все ясно, иначе Вы разовьете во мне комплекс неполноценности, и мне придется тратиться на дорогого мозговика. Шутка!!! :о))))

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

За кадром остался только метод вычисления ПЭ, но это и правильно. Иначе обсуждение некоторых аспектов модели превратилось бы в её элементарную публикацию. А такая цель, надеюсь, не стоит.

Так что интересно, к каким результатам приведет такая многокомпонентная и насыщенная математикой система.
 
Спасибо,grasn , Вы ещё раз убедили меня, что я на верном пути. Правда моя функция распределения потенциальной энергии получилась многомерной, но на любой из ортогональных плоскостей функционального пространства она выглядит приблизительно также. Для анализа я использую комплекс нейросетей, архитектурно связанных между собой.
Сетка должна учитывать "перетекание" энергии из канала в канал. и определять разворотные зоны отдельно для каждого из каналов. После чего делаю параболическую апроксимацию и синтез графика функции (графика цены) используя волновую функцию. Не решенной остается проблема сильных искажений из-за краевых эффектов. Над этим сейчас думаю - есть кое-какие идеи.Результаты пока особо не впечатляют. На расчёты уходит 5 минут. На обучение сетки - сутки.

P.S. Все совпадения с Вашей системой прошу считать случайными. Поскольку копировать не могу т.к. Вашу систему не видел:).

cooper123. Не теряйте зря время на пустую затею с каги патернами. Имхо!
Причина обращения: