Siparişi tam olarak barın sonunda kapatacak bir kod formüle etmek için biraz yardıma ihtiyacım var.
Modül, kalan olmadığını görmek için kontrol edin . iyi şanslar
if ( ! MathMod ( TimeCurrent (), PERIOD_M5 * 60 ) ) OrderClose( OrderTicket(), OrderLots(), Bid , slippage );
Modül, kalan olmadığını görmek için kontrol edin. iyi şanslar
Bu işe yaramayacak. . . ya çubuğun bitiminden önce ya da sonra olacaktır. . . barın sonunda asla. deVries'in dediği gibi, mevcut çubuğun sonunu tespit etmek mümkün değildir, ancak bir sonrakinin başlangıcını tespit edebiliriz. . .
Öncesi o kadar da kötü değil, hemen sonrası olmamalı. Her zaman kapanıştan önce olabilseydi, ancak kapanışa mümkün olduğunca yakın olsaydı, o zaman bu çözümü de kabul ederdim, ancak kapanıştan sadece 1 kez sonraysa o zaman düşündüğümden daha iyi değil ve bu nedenle kabul edilebilir değil. Ama neden mevcut tik'ten sonra tam olarak kapanıyor?
Peki ya barın kapanmasından önceki 1 saniyeyi alan diğer çözüm?
M1 örneğinde olduğu gibi
if ( Time[0]>=OrderOpenTime()+59 )
OrderClose( OrderTicket(), OrderLots(), Bid , slippage );
Bu durumda kene sorunu varsa nasıl çözülür?
Öncesi o kadar da kötü değil, hemen sonrası olmamalı. Her zaman kapanıştan önce olabilseydi, ancak kapanışa mümkün olduğunca yakın olsaydı, o zaman bu çözümü de kabul ederdim, ancak kapanıştan sadece 1 kez sonraysa o zaman düşündüğümden daha iyi değil ve bu nedenle kabul edilebilir değil. Ama neden mevcut tik'ten sonra tam olarak kapanıyor?
Peki ya barın kapanmasından önceki 1 saniyeyi alan diğer çözüm?
M1 örneğinde olduğu gibi
Bu durumda kene sorunu varsa nasıl çözülür?
değilse bir dakika daha beklemenize neden olur ve bu durumda varsa....
Öncesi o kadar da kötü değil, hemen sonrası olmamalı. Her zaman kapanıştan önce olabilseydi, ancak kapanışa mümkün olduğunca yakın olsaydı, o zaman bu çözümü de kabul ederdim, ancak kapanıştan sadece 1 kez sonraysa o zaman düşündüğümden daha iyi değil ve bu nedenle kabul edilebilir değil. Ama neden mevcut tik'ten sonra tam olarak kapanıyor?
Bir EA'da (ve Göstergede) işler yalnızca bir onay işareti olduğunda gerçekleşir, bir sonraki çubukta ilk onay işaretine sahip olana kadar bir çubuğun son işaretinin ne zaman olduğunu bilmenin hiçbir yolu yoktur. . . Bir H1 çubuğu için tik, saati 59 dakika 59 saniye geçmiş olsa bile, o saniye boyunca yine de başka bir tik olabilir. . .
Peki ya barın kapanmasından önceki 1 saniyeyi alan diğer çözüm?
M1 örneğinde olduğu gibi
Bu durumda kene sorunu varsa nasıl çözülür?
. . . ve çubuğun son saniyesini bekleyemezsiniz çünkü çubuğun son 5 saniyesi için herhangi bir onay işareti olmayabilir, bu durumda çubuğun son saniyesini asla "göremezsiniz".
Bir EA'da (ve Göstergede) işler yalnızca bir onay işareti olduğunda gerçekleşir, bir sonraki çubukta ilk onay işaretine sahip olana kadar bir çubuğun son işaretinin ne zaman olduğunu bilmenin hiçbir yolu yoktur. . . Bir H1 çubuğu için tik, saati 59 dakika 59 saniye geçmiş olsa bile, o saniye boyunca yine de başka bir tik olabilir. . .
. . . ve çubuğun son saniyesini bekleyemezsiniz çünkü çubuğun son 5 saniyesi için herhangi bir onay işareti olmayabilir, bu durumda çubuğun son saniyesini asla "göremezsiniz".
Öyleyse şunu anlamalıyım ki, bankalar arası döviz kurları belirli bir süre içinde değişmezse, komisyoncu yeni fiyat verilerini çağırmaz mı?
MT4'teki bir işaretin, fiyat veya hacim ne olursa olsun, X saniyelik periyotlardan sonra fiyatı her zaman yenileyeceği anlamına geldiğini düşündüm. bu ticareti 57 saniye veya daha önce kapatın.
Bu durum göz önüne alındığında, şunları kullanamaz mıyım:
RefreshRates();
Son onay işaretini 58 saniyede çağırmak ve 59'da çıkmak için mi?
Öyleyse şunu anlamalıyım ki, bankalar arası döviz kurları belirli bir süre içinde değişmezse, komisyoncu yeni fiyat verilerini çağırmaz mı?
MT4'teki bir işaretin, fiyat veya hacim ne olursa olsun, X saniyelik periyotlardan sonra fiyatı her zaman yenileyeceği anlamına geldiğini düşündüm. bu ticareti 57 saniye veya daha önce kapatın.
Broker'ın fiyatları değişmezse, Bid ve Ask, yeni bir tick yoktur. . . Daha az işlem gören bazı paritelerde Midnight GMT civarında bir dakika veya daha uzun süre tik olamaz . . . yeni bir onay önceden belirlenmiş bir süreden sonra oluşturulmaz, fiyatta, Teklifte veya Satışta bir değişiklik olduğunda (ve belki başka bazı durumlarda diğer sembol parametrelerinde değişiklik olduğunda) olur. . .
Bu durum göz önüne alındığında, şunları kullanamaz mıyım:
Son onay işaretini 58 saniyede çağırmak ve 59'da çıkmak için mi?
MT4'te kenelerin nasıl çalıştığına ilişkin açıklama için teşekkür ederiz.
Broker'ın fiyatları değişmiyorsa, Bid ve Ask, yeni bir tick yoktur. . . Daha az işlem gören bazı paritelerde Midnight GMT civarında bir dakika veya daha uzun süre tik olamaz . . . yeni bir onay önceden belirlenmiş bir süreden sonra oluşturulmaz, fiyatta, Teklifte veya Satışta bir değişiklik olduğunda (ve belki başka bazı durumlarda diğer sembol parametrelerinde değişiklik olduğunda) olur. . .
RefreshRates()'in aracıyı likidite sağlayıcısından yeni bir besleme seti çağırmaya zorlayacağını düşündüm, ama sanırım değil .
Her neyse, sorunuma bundan daha iyi bir çözüm bulabilecek biri varsa, lütfen benimle paylaşın, çok önemli ! Şimdiden teşekkürler!
/////////////////OrderSelect() and other stuff if ( OrderType() == OP_BUY ){ if ( /* blablabla condition && */ Time[0]>OrderOpenTime() ){ OrderClose( OrderTicket(), OrderLots(),OrderClosePrice() ,TAKEPROFITPIPS, CLR_NONE ); RefreshRates(); }}
MT4'te kenelerin nasıl çalıştığına ilişkin açıklama için teşekkür ederiz.
Broker'ın fiyatları değişmezse, Bid ve Ask, yeni bir tick yoktur. . . Daha az işlem gören bazı paritelerde Midnight GMT civarında bir dakika veya daha uzun süre tik olamaz . . . yeni bir onay önceden belirlenmiş bir süreden sonra oluşturulmaz, fiyatta, Teklifte veya Satışta bir değişiklik olduğunda (ve belki başka bazı durumlarda diğer sembol parametrelerinde değişiklik olduğunda) olur. . .
RefreshRates()'in aracıyı likidite sağlayıcısından yeni bir besleme seti çağırmaya zorlayacağını düşündüm, ama sanırım değil .
Her neyse, sorunuma bundan daha iyi bir çözüm bulabilecek biri varsa, lütfen benimle paylaşın, çok önemli! Şimdiden teşekkürler!
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Siparişi tam olarak çubuğun sonunda kapatacak bir kod formüle etmek için biraz yardıma ihtiyacım var. Bu özel bir scalper EA içindir, bu yüzden kesin hassasiyete ihtiyaç duyar. Ne demek istediğimi açıklamama izin verin:
Burada örneğin bir M15 EUR/USD grafiği görebilirsiniz. Şimdi, X işaretli mumun tam açılışında beni uzun bir ticarete götüren herhangi bir göstergem olduğunu hayal edin, bu yüzden yükseldi, ardından düşüş mumu izledi, ardından düşük çok düşük, ama önemli değil, önemli olan, benim hesaplamalarıma göre, buradaki en uygun çıkış, 1 ile işaretli çubuğun kapanış noktası olacaktır. İşin zor yanı, emri kapanış fiyatından nasıl kapatacağımı bilmiyorum. 1 numaralı çubuk ve burada yardıma ihtiyacım var!
Şimdilik aklıma gelen en iyi çözüm şudur (bu hayali SATIN AL ticareti durumunda):
Bu kod, alış işlemini tam olarak Open[0]'da kapatır, ancak Close[1]'da kapatmaz. Görüyorsunuz, çünkü resme bakarsanız ve 2 ile işaretli çubuğu kontrol ederseniz, çubuk 2'nin açılmadığını görebilirsiniz. bu fiyat bir öncekinin kapanmasıyla biraz farklı bir fiyattan açıldı. Bazen şuradaki gibi büyük bir boşluk oluşur:
Yani deneyim şunu söyler:
Kapat[1] != Aç[0]
Çok nadir durumlarda öyledir. Bu yüzden siparişin Kapat[1]'da kapatılmasına ihtiyacım var.
Yine de uygulanabilir bir çözüm, zamanı sayarak, örneğin bu M1 ve M15 çizelgesidir, her iki durumda da M1 için 60 veya M15 için 900 saniyeyi saymak ve sırayı 59 veya 599. saniyelerde kapatmaktır. bununla, kenelerin 6 saniye olduğunu tahmin ediyorum (yanılıyorsam beni düzeltin) ve tam olarak vuramazsınız çünkü bu zaman sorunu ve ek kayma sorunu nedeniyle bar kapandıktan sonra ticaret yolunu kapatabilirsiniz.
O halde sorumu tekrar özetleyelim, yukarıda anlattığım gibi zamanı saymak mümkün mü, evet ise, kaymadan nasıl kaçınılır ve gecikme sorunu nasıl çözülür?
Veya siparişi Open[0] yerine Kapat[1]'da nasıl kapatacağınız konusunda başka çözümler bulursanız, buna açığım. Lütfen bana bu konuda yardım edin, bu benim EA'mın çok önemli bir sorunu!