Neo333 : Merhaba, böyle bir sorun: danışman bekleyen limit emirleri belirler, sonra fiyat hareket eder ve emirler piyasa emirleri olur. Her şey çalışıyor, ancak bazı siparişlerde kesinlikle anlaşılmaz bir aksaklık görünüyor, çünkü. tüm siparişler belirli bir sabit "K" ile verilir, bu durumda aralarındaki mesafe her zaman sabit olmalıdır (Rn+1 = Rn + "K"). Ancak durum böyle değildi - sipariş açık, fiyat belirtilir, her şey kontrol edilir, ancak önceki siparişten diğerine olan mesafe "K" ye eşit değildir, aritmetik işlemlerin sonuçlarına bakarsanız fiyatlar ile, yani aptalca çıkarın ve sonucu görün, o zaman "K" ye eşittir, ancak mantıksal karşılaştırma == inatla yanlış gösterir, bu, danışmanın sürekli olarak bu fiyattan siparişleri açmasına ve aynı zamanda orada "düşünmesine" yol açar orada düzen yok. Uzun olduysa kusura bakmayın daha detaylı anlatmak istedim. Açıkçası ne yapacağımı bilmiyorum :(
== ile karşılaştırırsanız, NormalizeDouble kullanın , ancak genel olarak MathAbs(Price1-Price2)<delta daha iyidir
Son emrin kapanış fiyatını belirleyen bir fonksiyon yazmaya çalışıyorum (şimdiye en yakın zamana göre)
şöyle yazıyorum:
Ancak
yapmak
uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) { int biletDateTime=0; int orderTicket=-1; çift kapanışFiyat = 0; int ordTotal = OrdersTotal(); if (smb == "0") smb = Symbol(); for (int i = 0; i < ordTotal; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol() == smb || smb == "") { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { if (cmd < OP_BUY || OrderType() == cmd) { if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) { if (ticketDateTime < OrderCloseTime()) { biletDateTime = OrderCloseTime(); orderTicket = OrderTicket(); closePrice = OrderClosePrice(); } } } } } } } if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY ); dönüş(kapatFiyat); }
Ancak bazı nedenlerden dolayı işlev, test cihazında açılan ilk mertebenin verilerini döndürür.
Aslında bu benim ara hedefim. Ve kısmi bir emir kapatmanın son fiyatını verecek bir fonksiyon yazmak istedim (tüm lot hacmi için değil) Ama buraya nasıl yaklaşacağımı bile bilmiyorum...
Burada her şeyin malzeme ile uyumlu olmadığı dikkat çekicidir. Biletle bir sipariş seçerken, havuz parametresi yok sayılır. Onlar. MODE_HISTORY yazmak işe yaramaz - bu ayar sadece indeks seçimi için geçerlidir.
Biletle bir sipariş seçtiyseniz, kapalı siparişler listesinden seçildiğinden emin olmak için kapanış saatini kontrol etmeniz gerekir. Sıfırdan büyük olmalıdır - sadece kapalı pozisyonlarda bu parametre >0'dır.
Yani yok. Daha fazla açıklığa kavuşturabilirsiniz. MT4 ayarlarında grafikte daha fazla çubuk oluşturmaya çalışın.
Daha uzun bir hikaye indirerek veya satın alarak çözüldü.
Araçlar>Ayarlar>"Grafikler" sekmesi> penceredeki maksimum çubuk sayısı 65.000 idi --> 100.000 veya daha fazla olarak değiştirildi, yine de, yalnızca Kasım 2010 - en geç. Bu enstrüman ve zaman çerçevesi için fiyat teklifi arşivi tamamen yüklenmiştir - Kasım 1999'a kadar
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Merhaba, böyle bir sorun: danışman bekleyen limit emirleri belirler, sonra fiyat hareket eder ve emirler piyasa emirleri olur. Her şey çalışıyor, ancak bazı siparişlerde kesinlikle anlaşılmaz bir aksaklık görünüyor, çünkü. tüm siparişler belirli bir sabit "K" ile verilir, bu durumda aralarındaki mesafe her zaman sabit olmalıdır (Rn+1 = Rn + "K"). Ancak durum böyle değildi - sipariş açık, fiyat belirtilir, her şey kontrol edilir, ancak önceki siparişten diğerine olan mesafe "K" ye eşit değildir, aritmetik işlemlerin sonuçlarına bakarsanız fiyatlar ile, yani aptalca çıkarın ve sonucu görün, o zaman "K" ye eşittir, ancak mantıksal karşılaştırma == inatla yanlış gösterir, bu, danışmanın sürekli olarak bu fiyattan siparişleri açmasına ve aynı zamanda orada "düşünmesine" yol açar orada düzen yok. Uzun olduysa kusura bakmayın daha detaylı anlatmak istedim. Açıkçası ne yapacağımı bilmiyorum :(
Anladım teşekkürler! Ancak 2011.09.30 21:26:49 TestGenerator: eşsiz veri hatası (2011.07.19 20:00'de 13634 ses sınırı aşıldı)
anladığım kadarıyla bu mesaj uzmanı ilgilendirmiyor ama yine de bunu nasıl anlayacağımı bilmek istiyorum?
Lütfen bu özelliği düzeltmeye yardımcı olun.
Son emrin kapanış fiyatını belirleyen bir fonksiyon yazmaya çalışıyorum (şimdiye en yakın zamana göre)
şöyle yazıyorum:
Ancak
yapmak
uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int biletDateTime=0;
int orderTicket=-1;
çift kapanışFiyat = 0;
int ordTotal = OrdersTotal();
if (smb == "0") smb = Symbol();
for (int i = 0; i < ordTotal; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == smb || smb == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (cmd < OP_BUY || OrderType() == cmd) {
if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) {
if (ticketDateTime < OrderCloseTime()) {
biletDateTime = OrderCloseTime();
orderTicket = OrderTicket();
closePrice = OrderClosePrice();
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );
dönüş(kapatFiyat);
}
Ancak bazı nedenlerden dolayı işlev, test cihazında açılan ilk mertebenin verilerini döndürür.
Aslında bu benim ara hedefim. Ve kısmi bir emir kapatmanın son fiyatını verecek bir fonksiyon yazmak istedim (tüm lot hacmi için değil) Ama buraya nasıl yaklaşacağımı bile bilmiyorum...
Bunun yerine, ihtiyacınız
... Daha ileri ...
Burada her şeyin malzeme ile uyumlu olmadığı dikkat çekicidir. Biletle bir sipariş seçerken, havuz parametresi yok sayılır. Onlar. MODE_HISTORY yazmak işe yaramaz - bu ayar sadece indeks seçimi için geçerlidir.
Biletle bir sipariş seçtiyseniz, kapalı siparişler listesinden seçildiğinden emin olmak için kapanış saatini kontrol etmeniz gerekir. Sıfırdan büyük olmalıdır - sadece kapalı pozisyonlarda bu parametre >0'dır.
MT4 ticaret terminalinde 5 dakikalık zaman diliminde geçmiş görüntülenmez. çözülebilir mi?
Aptal soru için özür dilerim. Kasım 2010'dan önceki tarih görüntülenmiyor demek istedim :)
Yani yok. Daha fazla açıklığa kavuşturabilirsiniz. MT4 ayarlarında grafikte daha fazla çubuk oluşturmaya çalışın.
Daha uzun bir hikaye indirerek veya satın alarak çözüldü.
Yani yok. Daha fazla açıklığa kavuşturabilirsiniz. MT4 ayarlarında grafikte daha fazla çubuk oluşturmaya çalışın.
Daha uzun bir hikaye indirerek veya satın alarak çözüldü.
Ve tarihteki maksimum çubuk sayısı nedir? Belki hikaye kesilmiştir.