ЕМА третьей степени, учусь использовать внутри дня. - страница 4

 
Nikolai Semko:

тогда я говорил о Фурье, но не о псевдо Фурье. 

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

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

))) !!!   Нужно будет запомнить. ))


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

Схема при этом в целом  соответствует методу.

 
Aleksey Panfilov:

))) !!!   Нужно будет запомнить. ))


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

Схема при этом в целом  соответствует методу.

Целью любого метода аппроксимации является получить формулу самой функции, чтобы была возможность продолжить эту функцию, прогнозируя будущее.
Важной характеристикой качества такого прогноза является лишь последняя точка и наклон касательной в этой точке. (то что я называю трассер)
Ваши методы построения "псевдо Фурье" сводятся к построению как раз прошлых точек построения, которые не несут уже никакой практической пользы. Зачем !? А последнюю точку Вы каждый раз придумываете, как дорисовать.
И Вы правильно уже давно пришли к выводу, что лучший способ дорисовывать хвостик сдвинутой функции - это полином. Ну на кой черт все остальное тогда!? Какие то разностные счисления, рекурсии и т.д. Это и есть мозгоблудие.

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

 
Nikolai Semko:

Целью любого метода аппроксимации является получить формулу самой функции, чтобы была возможность продолжить эту функцию, прогнозируя будущее.
Важной характеристикой качества такого прогноза является лишь последняя точка и наклон касательной в этой точке. (то что я называю трассер)
Ваши методы построения "псевдо Фурье" сводятся к построению как раз прошлых точек построения, которые не несут уже никакой практической пользы. Зачем !? А последнюю точку Вы каждый раз придумываете, как дорисовать.
И Вы правильно уже давно пришли к выводу, что лучший способ дорисовывать хвостик сдвинутой функции - это полином. Ну на кой черт все остальное тогда!? Какие то разностные счисления, рекурсии и т.д. Это и есть мозгоблудие.

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

В индикаторе кроме метода (модели) и периодов синусоид, ничего не придумано. 

А полиномы, действительно, достойны внимания.

 
Aleksey Panfilov:

В индикаторе кроме метода (модели) и периодов синусоид, ничего не придумано. 

А полиномы, действительно, достойны внимания.

ООО братцы я большой знаток полиномов, зырьте какой красавец у меня начнёт работать с понедельника:

 double x0 = 2.0 * (v0 + 1.4651) / 4.93277 - 1.0;
   double x1 = 2.0 * (v1 + 1.12597) / 5.05877 - 1.0;
   double x2 = 2.0 * (v2 + 0.36916) / 4.27435 - 1.0;
   double x3 = 2.0 * (v3 + 3.66562) / 3.97948 - 1.0;
   double x4 = 2.0 * (v4 + 1.27821) / 5.07603 - 1.0;
   double x5 = 2.0 * (v5 + 0.94841) / 5.31674 - 1.0;
   double x6 = 2.0 * (v6 + 1.24611) / 5.24525 - 1.0;
   double x7 = 2.0 * (v7 + 4.57116) / 7.44979 - 1.0;
   double x8 = 2.0 * (v8 + 0.54048) / 4.34372 - 1.0;
   double decision = -0.023262156044615342 * sigmoid(x3 + x5)
  + 0.015844446262510567 * sigmoid(x1 + x3 + x5 + x7)
  + 0.021799749106875016 * sigmoid(1.0 + x1 + x5)
  + 0.03908955793722218 * sigmoid(1.0 + x1 + x3 + x4 + x6)
  + 0.01822384030107175 * sigmoid(1.0 + x1 + x3 + x7)
  + 0.0537988491641441 * sigmoid(1.0 + x1 + x2 + x3 + x5 + x7)
  + 0.0035384111920150536 * sigmoid(1.0 + x0 + x2 + x3 + x8)
  + 0.025505195123946656 * sigmoid(1.0 + x2 + x3 + x6 + x8)
  + 0.017037552155771907 * sigmoid(1.0 + x1 + x2 + x3 + x4 + x6 + x8)
  + 0.03150481333006081 * sigmoid(1.0 + x1 + x2 + x3 + x7 + x8)
  + 0.07543156344596252 * sigmoid(1.0 + x0 + x2 + x6 + x7 + x8)
  + 0.011051569445580736 * sigmoid(1.0 + x1 + x2 + x6 + x7 + x8)
  + 0.703035943167253 * sigmoid(1.0 + x1 + x2 + x3 + x6 + x7 + x8)
  + 0.007400665412201041 * sigmoid(1.0 + x1 + x2 + x3 + x4 + x6 + x7 + x8);

