インジケーターに関する雑多な質問 - ページ 7

 

はい、ただし、コーディングが必要です。

現地時間ブローカーAブローカーB
00:00
(GMT)
01:00
(GMT+1)
02:00
(GMT+2)

PERIOD_D1 を使用 することはできません。

  • ブローカーAのD1バーは現地時間23:00に開始します(1時間前)。
  • ブローカーBのD1バーは現地時間22:00に開始します(2時間前)。

したがって、iBarShiftとiHighest / iLowest(またはCopyHigh / CopyLow)でH1バーを使用して、手動で希望通りの「日」を作成する必要があります。

----

ここに、この点を説明する簡単なスクリプトがあります。

これをチャートにドロップすると、サーバー時間の 23:00から始まる「日」を囲む長方形が描かれるのがわかると思います。

#define strict
#property show_inputs

#define DAY 86400
#define HOUR 3600

extern int time_shift = -1; // Hours to shift server time by

void OnStart()
  {
   time_shift*=HOUR;

   datetime oldest_bar = Time[Bars-1],
            midnight   = oldest_bar-(oldest_bar%DAY);

   while(midnight<=TimeCurrent())
     {
      datetime day_begin = midnight + time_shift,
               day_end   = day_begin + DAY - 1;
      double high[],
             low[];
      int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high),
          low_cnt  = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low);
      if(high_cnt>0 && low_cnt>0)
        {
         double day_high = high[ArrayMaximum(high)],
                day_low  = low [ArrayMinimum(low)];
         string obj_name = TimeToString(day_begin,TIME_DATE);
         ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low);
        }
      midnight+=DAY;
     }
  }  


 
honest_knave:

はい、でもコード化する必要があります。

この例を勉強しておく必要がありますね。

ありがとうございました。

 

もう一度、あなたの素晴らしい例のためにたくさん感謝します。
あなたのコメントの後、私は簡単に私の問題を解決しました。

---

私は、異なるブローカーに自動的に設定された時間オフセットのために何かを試してみましたが、残念ながらそれは機能しませんでした。

Q: 私は自動的に別のブローカーのための時間オフセットセットのためのいくつかのコードを書くことができ、それは可能ですか?
( 私はまだそれのために何かを試しています )

どうもありがとうございました。

 

以下のコードを試してみましたが、正しい値が得られません。

Q: 以下のコードのどこが問題なのでしょうか?( 私は理解できませんでした )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

ありがとうございました。

 
Max Enrik:

以下のコードを試してみましたが、正しい値が得られません。

Q: 以下のコードのどこが問題なのでしょうか?( 私は理解できませんでした )

datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);

ありがとうございました。

すべてのブローカーがこの設定を正しく行っているわけではないようです。こちらを ご覧ください。
 
honest_knave:
すべてのブローカーが正しく設定されているわけではないようです。こちらを ご覧ください。

チャンスはありません!
私はちょうどプロのプログラマやコードがあきらめたと考えている!?もちろんそうではありません

どうもありがとうございます。

( I have idea I will try it at least - later )
 
Max Enrik:

チャンスはない!?
私はちょうどプロのプログラマやコードがあきらめたと考えている?もちろん、そうではありません

どうもありがとうございます。

( I have idea I will try it at least - later )

回避策は常にあります。

例えば、H1やM30のバーをさかのぼって、1バーのタイムスパンより大きな時間差を探すことができます(つまり、このギャップ中に市場が閉鎖された)。

ただし、週末や祝日、不完全な履歴に注意する必要があります。

 
honest_knave:

回避策は常にあります。
例えば、H1またはM30のバーをさかのぼって、1バーのタイムスパンより大きな時間差を探すことができます(つまり、このギャップ中に市場が閉鎖された)。
ただし、週末や祝日、不完全な履歴に注意する必要があります。

有益な コメントをありがとうございました。
 

私は日付の時間について学ぶ必要があります。なぜなら、これまで私が日付の時間に関連するコードを書こうとしたとき、私はいつもコードのその部分に多くの時間を費やしました。(私のスクリプトを完成させることができたとしても、私はより明確に理解することはありません)。
それで今、私はその日の最初のバー(現在の日の最初のバー1m、5m、15m、30m、1hなど)のデータを取得しようとしましたが、私はできません。

( 私は、Google Chromeブラウザの多くの多くのタブは、このことについて関連している - ちょうどナンセンス )

だから、誰かがその日の最初のバー(M1、5Mなど)のコードを記述する方法を例と説明で私を助けることができる、してください。

もちろん、明日、私はこの懸念について研究を続けるでしょう。

事前に多くのことをありがとうございます。

 

その日の最初のバーは、TimeHour()がカウントを開始した後の最初のバーであるべきです。

それはもちろん、M1、M5、M15など、すべて新しいバーを開始するものの最初のバーとなります。