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

 
Marco vd Heijden:

その日の最初のバーは、TimeHour()がカウントを開始した後の最初のバーであるべきです。
それはもちろん、M1、M5、M15などのすべての新しいバーを開始する何かの最初のバーとなります。

私はすぐにそれを試してみます、また、私はこの問題に取り組んでいます。

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

 

私はまだフォーラムを読み、研究し、私は同様のフォーラムを見つけることができますが、私が望むものを正確に見つけることができません。(多分私は彼らのコードスタイルまたは...を理解していない)。
私はすぐにスクリーンショットを作成し、私はあなたが私を明確に理解するのに役立つことを願っています。

てっぱん

事前にありがとうございます。

 
datetime open;

open=iOpen(Symbol(),PERIOD_D1,0);

// put in ontick

if(iOpen(Symbol(),PERIOD_D1,0)!=open)
{
  if(TimeHour(open)==0)
   {
    Alert("New Day !!");
   }
  open=iOpen(Symbol(),PERIOD_D1,0); // assign new value every hour
}

ビールを何杯か飲んだので、その考えがわかると思いますが、あらゆる点で間違っていると思います。

オープンはタイムに置き換えなければならないと思います。

iTime(

あるいは、そうすることもできるかもしれません。

if(TimeHour(TimeCurrent())==0)
{
  Alert("NEw DAy m8");
}
ps.他のスレッドに何が起こるか?
 
Marco vd Heijden:

私はビールを数杯飲んだので、私はあなたがアイデアを得ることを願っています......それはすべての可能な方法で間違っていると確信しています。
または多分あなたはさえすることができます。

ps. 他のスレッドはどうなったのでしょうか?
ウィリアムさん-(あなたとあなたのコメントに敬意を表します)私は、あなたがこの文章を書いたことに何度か直面しました。ここには心を読む人はいない。
今思うに、もし私が自分の問題についてもっと明確に書くことができなければ、どうやって人々が私を明確に理解することができるでしょうか?

---

Marcoさん- コメントありがとうございます。私はすでにそれを知っていて、また、私の指標で同様のコードを使用しています。

( 私はコードソースのセクションで私の問題を説明しようとしました )

iTime( Symbol(), PERIOD_D1, 0 )
// this code gives me Hour 00:00 - but actually D1 time should show Hour 01:00 | this mean my broker shows absolutely wrong Hour for period PERIOD_D1
// But I need to write code to get first H1 bar Time of the day ( e.g: if first H1 bar 00:00 or 01:00 or ... ) instead of PERIOD_D1
// But I really struggle to write code for get today first H1 time

---

P.S

なぜ私がサブトピックを開けないか考えていますか?
私はまだそれに取り組んでいます。私はフォーラムで解決策を見つけることができます。今、それはまた少しゆっくりと良い行っています。

さらに。
トレードパネル EAを書き始めたとき、4つの機能スクリプトを書く必要があると思いました。 売る、買う、すべての注文を閉じる、EXIT(削除)EAです。
しかし、このEAが3,000行を超えた今、私は多くのアイデアを得ることができました。
それでも、あと10個くらいは書けそうな気がする。

また、私のトレードパネルEAが完成したら、私がどのようにトレードパネルEA用のスクリプトを書き始めたか、ちょっとした物語を書くかもしれませんね。(まだ完成していないのですが、誰が見ても「すごい!」と思うはずです。うわー、すごい!」と言うでしょう。と言われると思います。)

---

マルコ さん、ありがとうございます。

皆さん(私のコメントに返信してくださった方々)、本当にありがとうございました。

 
#property strict
#property show_inputs
#define HOUR 3600
#define DAY 86400
extern int local_offset = 1; // local time offset from broker (hours)

void OnStart()
  {
   local_offset*=HOUR;

   int D1_shift = (TimeCurrent()%DAY > local_offset) ? 0 : 1;

   datetime broker_midnight = iTime(_Symbol,PERIOD_D1,D1_shift);
   datetime local_midnight  = broker_midnight + local_offset;

   int      M5_shift = iBarShift(_Symbol,PERIOD_M5,local_midnight);
   datetime M5_time  = iTime(_Symbol,PERIOD_M5,M5_shift);
   double   M5_open  = iOpen(_Symbol,PERIOD_M5,M5_shift);

   printf("M5_time: %s M5_open: %f", TimeToString(M5_time),M5_open);
  }
 
honest_knave:

あなたの素晴らしい例をありがとうございます。
たぶん、私は時間があれば、私は明日、ビデオ/画像で説明しようと思います。

私はこの問題について一生懸命研究しています。

( また、私は google seo でこのキーワードのように検索します (seoでは今のところ役に立たないコメント です): site:mql4.com | site:mql5.com first bar of the day )

 

ローカル > ブローカーの時間オフセットを自動的に 検出する方法をお探しですか? 例:+1時間

手動で 設定する場合(ローカル時間ではなく、別のタイムゾーンを使用したい場合もあるので、この方がよいでしょう)、上記の私のスクリプトのような手順を踏んでください。

1.ブローカー時間の深夜を取得する(iTimeを使用するか、計算によって)。

2.オフセット設定により、現地の深夜に変換する。

3.3.選択したタイムフレームで正しいバーを取得するために、iBarShiftを通してローカルの深夜0時を入れます。

 
honest_knave:

ローカル>ブローカー時間のオフセットを自動的に 検出する方法をお探しですか? 例:+1時間
手動で 設定する場合(ローカル時間ではなく、まったく別のタイムゾーンを使用したい場合もあるので、この方がよいでしょう)、上記の私のスクリプトと同じ手順で行います:
1. ブローカー時間の深夜を取得(iTimeまたは計算で)
2.オフセット設定により、ローカルな真夜中に変換する
3.3. ローカルな真夜中をiBarShiftに通して、選択したタイムフレームで正しいバーを取得する。

私が自動的に...する方法を探していること - あなたは絶対に私を正しく理解しています。
私はいくつかの重要な 指標を持っている(自作 - 別のフォーラムで助けた)私は手動方法を選択した場合 - 私は彼らの設定を変更することができます...それは長い道のりです - 私はとても怠惰です。
多分私は解決策を見つけた(この時点でそれが動作しているように見える - 私はすでに正しい時間を得るために2つの異なるブローカーを試してみました)。

私は質問が経験の不足から来ることを信じる。

Q: How can I keep only Hour 1 in below outcome, please?
( Actually I found how can I keep only " 1 " from below outcome - but I need professional method, please )
( e.g: result: 2017.02.2701:00:00 - But I need to keep only:1 ).

2017.00.00 00:00:00.000 Custom Indicator EURUSD,M5:  Bar Time: 2017.02.27 01:00:00

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

( 私がどのように解決策を見つけたかを共有します。- もし、あなたが助けてくれなかったら、私は解決策を見つけることができません - もう一つの感謝。)

 

私はちょうど下のコードを探していました。
しかし、私はまだそれをテストする必要があります。

Period_Look=iTime(Symbol(),PERIOD_W1,0); // actually I need PERIOD_D1 - but did not work correctly - I still need to see first Hour of Monday for test.
Period_Shift=iBarShift(Symbol(),PERIOD_H4,Period_Look);
Period_Time=iTime(Symbol(),PERIOD_H4,Period_Shift-1);

GMT_Offset=(Period_Time-iTime(Symbol(),PERIOD_W1,0)-PeriodSeconds(PERIOD_D1))/PeriodSeconds(PERIOD_H1); // result: 1

もし上記のコードが正しくない場合は、私に教えてください。

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

 

もし、パターンをスキャンしていて、それが形成されたら、トリガーはタイムスタンプに関係なく作動します。

つまり、トリガーは異なるブローカーで複数のタイムスタンプを持つことができますが、トリガーの正確な瞬間はすべてのブローカーでほぼ同じになります。

正確ではありませんが、十分に近いです。

理由: