MAフィードクラスターの検出をどのようにアルゴリズム化しているのでしょうか? - ページ 15

 

疑問は晴れました!EAでアンロードする際に、クラスに制御パラメータを追加していたのがエラーでした。

Good day, please advise - what didn't I catch?

.batでデータをダウンロードし、それを読み込むのですが、最初のエントリだけが正しく、その後のデータは一致しません。


コードの意味は以下の通りです。

インジケーター

- 新しいデータがファイル内にあれば、それを記入する。

顧問の先生

- データをクラスにダンプする。


インジケータでは-としてアップロードされます。

//+------------------------------------------------------------------+
//| Выгружаю данные с файла если он есть                             |
//+------------------------------------------------------------------+
void TextCsv0(int size)
  {
   ArrayFree(cand_buff);
   ArrayResize(cand_buff,0);
   long count=FileLoad("test.bin",cand_buff);
   if(count!=-1)
     {
      for(int i=0; i<count; i++)
         PrintFormat("%s\t%G\t%G\t%G\t%G\t%G\t%G\t%G\t%G\t%G\t%I64u",
                     TimeToString(cand_buff[i].time,TIME_DATE|TIME_SECONDS),
                     cand_buff[i].bar,cand_buff[i].period,cand_buff[i].praceMA);
     }
   TextCsv1(size,(int)count);
  }
//+------------------------------------------------------------------+
//| Загружаю новые данные                                            |
//+------------------------------------------------------------------+
void TextCsv1(int size,int count)
  {
   int _count=0;
   if(count==-1) count=0;
   for(int i=0; i<size; i++)
      if(TextCsv2(count,i)==true)
        {
         ArrayResize(cand_buff,count+(int)_count+1);
         cand_buff[count+_count].period=Alt[i].period;
         cand_buff[count+_count].bar=Alt[i].bar;
         cand_buff[count+_count].praceMA=Alt[i].praceMA;
         cand_buff[count+_count].time=Alt[i].time;
         cand_buff[count+_count].High=Alt[i].High;
         cand_buff[count+_count].Low=Alt[i].Low;
         cand_buff[count+_count].type=Alt[i].type;
         _count++;
        }
   TextCsv(size,_count,count);
  }
//+------------------------------------------------------------------+
//| Проверка на новые данные                                         |
//+------------------------------------------------------------------+
bool  TextCsv2(long count,int i)
  {
   bool fl=true;
   for(int j=(int)count-1; j>=0; j--)
      if(cand_buff[j].period==Alt[i].period)
         if(cand_buff[j].time==Alt[i].time)
            return(false);
   return(true);
  }
//+------------------------------------------------------------------+
//| Загрузка                                                         |
//+------------------------------------------------------------------+
void TextCsv(int size,int _count, int count)
  {
//--- откроем файл для записи массива структуры в файл (если его нет, то создастся автоматически)
   ResetLastError();
   int file_handle=FileOpen("test.bin",FILE_READ|FILE_WRITE|FILE_BIN);//FileOpen("test "+"//"+_symbol(),FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON);
   if(file_handle!=INVALID_HANDLE)
     {
      FileSeek(file_handle,0,SEEK_END);
      //--- подготовим счетчик количества байт
      uint counter=0;
      //--- в цикле запишем значения массива
      for(int i=0; i<_count; i++)
         counter+=FileWriteStruct(file_handle,cand_buff[count+i]);
      //  PrintFormat("В файл %s записано %d байт информации",_symbol(),counter);
      PrintFormat("Всего байтов: %d * %d * %d = %d, %s",size,4,7,size*4*7,size*4*7==counter ? "Верно" : "Ошибка");
      //--- закрываем файл
      FileClose(file_handle);
      // PrintFormat("Данные записаны, файл %s закрыт",_symbol());
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",_symbol(),GetLastError());
  }

Expert Advisorで、以下のようにダウンロードします。

//+------------------------------------------------------------------+
//| Выгрузка                                                         |
//+------------------------------------------------------------------+
void LoadFail(datetime InpTimeDrawTo)
  {
   ArrayFree(buf0);
   long count=FileLoad("test.bin",buf0);
   if(count!=-1)
     {
      for(int i=0; i<count; i++)
        {
         PrintFormat("%s\t%G\t%G\t%G\t%G\t%G\t%G\t%G\t%G\t%I64u\t%d\t%I64u",
                     TimeToString(buf0[i].time,TIME_DATE|TIME_SECONDS),
                     buf0[i].bar,buf0[i].period,buf0[i].praceMA,buf0[i].High,buf0[i].Low,buf0[i].type);
        }
     }
  }
 
せめて、自分で動かしてみて、ねじったり、つついたりできるようなコードがあるといいのですが...。
 

こんにちは、MAハーネスを認識する方法をマスターするために継続的に

1バーの400本のMAを周期値で並べた配列を取得:- sm.d[per-1].m[bar]

XYチャートにプロットして束の見分け方を確認。範囲は1バーの第4MAから第400MAまで。

X軸-周期 4-400



微分して、このグラフを得た

形成された曲線がロッドであると理解しています。


微分は専用のプログラムを使って行うのですが、mqlが使えません。もしかしたら、mql5でどうやるか知っている人がいるかもしれません。

この丸めの範囲も簡単には決められませんが!!!どなたか、ご意見をお聞かせください。

この範囲はどのように決定するのですか?

それともこれ?


 
Mikhail Toptunov:

こんにちは、MAハーネスを認識する方法をマスターするために継続的に

1バーの400本のMAを周期値で並べた配列を取得:- sm.d[per-1].m[bar]

XYチャートにプロットして束の見分け方を確認。範囲は1バーの4番から400番までのMAです。

X軸-周期 4-400



微分して、このグラフを得た

形成された曲線がロッドであると理解しています。


微分は専用のプログラムを使って行うのですが、mqlが使えません。もしかしたら、mql5でどうやるか知っている人がいるかもしれません。

この丸めの範囲も簡単には決められませんが!!!どなたか、ご意見をお聞かせください。

この範囲はどのように決定するのですか?

それともこれ?


"プロディファレンシャル "とは、どのように行われるのか、詳しく教えてください。
 

思うに-常微分方程式(微分と積分)

微分:1(X),2(Y)

 
Mikhail Toptunov:

思うに-常微分方程式(微分と積分)

微分:1(X),2(Y)

訳あり

どのように差別化するか?

パッケージなしで、コードで?

 
Renat Akhtyamov:

たとえば、次のような言葉があります。

どのように差別化するか?

パケットなしで、コードで?

すみません、私に聞いているのですか?

- 意識はしていません。私はなんとなく、「HOW?

 
Mikhail Toptunov:

すみません、私に聞いているのですか?

- 意識はしていない。私はなんとなく、「HOW?

うん、面白い。

ここで、ググってみました。

時系列 微分 - 系列 X(t) から系列差分 X(t) - X(t-1) に 移行 する。

 
Renat Akhtyamov:

うん、面白い。

ここで、ググってみると

時系列の微分 - 系列 X(t) 、一連の差分 X(t) - X(t-1) になる。

意味がわからない!

 

プロの皆様、このレンジをどう選びますか?