MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1166
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
OrdersTotal() için sembole göre sipariş seçimini nasıl ayarlayacağımı söyler misiniz?
şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.
OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?
şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.
Kod tabanına bakın, her danışmanda bir örnek var
Kod tabanına bakın, her danışmanda bir örnek var
ben programcı değilim
benim için karmaşık.
ben programcı değilim
benim için karmaşık.
zor değil
temel bir EA yazmak için, işte tüm işlevsellik https://www.mql5.com/ru/forum/131859
Konuya göre OrdersTotal() - bunların hepsi terminaldeki açık siparişlerdir ( 0 ile numaralandırılmıştır), o zaman OrderSelect() kullanarak bunları tek tek seçmeniz (bir döngüde sıralamanız) ve gerekli siparişlerle işlemeniz gerekir
OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?
şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.
periyodik olarak, gerektiğinde siparişlerinizi kontrol edin (hesaplayın).
Her EA'da önemli eylemlerden önce çağrılan bir döngüm (ağır bir yöntem) var:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
sembolle sipariş kontrolü renkli olarak vurgulanır
periyodik olarak, gerektiğinde siparişlerinizi kontrol edin (hesaplayın).
Her EA'da önemli eylemlerden önce çağrılan bir döngüm (ağır bir yöntem) var:
for(int pos=OrdersTotal()-1; pos>=0;pos--) {
if (!OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)) {
selectFailed=true; /* не удалось "выбрать" ордер - статистика может быть неверной */
continue;
}
if (OrderCloseTime()!=0) { /* ордер закрыт но ещё не удалён из списка*/ continue; }
if (OrderMagicNumber()==0) { /* ордер выставлен юзером */ } continue;
else if (OrderMagicNumber()!=_Magic) { /* ордер выставлен другим советником */ continue; }
if (OrderSymbol()!=_Symbol) { /* ордер с правильным Magic но на другом символе */ continue; }
/// обработка рабочих ордеров, с правильным Magic на символе советника (то есть наш ордер)
/// проверяются несработки, считается кол-во, статистика, позиции и прочее
}
sembolle sipariş kontrolü renkli olarak vurgulanır
Konuyla ilgili olarak, anladığım kadarıyla tarihi siparişlerin biletleri kaybolabilir. Soru, MT4'teki siparişlerin biletlerinin ( SELECT_BY_TICKET ) ve MT5'teki fırsat ve pozisyonların biletlerinin değişip değişmeyeceğidir.
Ayrıca, Ticket ile OrderSelect'ten sonra sipariş zaman içinde değişebilir mi? Örneğin ertesi gün. Danışman kapanmıyor.
Bekleyen bir emir piyasa emri olduysa, emir türüne göre görebilirsiniz. Eğer piyasa kapandıysa, o zaman emir kapanış saatine bakarız, sıfıra eşit değildir OrderCloseTime()!=0
Bekleyen bir sipariş ömrü boyunca kapatılırsa, sipariş bileti nasıl izlenir.
Ve soru şu ki, piyasa emirlerinde (MT4) bir ömür var mı, işe yarıyor mu?
OrdersTotal() için sipariş seçimini sembole göre nasıl ayarlayacağımı söyler misiniz?
şimdi bir çiftte açık emir varsa, diğerlerinde açılmaz.
Soru kaldırılmış, anlaşılmıştır. Herkese teşekkürler.
Merhaba canım! Neyin yanlış olduğunu anlamıyorum, neden Alert: time3-time1 = yanlış tarihsaat yazıyor?
çünkü sayı negatif çıktı :-)
yukarıdaki mantığa göre, time1 __always__, time3'ten büyüktür
çünkü sayı negatif çıktı :-)
yukarıdaki mantığa göre, time1 __always__, time3'ten büyüktür
Teşekkür ederim! beyinler bazen kapanır.