В верху это нормализация ну и собственно сами коэфициенты полинома. И помните не так ВАЖЕН сам полином, как метод его получения.

 
Mihail Marchukajtes:

ООО братцы я большой знаток полиномов, зырьте какой красавец у меня начнёт работать с понедельника:

В верху это нормализация ну и собственно сами коэфициенты полинома. И помните не так ВАЖЕН сам полином, как метод его получения.

)))

Учитывая дроби в коэффициентах это не полином, а ближе к комбинации полиномов с суммой синусоид. ))

Рекуррентная формула для синуса : Дискуссионные темы (М) - Страница 7
  • dxdy.ru
В принципе, используется и рекуррентное вычисление через возвратное уравнение второго порядка, и через комплексную экспоненту. Первое менее расходно по ресурсам (умножение и два сложения и две ячейки памяти) по сравнению со вторым (два умножения, четыре сложения, две ячейки памяти при постоянной частоте), но накапливается погрешность быстрее...
 
Дроби коэфициентов? Не понял. Так или иначе этот полином с сигмоидальной функцией активации, что до коэфициентов, так они распределены в соответствии с аксиомой вектора Шепли, надо отдать должное Решетову, за достаточно годный продукт, я во всяком случае запилил его под себя, поменял логику организации тренировки и т.д. в общем если раньше нужно было часа три четыре чтобы построить модель, сейчас уходит на это все отсилы час и это я не беру во внимание машинное время, когда тупо сидишь и пялишся в киношку какуюнить пока он все посчитает.
 
Aleksey Panfilov:

Не проверял. 

Думаю от настроек все же много зависит.

Ок.

Понаблюдаем за развитием темы.

 
Nikolai Semko:

не будьте наивным - простое совпадение.

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

https://www.mql5.com/ru/forum/224374/page6#comment_6364559

тут более периодическая какая то функция получилась.

конечно мало информации на скрине для оценки

думаю что как минимум прогон в тестере, разложит все по полочкам.

 

Полезная, на мой взгляд, ссылка:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Индикаторы: volatility_Bar

Igor Makanu, 2020.01.07 15:32

https://www.mql5.com/ru/code/9869

