Обсуждение статьи "Эконометрический подход к поиску рыночных закономерностей: автокорреляция, тепловые карты и диаграммы рассеяния" - страница 2

 
Maxim Dmitrievsky:

Привет, MetaQuotes изменил python API, поэтому эта функция сейчас не работает. Возможно, позже я исправлю это и прикреплю новый блокнот.

Также вы можете ознакомиться с новой документацией на этом сайте

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


Жду вашего нового файла.

 

Отличная статья! Спасибо, что поделились своей работой!

Надеюсь, вы найдете немного времени, чтобы исправить проблему с Python API.


/Расул

 

Исправленный блокнот

Файлы:
 

Исправленная версия ноутбука, в связи с изменившимся питон апи

Файлы:
 
Maxim Dmitrievsky:

Исправленная версия ноутбука, в связи с изменившимся питон апи

Прикрепил к статье

 

Close[-1] = (Close[0]-Close[lag]) - ((Close[lag]-Close[lag*2]) - (Close[lag-1]-Close[lag*2-1]))

Если здесь применялась эта же формула, тогда ситуация похожа на предсказание МА, чем больше период, тем точнее предсказание МА на шаг вперед.

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

 
Rorschach:

Close[-1] = (Close[0]-Close[lag]) - ((Close[lag]-Close[lag*2]) - (Close[lag-1]-Close[lag*2-1]))

Если здесь применялась эта же формула, тогда ситуация похожа на предсказание МА, чем больше период, тем точнее предсказание МА на шаг вперед.

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

Там используется авторегрессия по отфильтрованному ряду (конкретным, условно, часам). За регрессоры берутся приращения соседних часов. Да, это предсказание на шаг вперёд. Более подробных экспериментов не делал. Если создать кастомный символ в мт5 для рандом волк, то можно проверить ботом из статьи. К сожалению, не дружу с ними. Может, кто-нибудь сделает.
 
#property script_show_inputs
#include <Math\Stat\Math.mqh>
#include <rndxor128.mqh>//https://www.mql5.com/ru/articles/273
//--- input parameters
input string   symbol_origin="EURUSD";// имя символа, на основе которого будет создан пользовательский символ 
input string   symbol_name="MySymbol";// имя пользовательского символа 
input datetime From=D'2019.01.01';
input datetime To=D'2020.01.01';

void OnStart()
  {
   CustomSymbolCreate(symbol_name,"",symbol_origin);
   SymbolSelect(symbol_name,true);
   int count=100;//StdDev m1=sqrt(count)
   RNDXor128 xor;
   //xor.SRand(6);//(GetTickCount());
   MqlRates A[];
   double B[]; ArrayResize(B,count);
   int total=CopyRates(symbol_origin,PERIOD_M1,From,To,A);
   for(int i=0;i<total;i++)
     {for(int j=0;j<count;j++) {B[j]=(xor.Rand()<2147483648)?_Point:-_Point;}
      MathCumulativeSum(B);
      A[i].open=(i>0) ? A[i-1].close : 1.1;
      A[i].high=MathMax(B)+A[i].open;
      A[i].low=MathMin(B)+A[i].open;
      A[i].close=B[count-1]+A[i].open;
      A[i].tick_volume=count;
     }
   Print(CustomRatesReplace(symbol_name,From,To,A));
  }
В настройках чарта (Ctrl+O) нужно выбрать необходимое количество баров.
 
Rorschach:
В настройках чарта (Ctrl+O) нужно выбрать необходимое количество баров.

попозже сделаю по той методе с авторегрессией, выгружу ряд в питон, модель построю

 

Спасибо за ваши статьи, мне очень нравится их читать!

Я заметил, что в этом примере вы устанавливаете .diff(lag) после выбора одного часа во всей статье. Это означает, что лаг в 25 фактически соответствует лагу в 25 дней.

Исключение составляет 3D-график, где вы применяете лаг до выбора часа. Было ли это сделано намеренно?