MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1214

 
Artyom Trishkin:

履歴データを最新の状態に保つには、CopyXXX、iXXX関数(CopyTime()、iTime()など)を使って、2分ごとにデータにアクセスする必要があります。

テスターで出ないボリュームがわからない。ボリュームには実数と刻み数があります。コードがなければ、実体に答えることはできません。

コードは以前ダウンロードしたものと同じです(少し修正しました)。ダニをコピーする。

 MqlTick tick_array[];
      uint start = GetTickCount();
      int received = CopyTicks(_Symbol, tick_array, COPY_TICKS_TRADE, periodStartTime*1000, ticksSizeToCopy);
            if(received != -1) {
               PrintFormat("%s: received %d ticks in %d ms", _Symbol, received, GetTickCount() - start);
               if(GetLastError() != 0) 
                  PrintFormat("%s: таймер Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",
                              _Symbol, received, GetTickCount() - start, _LastError);
            }

それから、ボリュームのリクエストもあります。例えば(簡略化)。

int ticks = ArraySize(tick_array);
for (int i = 0; i < ticks; i ++) {
         if((tick_array[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) {
               if(tick_array[i].volume > max) max = tick_array[i].volume;
        }
}

チャートに貼り付けるだけならOKです。テスターに取り付けたら、なぜかボリュームがない...。

 
Yevhenii Levchenko:

コードは以前投稿したものと同じです(少し修正しました)。ダニをコピーする。

次にボリュームの要求があります。例えば(簡略化)。

チャートに貼り付けるだけなら問題ないのですが。ストラテジーテスターにあるのなら、ボリュームはないのでは...。

CopyTicks() 関数に関する注意点。フラッグについて

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyTicks
  • www.mql5.com
[in]  Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
 

同僚、なぜ異なる時間枠を持つ2つまたは3つのATR指標を同時に1つのチャートに置くことができないかアドバイスしてください。

視覚的に重ならないようにOffsetを変えても、1つのインジケータしか動作せず、チャートに表示されないのですが?

入力 int InpOffsetX = 10;// オフセット X
入力 int InpOffsetY = 80;// オフセットY

正確には、TFを変えると2つ目は表示されるが、1つ目は消えてしまう。3つとも違うTFで交互に表示されるが、全部一緒に表示されることはない。注文を追跡することができない。

 
Artyom Trishkin:

CopyTicks() についての注意をお読みください。フラッグについて

意味がわからないんですけど。私は正しいフラグを使っているようだ・・・そして、それは実生活でも有効だ・・・。が、テスターはそれを望んでいない。
 
Artyom Trishkin:

私が論理が苦手だと言ったのはどこだ?

前回の記事「アルゴリズムを作るには、ロジックが 必要なようだ」のお言葉。そして、これは数学とは程遠いものです。そして、ここでは、私はそれと友達では ありません - 必要な参考資料と友達である人の助けのみ」。
 
Artyom Trishkin:
アルゴリズムを作るには、ロジックが必要だと思うんです。そして、これは数学とは程遠いものです。そして、ここでは私はそれに親しみを持っていません。正しい参考資料と、親しい人たちからの助けのみです。

プログラマーの仕事は、複雑な課題を解決することではなく、コンピュータにその課題を代行させることである。しかし、そのためには他の複雑な作業を解決しなければならない場合もあり、プログラマーはそれを従順にこなしていく。:)

 
ANDREY:
以前の記事「アルゴリズムを作るには、ロジックが 必要なようです。そして、これは数学とは程遠いものです。そして、私はそれと友達では ありません。正しい参考資料と、そうである人の助けのみです」。

いいえ、そんなことはありません。こんな感じです。

"アルゴリズムを作るには、ロジックが 必要なようです。そして、これは数学とは 程遠いものです。 そして、私はそれとは友達では ありません。正しい参考資料と、そうである人たちの助けのみです」。

意味としては、この2つの文章は隣り合っている。でも、あなたは自分の意味を見つけた...。

 
Mihail Matkovskij:

プログラマーの仕事は、複雑な課題を解決することではなく、コンピュータにその課題を代行させることである。しかし、そのためには他の複雑な作業を解決しなければならないこともあり、プログラマーはそれを従順にこなしていく。:)

コースルールのタスクセッター。しかし、彼はプログラマーでなければ、このままではいけない))))

 
Valeriy Yastremskiy:

もちろん、問題設定者のルールです。しかし、彼はプログラマーでなければ、このままではいけない))))

それが、タスクマネージャーは実行者でもあるのです。とはいえ、いつもというわけではありません。

 

アドバイスをお願いします。インジケータからデータ(時間)を受け取り、ティック間の差をミリ秒単位でカウントするEAがあるのですが。

Alertで出力してみると、以下のようになります(写真参照)。私の見るところ、まず合計ミリ秒 を取得し、次に直近4ティック(1と2、2と3、3と4の間)の差をミリ秒単位で取得します。

なぜ、このようになるのでしょうか?4回目のティックの値だけが必要です。

時

ファイル:
ind_time.mq4  1 kb
exp_time.mq4  2 kb