Разностное исчисление, примеры. - страница 12

 
Aleksey Panfilov:
 

Идеи приветствуются.

Раз предложений нет пойдем по "накатанной".

Приложены базовый индикатор и вариант эксперта  для МТ 5.

Оптимизация на 5ти минутном таймфрейме.

Рисунки в файле Эксель.

Файлы:
 

По прежнему используем только сигналы индикатора.

Предполагаем основной сигнал на M5 и уточнение входа по M1. Оптимизировал на M1 по ценам открытия. В папке тестирование, выбранного (не очень тщательно) варианта, и по "ценам открытия", и по "всем тикам" , принципиальных отличий не вижу. Тестирование на интервале в два раза большем интервала оптимизации.


Файлы:
 
Aleksey Panfilov:

Вот например еще вариант использования в качестве новой информации приращения цены. В нем приращение считывается явно в виде разности.

   1*Y1-1*Y2-2*Y2+3*Y3-1*Y4 =0 

   1*Y1-1*Y2-3*Y2+6*Y3-4*Y4 + 1*Y5 =0 

   1*Y1-1*Y2-4*Y2+10*Y3-10*Y4 + 5*Y5 -1*Y6=0 

   1*Y1-1*Y2-5*Y2+15*Y3-20*Y4 + 15*Y5 -6*Y6 + 1*Y7=0 

   1*Y1-1*Y2-6*Y2+21*Y3-35*Y4 + 35*Y5 -21*Y6 + 7*Y7 -1*Y8=0 

...

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


Мы, как бы, за счет полинома четвертой степени на первых разностях (приращениях цены) повысили (по числу точек) степень до пятой.

Это она, регуляризация?


Посмотрел на цифры, сравнил с картинкой из ВИКИ "Биномиальный коэффициент", оказалось, совпадают:


Это "коэффициенты в разложении (1+x)^n в степенной ряд"

"Строки в треугольнике Паскаля, делённые на 2^n (сумма всех чисел в строке), в пределе стремятся к функции нормального распределения."

При создании темы говорилось, что в первую очередь интересны "математика,..". Вот и написал. Математические связи треугольника Паскаля в ВИКИ расписаны гораздо подробнее, только неизвестно, что же из них нужно.

 
Vladimir:

Посмотрел на цифры, сравнил с картинкой из ВИКИ "Биномиальный коэффициент", оказалось, совпадают:


Это "коэффициенты в разложении (1+x)^n в степенной ряд"

"Строки в треугольнике Паскаля, делённые на 2^n (сумма всех чисел в строке), в пределе стремятся к функции нормального распределения."

При создании темы говорилось, что в первую очередь интересны "математика,..". Вот и написал. Математические связи треугольника Паскаля в ВИКИ расписаны гораздо подробнее, только неизвестно, что же из них нужно.

Если это вопрос, то он очень похож на риторический.  ))

Ответить на такой вопрос не просто. Свойства треугольника проявляются в очень разных "темах".

Вы упоминали о статистике, я уже пытался подлезть с позиции кинематики (в приложенных ссылках).

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

Разностное исчисление, примеры.

Aleksey Panfilov, 2018.01.10 16:34


Да.

На прямую связано с биномом Ньютона.

Для равноотстоящих точек справедливо:

         1*Y1-2*Y2+1*Y3=0 -  разностное уравнение прямой.

     1*Y1-3*Y2+3*Y3-1*Y4 =0 - разностное уравнение параболы второй степени.

1*Y1-4*Y2+6*Y3-4*Y4 + 1*Y5 =0 - разностное уравнение параболы третьей степени.

Так же пересекается с темами:

 https://www.mql5.com/ru/forum/61389/page48#comment_5633264

 https://www.mql5.com/ru/forum/211220/page2#comment_5632736 .

Прикладываю, на мой взгляд, интересную статью  в журнале "Квант". И это не единственная статья  Н.Б. Васильева на эту тему, и конечно не исчерпывает весь спектр проявления свойств треугольника Паскаля. (Оставим за скобками то, что Паскаль не первый обращал внимание на эту "модель")

P/S. Название архива покорежило, назывался: Николай Васильев. Журнал Квант.doc.zip

 


 
Aleksey Panfilov:

Если это вопрос, то он очень похож на риторический.  ))

Ответить на такой вопрос не просто. Свойства треугольника проявляются в очень разных "темах".

Вы упоминали о статистике, я уже пытался подлезть с позиции кинематики (в приложенных ссылках).