//+------------------------------------------------------------------+
//| возвращает запрашиваемый фильтр с разной степенью сглаживания    |
//+------------------------------------------------------------------+
double SP(int i)
  {
//----
  double res;
  switch (SmoothPower)
    {
    case 1:
res=
  0.2926875484300*B1[i]
+0.2698679548204*B1[i+1]
+0.2277786802786*B1[i+2]
+0.1726588586020*B1[i+3]
+0.1124127695806*B1[i+4]
+0.0550645669333*B1[i+5]
+0.00733791069745*B1[i+6]
-0.02637426808863*B1[i+7]
-0.0445334647733*B1[i+8]
-0.0483673837716*B1[i+9]
-0.0412219004631*B1[i+10]
-0.02759007317598*B1[i+11]
-0.01206738017651*B1[i+12]
+0.001567315986223*B1[i+13]
+0.01094916192054*B1[i+14]
+0.01530469318242*B1[i+15]
+0.01532526278128*B1[i+16]
+0.01296015381098*B1[i+17]
+0.01157140552294*B1[i+18]
-0.00533181209765*B1[i+19];break;

      case 2:
res=
  0.2447098565978*B1[i]
+0.2313977400697*B1[i+1]
+0.2061379694732*B1[i+2]
+0.1716623034064*B1[i+3]
+0.1314690790360*B1[i+4]
+0.0895038754956*B1[i+5]
+0.0496009165125*B1[i+6]
+0.01502270569607*B1[i+7]
-0.01188033734430*B1[i+8]
-0.02989873856137*B1[i+9]
-0.0389896710490*B1[i+10]
-0.0401411362639*B1[i+11]
-0.0351196808580*B1[i+12]
-0.02611613850342*B1[i+13]
-0.01539056955666*B1[i+14]
-0.00495353651394*B1[i+15]
+0.00368588764825*B1[i+16]
+0.00963614049782*B1[i+17]
+0.01265138888314*B1[i+18]
+0.01307496106868*B1[i+19]
+0.01169702291063*B1[i+20]
+0.00974841844086*B1[i+21]
+0.00898900012545*B1[i+22]
-0.00649745721156*B1[i+23]; break;

      case 3:
res=
  0.2101888714743*B1[i]
+0.2017361306871*B1[i+1]
+0.1854987469779*B1[i+2]
+0.1627557943437*B1[i+3]
+0.1352455218956*B1[i+4]
+0.1049955517302*B1[i+5]
+0.0741580960823*B1[i+6]
+0.0448262586090*B1[i+7]
+0.01870440453637*B1[i+8]
-0.002814841280245*B1[i+9]
-0.01891352345654*B1[i+10]
-0.02929206622741*B1[i+11]
-0.0341888300133*B1[i+12]
-0.0342703255777*B1[i+13]
-0.03055656616909*B1[i+14]
-0.02422648959598*B1[i+15]
-0.01651476470542*B1[i+16]
-0.00857503584404*B1[i+17]
-0.001351831295525*B1[i+18]
+0.00448511071596*B1[i+19]
+0.00855374511399*B1[i+20]
+0.01076725654789*B1[i+21]
+0.01131091969998*B1[i+22]
+0.01057394212462*B1[i+23]
+0.00912947281517*B1[i+24]
+0.00771484446233*B1[i+25]
+0.00732318993223*B1[i+26]
-0.00726358358348*B1[i+27]; break;

      case 4:
res=
  0.1841600001487*B1[i]
+0.1784754786728*B1[i+1]
+0.1674508960246*B1[i+2]
+0.1517504699970*B1[i+3]
+0.1323034848757*B1[i+4]
+0.1102401824660*B1[i+5]
+0.0867964146007*B1[i+6]
+0.0632389269284*B1[i+7]
+0.0407389647190*B1[i+8]
+0.02035075474450*B1[i+9]
+0.002915227087755*B1[i+10]
-0.01100443994875*B1[i+11]
-0.02116075293157*B1[i+12]
-0.02747786871251*B1[i+13]
-0.03024034479978*B1[i+14]
-0.02988490637108*B1[i+15]
-0.02702558542347*B1[i+16]
-0.02236077351054*B1[i+17]
-0.01662176948519*B1[i+18]
-0.01050105629699*B1[i+19]
-0.00460605501191*B1[i+20]
+0.000582766458037*B1[i+21]
+0.00473324688655*B1[i+22]
+0.00766855376673*B1[i+23]
+0.00936273985238*B1[i+24]
+0.00991966879705*B1[i+25]
+0.00955690928799*B1[i+26]
+0.00857195408578*B1[i+27]
+0.00734849040305*B1[i+28]
+0.00634910972836*B1[i+29]
+0.00617002099346*B1[i+30]
-0.00780070803276*B1[i+31]; break;

      case 5:
res=
  0.1638504429550*B1[i]
+0.1598485090620*B1[i+1]
+0.1520285056667*B1[i+2]
+0.1407759621461*B1[i+3]
+0.1266145946036*B1[i+4]
+0.1101999467868*B1[i+5]
+0.0922810246421*B1[i+6]
+0.0736414430377*B1[i+7]
+0.0550613836268*B1[i+8]
+0.0372780690048*B1[i+9]
+0.02094281812508*B1[i+10]
+0.00658930585105*B1[i+11]
-0.00538855535197*B1[i+12]
-0.01474498292814*B1[i+13]
-0.02139199173398*B1[i+14]
-0.02541417253316*B1[i+15]
-0.02702341057229*B1[i+16]
-0.02647614727071*B1[i+17]
-0.02421775125345*B1[i+18]
-0.02065411010395*B1[i+19]
-0.01625074823286*B1[i+20]
-0.01145130552469*B1[i+21]
-0.00665356586398*B1[i+22]
-0.002196710270528*B1[i+23]
+0.001656596678561*B1[i+24]
+0.00473296009497*B1[i+25]
+0.00694308970535*B1[i+26]
+0.00827947138512*B1[i+27]
+0.00880879507493*B1[i+28]
+0.00865791955067*B1[i+29]
+0.00800414344065*B1[i+30]
+0.00706330074106*B1[i+31]
+0.00608814048308*B1[i+32]
+0.00538380036114*B1[i+33]
+0.00532891349043*B1[i+34]
-0.00819568487412*B1[i+35]; break;

      case 6:
res=
  0.1475657670368*B1[i]
+0.1446405411673*B1[i+1]
+0.1389042575727*B1[i+2]
+0.1305751002746*B1[i+3]
+0.1199864911731*B1[i+4]
+0.1075255410806*B1[i+5]
+0.0936615730647*B1[i+6]
+0.0788949093050*B1[i+7]
+0.0637465101034*B1[i+8]
+0.0487276238639*B1[i+9]
+0.0343174315294*B1[i+10]
+0.02094370638877*B1[i+11]
+0.00896531966221*B1[i+12]
-0.001341999129024*B1[i+13]
-0.00978712653663*B1[i+14]
-0.01627791183058*B1[i+15]
-0.02080151436502*B1[i+16]
-0.02343895781894*B1[i+17]
-0.02435214700067*B1[i+18]
-0.02376786389147*B1[i+19]
-0.02193912806308*B1[i+20]
-0.01912053352973*B1[i+21]
-0.01567028095913*B1[i+22]
-0.01183273845729*B1[i+23]
-0.00790611190014*B1[i+24]
-0.00412385952442*B1[i+25]
-0.000685399211775*B1[i+26]
+0.002260911767506*B1[i+27]
+0.00461801537249*B1[i+28]
+0.00633741616229*B1[i+29]
+0.00741961543986*B1[i+30]
+0.00790789206069*B1[i+31]
+0.00788111695823*B1[i+32]
+0.00745129870298*B1[i+33]
+0.00674985662064*B1[i+34]
+0.00593128562366*B1[i+35]
+0.00517071741994*B1[i+36]
+0.00467211882117*B1[i+37]
+0.00468906740665*B1[i+38]
-0.00849851236070*B1[i+39]; break;

      case 7:
res=
  0.1342157583828*B1[i]
+0.1320168704847*B1[i+1]
+0.1276873471586*B1[i+2]
+0.1213643729739*B1[i+3]
+0.1132520713460*B1[i+4]
+0.1036083698498*B1[i+5]
+0.0927280425508*B1[i+6]
+0.0809406915977*B1[i+7]
+0.0686105258715*B1[i+8]
+0.0560701395588*B1[i+9]
+0.0436869941553*B1[i+10]
+0.0317716835118*B1[i+11]
+0.02062340027452*B1[i+12]
+0.01049287508919*B1[i+13]
+0.001578073235404*B1[i+14]
-0.00597507422440*B1[i+15]
-0.01207707288043*B1[i+16]
-0.01669798399142*B1[i+17]
-0.01986198555101*B1[i+18]
-0.02164119825031*B1[i+19]
-0.02215230961811*B1[i+20]
-0.02155191142867*B1[i+21]
-0.02002808597329*B1[i+22]
-0.01778220203770*B1[i+23]
-0.01500325973440*B1[i+24]
-0.01187583268349*B1[i+25]
-0.00865026821576*B1[i+26]
-0.00543510816909*B1[i+27]
-0.002420531056597*B1[i+28]
+0.0002889057085442*B1[i+29]
+0.002599652575601*B1[i+30]
+0.00445344386830*B1[i+31]
+0.00582556501823*B1[i+32]
+0.00671941035514*B1[i+33]
+0.00716358274204*B1[i+34]
+0.00721108593431*B1[i+35]
+0.00693382886173*B1[i+36]
+0.00641737976071*B1[i+37]
+0.00576046002138*B1[i+38]
+0.00507417448638*B1[i+39]
+0.00448195239124*B1[i+40]
+0.00412727462648*B1[i+41]
+0.00418669196944*B1[i+42]
-0.00873780054566*B1[i+43]; break;

      case 8:
res=
  0.1230811432921*B1[i]
+0.1213830265980*B1[i+1]
+0.1180348688628*B1[i+2]
+0.1131248477390*B1[i+3]
+0.1067888736447*B1[i+4]
+0.0991886630563*B1[i+5]
+0.0905283970643*B1[i+6]
+0.0810323992972*B1[i+7]
+0.0709406523601*B1[i+8]
+0.0605028783409*B1[i+9]
+0.0499660517196*B1[i+10]
+0.0395768971912*B1[i+11]
+0.02956612933181*B1[i+12]
+0.02012982828450*B1[i+13]
+0.01146221166452*B1[i+14]
+0.00369983285522*B1[i+15]
-0.003038977187834*B1[i+16]
-0.00868021984873*B1[i+17]
-0.01318508621117*B1[i+18]
-0.01655096644715*B1[i+19]
-0.01881253249101*B1[i+20]
-0.02003063357865*B1[i+21]
-0.02029727780544*B1[i+22]
-0.01972188576919*B1[i+23]
-0.01843477354910*B1[i+24]
-0.01658081992154*B1[i+25]
-0.01430671529886*B1[i+26]
-0.01175302972849*B1[i+27]
-0.00904320119485*B1[i+28]
-0.00630514721661*B1[i+29]
-0.00369357675439*B1[i+30]
-0.001242693518572*B1[i+31]
+0.000926258391563*B1[i+32]
+0.002776968147451*B1[i+33]
+0.00426926013496*B1[i+34]
+0.00538851571708*B1[i+35]
+0.00613947934547*B1[i+36]
+0.00654179765073*B1[i+37]
+0.00663281051554*B1[i+38]
+0.00645954126814*B1[i+39]
+0.00608069576729*B1[i+40]
+0.00556313321406*B1[i+41]
+0.00497954512068*B1[i+42]
+0.00441241979276*B1[i+43]
+0.00395101867555*B1[i+44]
+0.00369891645504*B1[i+45]
+0.00378072162625*B1[i+46]
-0.00893024660315*B1[i+47]; break;

      case 9:
res=
  0.1136491141667*B1[i]
+0.1123130870080*B1[i+1]
+0.1096691394261*B1[i+2]
+0.1057837207790*B1[i+3]
+0.1007420961698*B1[i+4]
+0.0946599675379*B1[i+5]
+0.0876755484183*B1[i+6]
+0.0799429655454*B1[i+7]
+0.0716292336416*B1[i+8]
+0.0629123835413*B1[i+9]
+0.0539767262326*B1[i+10]
+0.0450048491714*B1[i+11]
+0.0361703734359*B1[i+12]
+0.02763520549089*B1[i+13]
+0.01955011451800*B1[i+14]
+0.01205357915205*B1[i+15]
+0.00525211553366*B1[i+16]
-0.000770477101024*B1[i+17]
-0.00593916191975*B1[i+18]
-0.01022805895137*B1[i+19]
-0.01361544672818*B1[i+20]
-0.01611640231317*B1[i+21]
-0.01776260795296*B1[i+22]
-0.01860554342447*B1[i+23]
-0.01871505916941*B1[i+24]
-0.01817487448682*B1[i+25]
-0.01707856129273*B1[i+26]
-0.01552770218471*B1[i+27]
-0.01362988259084*B1[i+28]
-0.01149332680480*B1[i+29]
-0.00921892385382*B1[i+30]
-0.00689459719023*B1[i+31]
-0.00459651305691*B1[i+32]
-0.002411870743968*B1[i+33]
-0.000431732873329*B1[i+34]
+0.001353807064687*B1[i+35]
+0.002857282707287*B1[i+36]
+0.00408190921586*B1[i+37]
+0.00501143566228*B1[i+38]
+0.00565074521587*B1[i+39]
+0.00601564306030*B1[i+40]
+0.00613066979989*B1[i+41]
+0.00602923574050*B1[i+42]
+0.00575258932729*B1[i+43]
+0.00534744169195*B1[i+44]
+0.00486457915178*B1[i+45]
+0.00435951288835*B1[i+46]
+0.00389329662905*B1[i+47]
+0.00353234960893*B1[i+48]
+0.00335331131328*B1[i+49]
+0.00344636014208*B1[i+50]
-0.00908964634931*B1[i+51]; break;

       default:
res=
  0.363644232288*B1[i]
+0.319961361319*B1[i+1]
+0.2429021537279*B1[i+2]
+0.1499479402208*B1[i+3]
+0.0606476023757*B1[i+4]
-0.00876136797274*B1[i+5]
-0.0492967601969*B1[i+6]
-0.0606402244647*B1[i+7]
-0.0496978153976*B1[i+8]
-0.02724932305397*B1[i+9]
-0.00400372352396*B1[i+10]
+0.01244416185618*B1[i+11]
+0.01927941647120*B1[i+12]
+0.01821767237980*B1[i+13]
+0.01598780862402*B1[i+14]
-0.00338313465225*B1[i+15];
    
    }
  return(res);
//----    
  }