Üzgünüm, alex12 , ama kodlayıcı gibi görünüyorsun (alınma, kabul edilen terim bu). Farklı parçalardan bir şeyler uyduruyorsunuz ve bir şekilde derlenmesini sağlıyorsunuz, ancak kodun anlamını anlamadan.
Igor Kim'in bazı fonksiyonlarını kullanarak, derleyicinin size bildirdiği, kodunuzdaki eksik fonksiyonları, onu kullanılabilir hale getirmek için zahmete girin. Onları şubesinde bulun ve kodunuza yazın.
OrderOpenTime() pozisyonun açılış zamanını gösterir, soru şudur STOP emrinin verildiği zamanı nasıl öğrenebiliriz? Bu sefer MT4 raporunda mevcut ama koddan bunu öğrenmek mümkün mü?
Tekrar.
Tüm durdurma emirleriniz arasında "standart" döngüden geçin ve aynı zamanda onlar için OrderOpenTime() değerini yazdırın - bu onların (her birinin) ayarlandığı zaman olmalıdır. Piyasa emirleri için bir örnek veriyorum - biraz düzeltebilirsiniz, yani. veya sadece bu satırı kaldırın
eğer ((orderType != OP_BUY) && (orderType != OP_SELL)) devam ederse;
veya ilgilendiğiniz duraklardan gelen verilerle değiştirin...
int orderCount = 0 ; // сбрасываем счетчик ордеров // ------------------------------------------------Считаем только наши ордера---------------------------int orderType;
for (orderIndex = ( OrdersTotal () - 1 ); orderIndex >= 0 ; orderIndex--)
{
if (! OrderSelect (orderIndex, SELECT_BY_POS)) continue ; // если ордер не выбран, то идем на следующий открытыйif ( OrderCloseTime ()!= 0 ) continue ; // если тикет принадлежит закрытому ордеру, то берем следующий открытыйif (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != magic)) continue ;
orderType = OrderType ();
if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue ;
ticket = OrderTicket ( ); // Номер ордера
orderLots = OrderLots (); // Lots
orderProfit = OrderProfit () + OrderSwap (); // Profit
Price = OrderOpenPrice (); // Цена открытия рыночного ордера
SL = OrderStopLoss (); // Значение StopLoss ордера
TP = OrderTakeProfit (); // Значение TakeProfit ордера
Time = O rderOpenTime();
orderCount++; // считаем ордера (не больше i)
}
Tekrar. Tüm durdurma emirleriniz arasında "standart" döngüden geçin ve aynı zamanda onlar için OrderOpenTime() değerini yazdırın - bu onların (her birinin) ayarlandığı zaman olmalıdır. Piyasa emirleri için bir örnek veriyorum - biraz düzeltebilirsiniz, yani. veya sadece bu satırı kaldırın
((orderType != OP_BUY) && (orderType != OP_SELL)) devam ederse;
veya ilgilendiğiniz duraklardan gelen verilerle değiştirin...
Bu aşamada bir ikilemle karşılaştım - bazı "istatistikler" için bir STOP emri açmak için zamana ihtiyacım var ve bu sürecin her zaman başlatılmasını istemem, sadece belirli bir son aşamada başlatılmasını istiyorum. Bu nedenle, şu anda açık olmayan siparişleri sıralamak (OrdersTotal() ), ancak zaten kapalı olan siparişler arasında arama yapmak => OrdersHistoryTotal() gereklidir. Ancak zaten kapalı STOP emirleri için OrderOpenTime() emrin verildiği zamanı değil , pozisyon açılış zamanını döndürür. Sonunda, her şey buna bağlı - OrdersHistoryTotal() listesinden STOP siparişlerinin ayarlandığı zamanı çıkarmaları mümkün mü?
chief2000 : Bu aşamada bir ikilemle karşılaştım - bazı "istatistikler" için bir STOP emri açmak için zamana ihtiyacım var ve bu sürecin her zaman başlatılmasını istemem, sadece belirli bir son aşamada başlatılmasını istiyorum. Bu nedenle, şu anda açık olmayan siparişleri sıralamak (OrdersTotal() ), ancak zaten kapalı olan siparişler arasında arama yapmak => OrdersHistoryTotal() gereklidir. Ancak zaten kapalı STOP emirleri için, OrderOpenTime() emrin verildiği zamanı değil, pozisyonun açıldığı zamanı döndürür. Sonunda, her şey buna bağlı - OrdersHistoryTotal() listesinden STOP siparişlerinin ayarlandığı zamanı çıkarmaları mümkün mü?
Evet... Sorun... HZ. İmkansız görünüyor - özellikle "son aşamada" ...
Bu süreci sürekli olarak izlemek ve takip etmek gerekir - önceki sayfadaki SSS gönderisine bakın. sayfa.
çok hata veriyor
Üzgünüm, alex12 , ama kodlayıcı gibi görünüyorsun (alınma, kabul edilen terim bu). Farklı parçalardan bir şeyler uyduruyorsunuz ve bir şekilde derlenmesini sağlıyorsunuz, ancak kodun anlamını anlamadan.
İş Servisi ile iletişime geçin.
çok hata veriyor
...
OrderOpenTime() pozisyonun açılış zamanını gösterir, soru şudur STOP emrinin verildiği zamanı nasıl öğrenebiliriz?
Bu sefer MT4 raporunda mevcut ama koddan bunu öğrenmek mümkün mü?
Tekrar.
Tüm durdurma emirleriniz arasında "standart" döngüden geçin ve aynı zamanda onlar için OrderOpenTime() değerini yazdırın - bu onların (her birinin) ayarlandığı zaman olmalıdır. Piyasa emirleri için bir örnek veriyorum - biraz düzeltebilirsiniz, yani. veya sadece bu satırı kaldırın
eğer ((orderType != OP_BUY) && (orderType != OP_SELL)) devam ederse;
veya ilgilendiğiniz duraklardan gelen verilerle değiştirin...
Tekrar.
Tüm durdurma emirleriniz arasında "standart" döngüden geçin ve aynı zamanda onlar için OrderOpenTime() değerini yazdırın - bu onların (her birinin) ayarlandığı zaman olmalıdır. Piyasa emirleri için bir örnek veriyorum - biraz düzeltebilirsiniz, yani. veya sadece bu satırı kaldırın
((orderType != OP_BUY) && (orderType != OP_SELL)) devam ederse;
veya ilgilendiğiniz duraklardan gelen verilerle değiştirin...
Ancak zaten kapalı STOP emirleri için OrderOpenTime() emrin verildiği zamanı değil , pozisyon açılış zamanını döndürür.
Sonunda, her şey buna bağlı - OrdersHistoryTotal() listesinden STOP siparişlerinin ayarlandığı zamanı çıkarmaları mümkün mü?
Bu aşamada bir ikilemle karşılaştım - bazı "istatistikler" için bir STOP emri açmak için zamana ihtiyacım var ve bu sürecin her zaman başlatılmasını istemem, sadece belirli bir son aşamada başlatılmasını istiyorum. Bu nedenle, şu anda açık olmayan siparişleri sıralamak (OrdersTotal() ), ancak zaten kapalı olan siparişler arasında arama yapmak => OrdersHistoryTotal() gereklidir.
Ancak zaten kapalı STOP emirleri için, OrderOpenTime() emrin verildiği zamanı değil, pozisyonun açıldığı zamanı döndürür.
Sonunda, her şey buna bağlı - OrdersHistoryTotal() listesinden STOP siparişlerinin ayarlandığı zamanı çıkarmaları mümkün mü?
Evet... Sorun... HZ. İmkansız görünüyor - özellikle "son aşamada" ...
Bu süreci sürekli olarak izlemek ve takip etmek gerekir - önceki sayfadaki SSS gönderisine bakın. sayfa.
Evet... Sorun... HZ. İmkansız görünüyor - özellikle "son aşamada" ...
Bu süreci sürekli olarak izlemek ve takip etmek gerekir - önceki sayfadaki SSS gönderisine bakın. sayfa.
Her durumda, teşekkürler!
Bu durumda, bir dosyaya yazmak daha kolaydır, daha az saçmalık vardır ve istatistikler, terminal değil, ihtiyacınız olduğu gibi düzenlenebilir.
Cımbız kalıbı için Uzman Danışman yazmak istiyorum.
açılış koşulu olarak seçilen
Maalesef koşulun yanlış olduğu ortaya çıktı, çünkü 'sl' 100.000000 fiyatına ayarlandı ve 'tp' genellikle bir hata gösteriyor.
Bir koşul eklemeye karar verdim, 1 onay işaretini dikkate alın.
Sonuç aynı. sorunumu nasıl çözebilirim?