Adakah yang bisa menjelaskan cara menggunakan waktu dengan iBarShift?
Halaman 1 dari 462 12 TerakhirTerakhir
Results 1 to 10 of 18

Thread: Adakah yang bisa menjelaskan cara menggunakan waktu dengan iBarShift?

  1. #1
    Misalkan saya menginginkan data dari bilah waktu buka tertentu setiap hari. Bagaimana saya melakukan ini? Sepertinya saya bisa menggunakan timecurrent() dan menghitung seberapa jauh waktu buka dalam hitungan detik dari bilah yang saya inginkan infonya dan menggunakan timecurrent()-seconds past.

    Ini sepertinya solusi besar untuk perhitungan yang pada dasarnya sangat mudah: Jika grafiknya adalah 1M dan saya ingin tahu bilah yang dimulai pada 58 menit, lalu seberapa sulit untuk mendapatkan bilah sialan itu setiap jam? Bisakah saya menggunakan datetime dalam 58 menit? Karena di datetime file bantuan menyatakan bahwa itu akan menggunakan tanggal kompilasi, yang menurut saya indie itu akan bekerja sekali pada jam yang sama dan kemudian tidak lagi jika saya hanya menentukan jumlah menit pada 58 dan tidak ada yang lain.

    sunting: Saya kira perhitungan yang lebih mudah adalah dengan menggunakan Minute() dan menghitung berapa menit yang lalu, tetapi dengan menggunakan itu saya hanya menggunakan loop saya sendiri daripada menggunakan ibarshift.

  2. #2
    1 Lampiran
    Quote Originally Posted by ;
    sunting: ok ok ok jadi tambahkan saja cek sederhana jika waktunya adalah waktu hari minggu 0 atau 6, dan hanya tambahkan ke jumlah jika ini salah. Ini harus menjamin itu bekerja dengan semua broker.
    Nah, jika Anda yakin tidak ada centang pada broker Anda selama akhir pekan atau tidak keberatan jika ada kesalahan jika ada Anda bisa mengabaikan akhir pekan. Lebih sedikit pekerjaan. Ini char dari Oanda: Beberapa tik pada hari Sabtu, tik minggu mulai pukul 12:00
    https://www.forexfabrikasi.com/tradi...s/638-wiz.html

  3. #3
    Saya benar-benar terlalu mematuhinya. Sekarang saya tahu untuk apa ibarshift. Kode yang Dimasukkan int i; waktu mulai string; int waktu tutup = SesiBukaJam 8; if ((waktu tutup) lt;10) {waktu mulai = 0 waktu tutup :00;} else {waktu mulai = waktu tutup :00;} tanggalwaktu mulai = StrToWaktu(waktu mulai); int stop = (JumlahHari*24) iBarShift(pasangan,PERIOD_H1,mulai,benar); hsum ganda=0; lsum ganda=0; if(iTime(pasangan,PERIOD_H1,0) lt;= mulai) {mulai = mulai - 86400;} untuk (i=iBarShift(pasangan,PERIOD_H1,mulai,benar);ilt;b erhenti;i=i 24) {/Print(i: ,i, iTime: ,TimeToStr(iTime(pair,PERIOD_H1,i),TIME_DATE), ,TimeToStr(iTime(pair,PERIOD_H1,i),TIME_MINUTES)); hsum = hsum iTinggi(pasangan,PERIOD_H1,iTinggi(pasangan,PERIOD _H1,MODE_TINGGI,9,i)); lsum = lsum iLow(pair,PERIOD_H1,iLowest(pair,PERIOD_H1,MODE_LO W,9,i));/Cetak(i: ,i, hsum: ,hsum, lsum: ,lsum); } Temukan barshift untuk menemukan bar pertama pada pukul 16:00. Mulai loop pada saat ini, tambahkan 24 (karena pada grafik per jam dan karena kami ingin mengetahui tertinggi antara waktu tertentu (08:00 dan 16:00 dalam kasus ini), grafik hari tidak dapat digunakan) setiap siklus . Sekarang Anda memiliki jumlah tinggi dan rendah waktu yang benar. Tidak perlu mengecek waktu, tidak perlu mengecek akhir pekan karena ibarshift dan ittime mengabaikan akhir pekan. Terima kasih banyak atas semua bantuannya, sekarang saya tahu bagaimana dan mengapa menggunakan ibarshift, lol ... sunting: mungkin ini masalah perantara, tetapi tampaknya mengabaikan akhir pekan untuk MBT sangat cocok untuk saya: 03:58:39 Rata-rataDailyRange EURGBP,H1: i: 293 iTime: 2012.02.20 16:00 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 293 hsum: 10.938 lsum: 10.8962 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 317 iTime: 2012.02.17 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 317 hsum: 11.7716 lsum: 11.726 03:58:39Rata-rataDailyRange EURGBP,H1: i: 341 iTime: 2012.02.16 16:00 03:58: 39 Rata-RataRentang Harian EURGBP,H1: i: 341 hsum: 12,6034 lsum: 12,5537 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 365 iTime: 2012.02.15 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 365 hsum : 13,4391 lsum: 13,3853 03:58:39Rata-rataDailyRange EURGBP,H1: i: 389 iTime: 2012.02.14 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 389 hsum: 14.279 lsum: 14.2209 03:58:39 Rata-RataRentang Harian EURGBP,H1: i: 413 iTime: 2012.02.13 16:00 03:58:3 9Rata-RataRentangHarian EURGBP,H1: i: 413 hsum: 15,118 lsum: 15,0552 03:58:39Rata-rataDailyRange EURGBP,H1: i: 437 iTime: 2012.02.10 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 437 hsum : 15,9558 lsum: 15,8902 03:58:39Rata-rataDailyRange EURGBP,H1: i: 461 iTime: 2012.02.09 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 461 hsum: 16,7959 lsum: 16,7255 03:58:39 Rata-rataDailyRange EURGBP,H1: i: 485 iTime: 2012.02.08 16:00 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 485 hsum: 17.6347 lsum: 17.5598 03:58:39 AverageDailyRange EURGBP,H1: i: 509 iTime: 2012.02.07 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 509 hsum: 18,4699 lsum: 18,3888 03:58:39Rata-rataDailyRange EURGBP,H1: i: 533 iTime:2012.02.06 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 533 hsum: 19.3002 lsum: 19.2151 03:58:39Rata-rataDailyRange EURGBP,H1: i: 557 iTime: 2012.02.03 16:00 03:58: 39 Rata-RataRentang Harian EURGBP,H1: i: 557 hsum: 20,1341 lsum: 20,0441 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 581 iTime: 2012.02.02 16:00 03:58:39 Rata-RataRangeHarian EURGBP,H1: i: 581 hsum : 20,9672 lsum: 20,8717 03:58:39Rata-rataDailyRange EURGBP,H1: i: 605 iTime: 2012.02.01 16:00 03:58:39Rata-rataDailyRange EURGBP,H1: i: 605 hsum: 21.8003 lsum: 21.7021 03:58:39 Rata-rataDailyRange EURGBP,H1: i: 629 iTime: 2012.01.31 16:00 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 629 hsum: 22.6359 lsum: 22.5301 03:58:39 AverageDailyRange EURGBP,H1: i: 653 iTime: 2012.01.30 16:00 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 653 hsum: 23,4729 lsum: 23.3652 03:58:39 Rata-RataDailyRange EURGBP,H1: i: 677 iTime: 2012.01.27 16:00 03:58: 39 Rata-RataRentang Harian EURGBP,H1: i: 677 hsum: 24,3138 lsum: 24,1991 03:58:39 Rata-RataDa ilyRange EURGBP,H1: i: 701 iTime: 2012.01.26 16:00 03:58:39 AverageDailyRange EURGBP,H1: i: 701 hsum: 25.1536 lsum: 25.0339 edit: ok ok ok jadi tambahkan saja cek sederhana jika sudah waktunya a timedayofweek 0 atau 6, dan hanya menambah jumlah jika ini salah. Ini harus menjamin itu bekerja dengan semua broker.

  4. #4

    Quote Originally Posted by ;
    Uhm...Apakah iTime mengabaikan akhir pekan? Itu tidak mengembalikan waktu saat itu. Jadi uhm...itu seperti yang kupikirkan sebelumnya? Baik iBarShift maupun iTime tidak memerlukan pemeriksaan akhir pekan hanya karena mereka mengabaikannya? Dan saya hanya pergi ke 52 (54 sekarang) karena tidak menemukan waktu mulai karena waktu mulai di akhir pekan. Itu hanya melompati dan tidak pernah menemukannya. Jadi saya perlu menambahkan centang jika ini akhir pekan dan jika hanya menghapus 24 jam lagi dari waktu mulai hingga tidak lagi TimeDayOfWeek 0 atau 6.
    Tidak ada fungsi yang mengabaikan akhir pekan. Mereka beroperasi pada data bar yang tersedia dan tidak ada bar untuk sebagian besar akhir pekan jadi ya, sepertinya mereka dilewati. Tantangannya adalah bahwa beberapa broker kadang-kadang memiliki kutu selama akhir pekan, dan juga jika zona waktu server cukup jauh dari gmt Anda mendapatkan sedikit tumpang tindih di akhir pekan. Jadi Anda tidak dapat mengandalkan tidak adanya data selama akhir pekan. Ya, Anda harus memeriksa akhir pekan dan menghapus 24 jam seperti yang Anda sarankan di atas.

  5. #5

    Quote Originally Posted by ;
    Ya, saya melakukannya dengan if(iTime(pair,PERIOD_H1,0) lt;= waktu mulai) {waktu mulai = waktu mulai - 86400;} dan waktu mulai = waktu mulai - 86400; Jadi itu berkurang 24 jam jika lebih besar atau sama dengan waktu buka bar saat ini (saya tidak ingin atau membutuhkan nilai dari hari ini, itulah sebabnya i=1 bukannya 0) dan berkurang 24 jam jika itu berhasil menemukan bilah yang benar.
    Tidak yakin mengapa itu tidak berhasil. Sepertinya memang seharusnya. Tidak jelas di mana Anda memeriksa waktu mulai. Anda juga dapat mencoba mengulangi data dengan metode yang disarankan.

  6. #6
    Ya, saya melakukannya dengan if(iTime(pair,PERIOD_H1,0) lt;= waktu mulai) {waktu mulai = waktu mulai - 86400;} dan waktu mulai = waktu mulai - 86400; Jadi itu berkurang 24 jam jika lebih besar atau sama dengan waktu buka bar saat ini (saya tidak ingin atau membutuhkan nilai dari hari ini, itulah sebabnya i=1 bukannya 0) dan berkurang 24 jam jika itu berhasil menemukan bilah yang benar. Sunting: Tentu saja. Ya Tuhan. Ia bekerja seperti iBarShift. Betapa bodohnya aku. Sunting2: Uhm...Apakah iTime mengabaikan akhir pekan? Itu tidak mengembalikan waktu saat itu. Jadi uhm...itu seperti yang kupikirkan sebelumnya? Baik iBarShift maupun iTime tidak memerlukan pemeriksaan akhir pekan hanya karena mereka mengabaikannya? Dan saya hanya pergi ke 52 (54 sekarang) karena tidak menemukan waktu mulai karena waktu mulai di akhir pekan. Itu hanya melompati dan tidak pernah menemukannya. Jadi saya perlu menambahkan centang jika ini akhir pekan dan jika hanya menghapus 24 jam lagi dari waktu mulai hingga tidak lagi TimeDayOfWeek 0 atau 6.

  7. #7

    Quote Originally Posted by ;
    Menarik. waktu mulai adalah 16:00. 16:00 tanggal 8 Maret 2012 tepatnya. Ada yang punya Tardis?
    Itu melakukan persis seperti yang Anda instruksikan. Anda tidak menentukan tanggal sehingga menggunakan tanggal saat ini. Hari yang sama dengan laporan waktu server. Anda harus memeriksa waktu saat ini dan menyesuaikan waktu mulai/berhenti sesuai dengan itu.
    Quote Originally Posted by ;
    02:29:00Rata-RataDailyRange EURGBP,H1: i: 4 hsum: 9 lsum: 11 02:29:00Rata-rataDailyRange EURGBP,H1: i: 28 hsum: 40 lsum: 46 02:29:00Rata-rataDailyRange EURGBP,H1: i: 52 hsum: 100 lsum: 104 Mengapa saya tidak melangkah lebih jauh dari 52 meskipun berhenti menjadi 720? Mengapa hsum lebih rendah dari lsum? Tertinggi = lebih rendah dari terendah? Bagaimana mungkin?
    Sunting: Saya agak bingung. iHighest/iLowest mengembalikan indeks bar. Anda perlu membaca data batang dari itu. mis: Kode yang Dimasukkan session_high=High#91;iHighest(pair,PERIOD_H1,MODE_ HIGH,9,i)#93;;

  8. #8

    Quote Originally Posted by ;
    Bagaimanapun ini adalah masalah ... bagaimana cara membuat loop tidak terbatas yang memeriksa setiap hari pada pukul 16:00?
    Kode yang Dimasukkan untuk (int i=0; ilt;Bars; i ) { if (TimeToStr(Waktu#91;i#93;,TIME_MINUTES) == 16:00) {/lakukan hal-hal } } atau Kode yang Dimasukkan untuk (int i=0; ilt;Bar; i ) { if (MathMod(Time#91;i#93;,86400) == 16*60*60) {/lakukan sesuatu } }

  9. #9
    Menarik. waktu mulai adalah 16:00. 16:00 tanggal 8 Maret 2012 tepatnya. Ada yang punya Tardis? Bagaimanapun ini adalah masalah ... bagaimana cara membuat loop tidak terbatas yang memeriksa setiap hari pada pukul 16:00? String kode waktu mulai = StrToTime(16:00); if(iTime(pair,PERIOD_H1,0) lt;= waktu mulai) {waktu mulai = waktu mulai - 86400;} for (i=1;ilt;=stop;i ) { if (iTime(pair,PERIOD_H1,i) == waktu mulai/TimeDayOfWeek(iTime(pair,PERIOD_H1,i)) != 0/TimeDayOfWeek(iTime(pair,PERIOD_H1,i)) != 6 ) {hsum = hsum iHighest(pair,PERIOD_H1,MODE_HIGH,9,i) ; lsum = lsum iTerendah(pasangan,PERIOD_H1,MODE_LOW,9,i); waktu mulai = waktu mulai - 86400;} } 02:29:00 AverageDailyRange EURGBP,H1: i: 4 hsum: 9 lsum: 11 02:29:00 AverageDailyRange EURGBP,H1: i: 28 hsum: 40 lsum: 46 02:29: 00 AverageDailyRange EURGBP,H1: i: 52 hsum: 100 lsum: 104 Mengapa saya tidak melangkah lebih jauh dari 52 meskipun berhenti menjadi 720? Mengapa hsum lebih rendah dari lsum? Tertinggi = lebih rendah dari terendah? Bagaimana mungkin?

  10. #10
    Anda perlu belajar men-debug kode tanpa debugger. -Cetak data input sebelum dimulainya loop untuk memverifikasi kebenarannya. waktu mulai, waktu tutup, dll. -Cetak data yang relevan dari setiap iterasi loop dan verifikasi sesuai harapan. Alat: Tampilan Debug:
    https://www.forexfabrikasi.com/tradi...face-pro4.htmldaftarkomentar:
    http://forum.mql4.com/16962
    https://www.forexfabrikasi.com/tradi...kes-pause.html

Izin Posting

  • Anda tidak boleh memposting thread baru
  • Anda tidak boleh memposting balasan
  • Anda tidak boleh memposting lampiran
  • Anda tidak boleh menyunting postingan Anda
  •  
  • Kode BB Aktif
  • Smilies Aktif
  • Kode [IMG] Aktif
  • Kode [VIDEO] Aktif
  • Kode HTML tidak aktif
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.