どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 534

 
AlexeyVik:

これを使って https://docs.mql4.com/ru/indicators/imaonarray

コードを見てください。

//+------------------------------------------------------------------+
//|Определяем, можно ли торговать исходя из волатильности            |
//+------------------------------------------------------------------+

bool Volatilnost(int ATRTimeframe, int ATRPeriod, int PerShortMA, int PerLongMA, int ma_method)
   {
   bool  res = false;
   double   atr_curr[101];
   double   iatr_curr;
   
   ArraySetAsSeries(atr_curr,true);
   
   for(int i=100; i>=0; i--)  
   {
   atr_curr[i]=iATR( NULL, ATRTimeframe, ATRPeriod, i) ;
   if(i==1){iatr_curr=atr_curr[i];}
   }
   double   ShortMA=iMAOnArray( atr_curr, 0, PerShortMA, 0, ma_method, 1); 
   double   LongMA =iMAOnArray( atr_curr, 0, PerLongMA, 0, ma_method,  1); 

   if (ShortMA < LongMA)res = false;// Не работаем
         else res = true;
       
   return(res);
   }
 
AlexeyVik:
今度は「角度はグラフのスケーリングに依存するから無理だ」と説明し始めるだろうが...。
しかし、角度ではなく、角度の正接だけをとれば、できるのです。

学校の幾何学でタンジェントとカタジェントを習ったのは知っていますが、残念ながら覚えていません)掲示板でFreshさんに質問しましたが、明確な回答は得られていないようです。
 

Yandexが禁止されている場合は、Googleを使用することができます。

つまり、直角三角形の角の正接は、反対側の脚と隣接する脚の比になるのである。

これをMT図に置き換えると、「反対側の脚はポイント(単位:pct)、隣接する脚はバー(単位:pct)に等しくなる」となります。

EURUSDオープニング6.03 1.3732 オープニング7:03 1.3860 合計128ピップス。M1 1440本時 tan = 128/1440=0.08889

この式は基本的にObjectGetValueByShift()関数で使用されます。

 
サードパーティーのサーバーを使用することは可能ですか? 私はこれを接続しているだけですhttp://buy.fineproxy.org/
 
テーブル(*.csv)のデータを3次元の静的配列に はめ込む方法を教えてください。
表の1列目には配列の1次元目のインデックスが格納されています。
2列目には配列の2次元目のインデックスが格納されています。
3列目以降には配列の3次元目の値そのものが格納されています。
void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

         ????????????????????????????????????????????????????
        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }
 
Leo59:
テーブル(*.csv)のデータを3次元の静的配列に入れる方法について教えてください。
テーブルの最初の列は,配列の1次元目のインデックスを持つ.
2列目は配列の2次元目を表すインデックスである。
3列目以降 - 配列の3次元目に相当する値そのもの。



Excel自体で分析する場合は、サマリー表。

あるいはデータの一部を表示するには、インデックス-値に一致する補助的な文字列配列を用意する必要がありそうです。

 
splxgf:


....は、index-valueにマッチするような補助的な文字列配列を用意する必要がありそうです。

void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

// Завели строковый массив

         // Преобразование типов данных и запись в масссив
         ArrayResize(Mas1, SizeMas1+1);                        // Увеличили размер массива Mas1

         Mas1[SizeMas1][0] = StrToInteger(str_1);              //  0 Номер индекса по первому измерению
         Mas1[SizeMas1][1] = StrToInteger(str_2);              //  1 Номер индекса по второму измерению
         Mas1[SizeMas1][2] = StrToDouble(str_3);               //  2 Значение
         Mas1[SizeMas1][3] = StrToDouble(str_4);               //  3 Значение
         Mas1[SizeMas1][4] = StrToDouble(str_5);               //  4 Значение
         SizeMas1++;                                           // Новый размер массива Mas1

// Что дальше  ????????????????????????????????????????????????????

        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }
 

OBJ_ARROW_RIGHT_PRICEなどの オブジェクトをすべて削除するにはどうすればよいですか?

ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE) コマンドは、タイムフレームを変更しても(強制的にチャート全体を再描画しても)、削除されない。

簡単なスクリプトを書きました。コメントで、画面に書き込みます。

Alert("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // =36

ObjectCreate("MyArrow",OBJ_ARROW_RIGHT_PRICE,0,Time[1],Open[1]) ; // OBJ_ARROW_RIGHT_PRICE を作成しました。

Alert("objectTipe=", ObjectType("MyArrow"), "ARROW CODE=",ObjectGet("MyArrow",OBJPROP_ARROWCODE) ) ; // nightmare "objecType=" =22, なぜ最初の行と同様に36ではないのかわかりませんでしたか?

ResetLastError() ;

Alert("script delete arrow right price=",ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // 削除オブジェクト=0, エラーコード=0

ObjectsDeleteAll(22) ; // 削除されたオブジェクトは再び0になる」と書いて実験を続ける。

 
VoDyaMon:

OBJ_ARROW_RIGHT_PRICEなどのオブジェクトをすべて削除するには?


今一度、ヘルプをお読みください。

ObjectsDeleteAll

指定された型の、指定されたサブウィンドウ内の全てのオブジェクトを削除する。

int  ObjectsDeleteAll(
   int   window=EMPTY,      // индекс окна
   int   type=EMPTY         // тип объекта для удаления
   );

オブジェクトがメインチャートサブウィンドウにある場合。

ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE);
 
isn-88:


もう一度ヘルプを読んでください。

ObjectsDeleteAll

指定されたタイプの、指定されたチャートのサブウィンドウにあるオブジェクトをすべて削除します。

オブジェクトがメイングラフサブウィンドウにある場合。

ただ、くだらない選択肢を提案するのはやめましょう。このコマンドは、グラフからすべてのオブジェクトを完全に削除します。