OnTradeTransaction() mql4'te nasıl değiştirilir? - sayfa 7

 
Alexey Viktorov :

Bu durumda Artyom'un kütüphanesi olmadan yaşamak zor olacaktır.

Ve kütüphane telepatik olarak gerekli bilgiyi öğrenecek mi? Aynı şekilde siparişleri 86400 kez sallayacaktır.

 
Igor Makanu :

"diziye ekleme" ile ne yapmalı - Eksik piyasa emirleriyle ilgili verileri silmekten mi bahsediyorum?

Konuya göre sadece son tikte kaç sipariş olduğunu izlemek değil, kodu gereksiz hesaplamalarla yüklememek için en azından yerleştirme sırasında veya zorla ayarlanması gereken OnTradeTransaction olay bayrağını ayarlamanız gerekiyor. bir siparişi kapatma - hangi işlemi yapmak istediğinizi biliyor musunuz? - neden makineye doğrudan bundan bahsetmiyorsunuz? makineyi tüm verileri her tikte / veya her 10 ms'de bir sürmeye zorlamak yerine


Not: Herhangi bir bilgi tabanının yokluğunda sorunu çözme talebi olan başka bir konu, kişisel bir şey değil, ancak bu zaten düzenli bir olay haline geliyor - ne derse desin, ancak ek materyalleri incelemeniz gerekiyor, sadece sorunu tartışarak - fikirli insanlar sorunu sadece aynı bilgi seviyesindeki benzer düşünen insanlarla tartışıyor ((((

"Diziye ekleme" ile... mql4'ün ArrayRemove() işlevi olmamasına rağmen, ilkesi, boyutu kaldırılacak dizin sayısı kadar küçülterek bir diziyi kendi içine kopyalamaya dayanır. Ve OnTradeTRansaction() yerine bu başlıkta defalarca Artyom'un kütüphanesine alternatif olmadığını ve beklenmediğini söyledim.
 
Igor Makanu :

en azından bir siparişi verirken veya zorla kapatırken ayarlanması gereken OnTradeTransaction olay bayrağını yapmanız gerekir

Evet, bunu düşündüm, ama farklı danışmanlar farklı işlevlerle meşgul ve kimse bunları birleştirmeyecek, çağırmak için bir bayrak dosyası yazabilirsiniz, belki onu bile yaparım, neden bir alternatif aramayalım?

 
Aleksandr Volotko :

Ve kütüphane telepatik olarak gerekli bilgiyi öğrenecek mi? Aynı şekilde siparişleri 86400 kez sallayacaktır.

Bu, makalenin tartışma başlığında bulunabilir. Ve cevap vermeyeceğim. Sadece kullanmayı denedim... Ve Artyom'un mesajlarını tekrar okuyarak başla. Bu mesaja dikkat edin.

Sıra ve konum özelliklerinin karma toplamı . Bir sembol, adını oluşturan karakter kodlarının toplamına kodlanmıştır. Ama sonra sadece tam bir döngü. Hash toplamı değiştiğinde, ne olduğuna bakarız.


 
Aleksandr Volotko :

Evet, bunu düşündüm ama farklı danışmanlar farklı işlevlerle meşgul ve kimse bunları birleştirmeyecek, çağrıya bir bayrak dosyası yazabilirsiniz, belki onu bile yaparım, neden alternatif aramayalım?

burada alternatif https://www.mql5.com/ru/docs/standardlibrary/datastructures

veya başka açılardan "Veri Toplamaları" SB'ye dayanacak olan moderatör Artem'in makalelerinden materyalleri kullanın.


Kim ne derse desin, ancak en azından MQL dilinin yeteneklerini anlamak için yeni materyal üzerinde çalışılması gerekecek, ancak sadece 10 yıl önce diziler üzerinde oturmak ve OrderTotal()'ın analiz süresini azaltmak .... yine de olacaktır. hem mevcut sorunu hem de gelecekteki yeni görevleri çözmez


Birkaç Uzman Danışman ve veri alışverişi hakkında konuşuyorsak - sipariş vermek için bir bayrak vb., o zaman evrensel bir çözüm yoktur - bu konuda birçok varyasyon vardır, genel olarak, bir ağrım var, kendim kullandım bir sürü hazır var ama bana hiç yakışmıyor, daha doğrusu veritabanı sunucusuna gelip onun üzerinden değiş tokuş yapacağım, kesinlikle güvenilir ve pratik olacak, ne yazık ki MT geliştiricileri vizyonlarına dayanarak uzun yıllardır bu sorunu görmezden geliyorlar. kullanıcı için işlevsellik ihtiyacının

 
Alexey Viktorov :

Bu, makalenin tartışma başlığında bulunabilir. Ve cevap vermeyeceğim. Sadece kullanmayı denedim... Ve Artyom'un mesajlarını tekrar okuyarak başla. Bu mesaja dikkat edin.

Bütün bunlar bir sipariş arayışına yol açıyor ve bunu günde 100.500 kez yapmak istemiyorum. Ve önemli değil - Döngüdeki toplam konum hacmini veya sipariş özelliklerinin kitaplık karma toplamını sayacağım.

 
Igor Makanu :

burada alternatif https://www.mql5.com/ru/docs/standardlibrary/datastructures

veya başka açılardan "Veri Toplamaları" SB'ye dayanacak olan moderatör Artem'in makalelerinden materyalleri kullanın.


Kim ne derse desin, ancak en azından MQL dilinin yeteneklerini anlamak için yeni materyal üzerinde çalışılması gerekecek, ancak sadece 10 yıl önce diziler üzerinde oturmak ve OrderTotal()'ın analiz süresini azaltmak .... yine de olacaktır. hem mevcut sorunu hem de gelecekteki yeni görevleri çözmez

Tamamen aptal olduğumu düşünmeyin, sadece bazen sadece mevcut olanla, kullanıma hazır olanla ve kullanıma hazır olanla çok az çalışmanız gerekir.

 
Vitaly Muzichenko :

Neye benziyor?

StringToShortArray()
ShortArrayToString()
 
Artyom Trishkin :
StringToShortArray()
ShortArrayToString()

Zayıf bir zihin gibi görünüyor)

Nasıl uygulanır?

 static __Total = - 1 ;
int OT=OrdersTotal();
   if (OT!=__Total)
   {
     SetMarket(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __Total=OrdersTotal(); // запомним количество
   }

Sadece bir sorun var ve çok nadir oluyor, birkaç yıl sonra ilk kez bugün keşfettim, belki ondan önceydi, fark etmemiştim.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

OnTradeTransaction() mql4'te nasıl değiştirilir?

Vitaly Muzichenko , 2020.01.27 15:32

Sadece bununla dikkatli çalışmanız gerekiyor, bugün bir pozisyonun kapatıldığı ve ikincisinin başka bir çiftte ve aynı zamanda neredeyse aynı anda keneler arasında açıldığı gerçeğiyle karşılaştım.

OrdersTotal() sonucunda 8 olduğu için öyle kaldı . Uzmanın mantığı yoldan çıktı - yeni verileri yeniden hesaplamadı


 

İşte bu, çözüm basit: geçmişi değiştirmek için bir kontrol daha sunuyoruz, böylece hiçbir şey kaybolmaz ve %100 çalışır

 static __OTotal = - 1 ;
static __HTotal = - 1 ;
int OT= OrdersTotal ();
int HT=OrdersHistoryTotal();
   if (OT!=__OTotal || HT!=__HTotal) // если изменилось - выполняем
   {
     SetMarket(); // здесь дёргаем текущую ситуацию на счёте и заполняем структуры
     __OTotal= OrdersTotal (); // запомним текущее количество
     __HTotal=OrdersHistoryTotal(); // запомним количество в истории
   }