Прикладываю, на мой взгляд, интересную статью  в журнале "Квант". И это не единственная статья  Н.Б. Васильева на эту тему, и конечно не исчерпывает весь спектр проявления свойств треугольника Паскаля. (Оставим за скобками то, что Паскаль не первый обращал внимание на эту "модель")

P/S. Название архива покорежило, назывался: Николай Васильев. Журнал Квант.doc.zip

Спасибо за развернутый ответ. Прочел все доп. материалы. Вопроса как такового не было, скорее, реакция на Ваше предложение из другой ветки https://www.mql5.com/ru/forum/221552/page194#comment_6625488 : "Возможно ли, так использовать и вторую, и n-ю разность, и EMA от первой до четвертой степени? Было бы любопытно составить общую схему процессов в аналогичных примерах."

Идти к общности схемы вовсе не обязательно путем постепенного наращивания числа учтенных разностей на 1, можно ведь сразу перейти к их очень большому числу, проанализировав свойства треугольника Паскаля. Именно в той ветке, насколько я понял, возникла нужда в оценке "эталонного распределения". Пусть для тысяч приращений, но "эталонность" сразу постулируется в свойствах Ваших коэффициентов из треугольника Паскаля как стремление к нормальному распределению. @Александр_K2 искал распределение приращений, хоть сколь-нибудь близкое к пуассоновскому, а само пауссоновское с ростом показателя стремится к нормальному. Если взглянуть с тех позиций, что Ваши коэффициенты соответствуют замене выражения (1-x)^n на его разностный аналог, то... можно подумать и об общей схеме "процессов в аналогичных примерах".

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

 

P/S. Судя по последним диаграммам, нужно проверить оптимизацию по времнии торговли.

 

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

Новый график.

График  показыват расклад по закрытию сделки, и для сделок продолжительностью от 15 минут до 15 часов (в основном), ргулировать открытие по времени наверно можно но точно не "в лоб". Как фильтровать закрытие не знаю.

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

Файлы:
2018_02_28.zip  441 kb
 

Добавил в последний эксперт возможность отключать слой фильтрации.

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

  if(( line1_L0[0] > line2_L0[0] || L0_1_line_power ==0)  &&  (line1_L1[0] > line2_L1[0]  || L1_1_line_power ==0))
     {
      if(
           (
           (line1_L2[0] > line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
           )
            || Sell_opened
        )  
        {
         // есть ли в данный момент открытая позиция на покупку?
         if(Buy_opened)
           {
//            Alert("Уже есть позиция на покупку!!!");
            return;    // не добавлять к открытой позиции на покупку
           }        
         if(
             Sell_opened && ( line1_L0[0] > line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] > line2_L1[0]  || L1_1_line_power ==0)
              && (line1_L2[0] > line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
           )
            {      LotS = 2*Lot;      }        
            else   LotS = 1*Lot;

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

Отмена фильтрации по времени открытия обеспечивается назначением разрешенного периода больше 24 часов.

//=====================================================================================
input int      Start_Hour=0;
input int      Period_Hour=25;

input int     EA_Magic       = 12345;    // Magic Number slippage 
input int     EA_Slippage    = 30;       // Slippage from the current price
//=====================================================================================
//--- глобальные переменные
Файлы:
 

И конечно нельзя оставить даже тестерного эксперта, без корректно работающих TP  и SL.

   if((line1_L0[0] < line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] < line2_L1[0] || L1_1_line_power ==0) && relay >= 0 )
     {
        relay = -1;
     
      if(
          (
          (line1_L2[0] < line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)
          )
           || Buy_opened  
        )
        {
         // есть ли в данный момент открытая позиция на продажу?
         if(Sell_opened )
           {
//            Alert("Уже есть позиция на продажу!!!");
            return;    // Ждем исполнения стоп приказа //не добавлять к открытой позиции на продажу
           }
         if(
             Buy_opened  && (line1_L0[0] < line2_L0[0] || L0_1_line_power ==0) &&  (line1_L1[0] < line2_L1[0] || L1_1_line_power ==0) 
             &&  (line1_L2[0] < line2_L2[0] || L2_1_line_power ==0) && ((New_Time[0]-3600*Start_Hour)%86400 < 3600*Period_Hour)  
           )
            {      LotS = 2*Lot;      }        
            else
                   LotS = 1*Lot;

P/S.

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

PP/S.

Погонял оптимизацию по TP и SL, похоже первый вариант был полезнее.

Файлы:
Причина обращения: