Gösterge Çeşitli Sorular - sayfa 8

 
Marco vd Heijden :

Günün ilk çubuğu, TimeHour()'un saymaya başlamasından sonraki ilk çubuk olmalıdır.
Bu elbette M1, M5 , M15 vb. herhangi bir şeyin ilk çubuğu olacak, hepsi yeni çubuklar başlatıyor.

En kısa zamanda deneyeceğim, ayrıca bu konu üzerinde çalışıyorum.

Çok teşekkürler.

 

Hala forumları okuyorum ve araştırıyorum, benzer forumlar bulabiliyorum ama tam olarak ne istediğimi bulamıyorum. (belki kod stillerini anlamıyorum veya ...)
Hızlı bir şekilde ekran görüntüsü yaptım, umarım bu beni açıkça anlamanıza yardımcı olabilir.

günün yumruk çubuğu

Şimdiden teşekkürler.

 
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
}

Birkaç bira içtim, bu yüzden umarım her şekilde yanlış olduğundan emin olduğun fikri alırsın.

Bence açık zamanla değiştirilmeli.

iTime (

Ya da belki şunları bile yapabilirsiniz:

if ( TimeHour ( TimeCurrent ())== 0 )
{
   Alert ( "NEw DAy m8" );
}
not. diğer konuya ne olacak? neredeyse 40 sayfa mıydı?
 
Marco vd Heijden :

Birkaç bira içtim, umarım her şekilde yanlış olduğundan emin olduğun fikri anlarsın.
Ya da belki şunları bile yapabilirsiniz:

not. diğer konuya ne olacak? neredeyse 40 sayfa mıydı?
Bay William - (Size ve yorumlarınıza saygı duyuyorum. ) Bu cümleyi yazdığınla birkaç kez karşılaştım: Burada akıl okuyucu yok.
Şimdi düşünüyorum da ben sorunumu daha net yazamazsam insanlar beni nasıl net anlayabilir ki?!

---

Bay Marco - yorumunuz için çok teşekkürler. Bunu zaten biliyorum, göstergelerimde de benzer kodlar kullandım.

(Kod kaynağı bölümünde sorunumu açıklamaya çalıştım)

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

---

not

Sizce neden alt başlık açmıyorum?
Hala üzerinde çalışıyorum. Çözümlerini forumlarda bulabilirim. Şimdi de iyi gidiyor biraz yavaş.

Bunlara ek olarak:
Ticaret Paneli EA'larını yazmaya başladığımda, 4 adet Sell, Buy, Close all Order, EXIT (kaldır) EA fonksiyon komut dosyası yazmam gerektiğini düşündüm.
Üzerinde çalışırken bir çok fikrim var... EA'nın 3k'dan fazla satırı var.
Yine de hepsine karar verirsem, neredeyse 10 tane daha kullanışlı fonksiyon yazmalıyım.

Ayrıca belki Ticaret Paneli EA'larımı bitirdiğimde, Ticaret Paneli EA'larım için senaryo yazmaya nasıl başladığım hakkında küçük bir hikaye yazacağım. (Ben bile bitirmedim - gerçekten kimin göreceğine inanıyorum ki çoğu insan: Vay canına! ) hehe :)

---

Teşekkürler Bay Marco .

Hepinize (yorumlarıma cevap veren) ve yardımlarınız için çok teşekkür ederim.

 
#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 :

Harika örneğiniz için teşekkürler.
Belki vakit ayırabilirsem yarın video/resim ile açıklamaya çalışırım.

Bu konuyu çok araştırıyorum.

(ayrıca google seo'da bu anahtar kelimeler gibi arama yapıyorum (seo'da şu ana kadar yararlı olmayan yorum ): site:mql4.com | site:mql5.com günün ilk çubuğu )

 

Yerel > komisyoncu zaman farkını otomatik olarak algılamanın bir yolunu mu arıyorsunuz? örneğin +1 saat

Manuel bir ayar yapacaksanız (bu daha iyidir çünkü bazen yerel saati kullanmak istemezsiniz, ancak tamamen başka bir saat dilimini kullanmak istemezsiniz) takip ettiğiniz adımlar yukarıdaki komut dosyamdaki gibidir:

1. Komisyoncu saatinde gece yarısı alın (iTime kullanarak veya hesaplama yoluyla)

2. Ofset ayarınızı kullanarak yerel bir gece yarısına dönüştürün

3. Seçtiğiniz zaman diliminde doğru çubuğu elde etmek için yerel gece yarısını iBarShift'e koyun.

 
honest_knave :

Yerel > komisyoncu zaman farkını otomatik olarak algılamanın bir yolunu mu arıyorsunuz? örneğin +1 saat
Manuel bir ayar yapacaksanız (bu daha iyidir çünkü bazen yerel saati kullanmak istemezsiniz, ancak tamamen başka bir saat dilimini kullanmak istemezsiniz) takip ettiğiniz adımlar yukarıdaki komut dosyamdaki gibidir:
1. Komisyoncu saatinde gece yarısı alın (iTime kullanarak veya hesaplama yoluyla)
2. Ofset ayarınızı kullanarak yerel bir gece yarısına dönüştürün
3. Seçtiğiniz zaman diliminde doğru çubuğu elde etmek için yerel gece yarısını iBarShift'e koyun.

Beni kesinlikle doğru anlıyorsunuz - bunu otomatik olarak yapmanın bir yolunu arıyorum... - Peki neden? Birkaç önemli göstergem var (kendi kendine yapılan - farklı forumların yardımı ile) manuel yolu seçersem - ayarlarını değiştirebilirim ... bu uzun bir yol - Çok tembelim. :)
Çok daha fazla teşekkürler!
Belki bir çözüm buldum (şu anda çalışıyor gibi görünüyor - zaten 2 farklı broker denedim, doğru zamanı alıyorum).

Sorunun deneyim eksikliğinden kaynaklandığına inanıyorum.

S: Aşağıdaki sonuçlarda yalnızca 1. Saati nasıl tutabilirim, lütfen?
(Aslında aşağıdaki sonuçtan sadece "1"i nasıl tutabileceğimi buldum - ama profesyonel bir yönteme ihtiyacım var, lütfen)
( örn: sonuç: 2017.02.27 0 1 :00:00 - Ama sadece şunu tutmam gerekiyor: 1 )

2017.00 . 00 00 : 00 : 00.000 Custom Indicator EURUSD,M5:  Bar Time : 2017.02 . 27 01 : 00 : 00

Her şey için çok teşekkürler.

(Nasıl çözüm bulduğumu paylaşacağım. - Yardımcı olmadıysan çözüm bulamadım - bir kez daha çok teşekkürler. )

 

Hemen aşağıdaki kodu arıyordum.
Ama yine de test etmem gerekiyor.

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

Yukarıdaki kod doğru değilse, lütfen bana bildirin.

@honest_knave ve @Marco'ya çok teşekkürler

 

Pekala, Max bunu bir düşünün, eğer bir desen tarıyorsanız ve oluşuyorsa, tetikleyiciniz zaman damgasından bağımsız olarak sönecektir.

Bu nedenle, tetikleyicinin farklı brokerlerde birkaç zaman damgası olabilir, ancak tetikleyicinin tam anı tüm brokerlerde yaklaşık olarak aynı olacaktır.

Tam olarak değil, ama yeterince yakın.

Neden: