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

 
Igor Makanu :

hızlı bir çözüme ihtiyacınız varsa, o zaman tüm biletleri CArrayInt'te toplardım ve sonra yeni bir onay geldiğinde, açık siparişlerin biletlerini CArrayInt ile karşılaştırırdım - bir Search() yöntemi vardır, bilet yoksa karşılaştırmayı bırakın Açık siparişlerin biletleriyle CarrayInt, CArrayInt'i sıfırlayın ve tüm biletleri CArrayInt'e yeniden yazın ve global olarak tanımlanan MyOnTradeTransaction bayrağını ayarlayın - sipariş listesinin değiştiğinin bir işareti - kod oldukça kompakt olacaktır

Ve bir emir kaybından daha fazlasını yakalamanız gerektiğinde .., o zaman teflerle dans başlayacak ...

OrdersTotal() öğesinin kontrol edilmesi, bekleyen bir emrin aktivasyonunu göstermez, örneğin -emirlerin sayısı değişmez, biletler de... Ve bir emri/pozisyonu değiştirme gerçeğini yakalamak gerektiğinde...

Ancak her şey zaten icat edildi, yapıldı ve çiğneme ile ücretsiz erişim için düzenlendi ...

 
Alexey Viktorov :

Hangi avantajları reddediyorum? Tek bir olumsuzluğum var. Bir şeyin nasıl çalıştığını anlamak istiyorum ve eğer onu sadece zihnimle anlayamazsan, o zaman onu kullanmakta rahat değilim ve benim için rahat olmayan her şeyi reddediyorum. Sana hayatımın geri kalanında okuyabileceğimden daha fazla mektup yazdığını söylemiştim. Üzerime namlu sallama...

Artılar - bu olaylar kaybedilemez. OnTrade() ve OnTradeTransaction()'dan farklı olarak. Ama böyle bir olayın kaybedilebileceğine inanmıyorsunuz... O yüzden diyorum ki - tartışma anlamsız.

 
Artyom Trishkin :

Ve bir emir kaybından daha fazlasını yakalamanız gerektiğinde .., o zaman teflerle dans başlayacak ...

OrdersTotal() öğesinin kontrol edilmesi, bekleyen bir emrin aktivasyonunu göstermez, örneğin -emirlerin sayısı değişmez, biletler de... Ve bir emrin/pozisyonun değişikliğini yakalamanız gerektiğinde...

Ancak her şey zaten icat edildi, yapıldı ve çiğneme ile ücretsiz erişim için düzenlendi ...

OrdersTotal'ı analiz etmenizi önermiyorum, güvenilir değil

sipariş değişikliği bu şekilde izlenemez, o zaman sınıfınızı CArray veya CObj'ye göre yazmanız gerekir.

Bazı temel işler değil, hızlı bir çözüm önerdim;)

Artyom Trishkin :

Artılar - bu olaylar kaybedilemez.

belki PC'de reset tuşuna basarsanız .... Yazıları uzun zamandır takip etmiyorum ama terminalin yeniden başlatılması durumunda sınıfların durumunu bir dosyaya kaydetme yöntemini sorduğumu hatırlıyorum - bu zaten uygulandı mı?
 
Igor Makanu :

OrdersTotal'ı analiz etmenizi önermiyorum, güvenilir değil

sipariş değişikliği bu şekilde izlenemez, o zaman sınıfınızı CArray veya CObj'ye göre yazmanız gerekir.

Bazı temel işler değil, hızlı bir çözüm önerdim;)

belki PC'de reset tuşuna basarsanız .... Yazıları uzun zamandır takip etmiyorum ama terminalin yeniden başlatılması durumunda sınıfların durumunu bir dosyaya kaydetme yöntemini sorduğumu hatırlıyorum - bu zaten uygulandı mı?

Ayrıca balkondan bir bilgisayar atabilirsiniz - kaybın güvenilirliği için :) Ve buz pateni pistinin aşağıdan beklemesine izin verin. Sonra üstüne beton dökebilirsin :))

Hayır, uygulanmadı - şu anda ana şey bu değil. Bu neredeyse en sonunda - aynı türden her şeyi tek seferde yapmak ve farklı zaman aralıklarına bölmemek daha kolay. Benim için.

 
Artyom Trishkin :

Hayır, uygulanmadı - şu anda ana şey bu değil. Bu neredeyse en sonunda - aynı türden her şeyi tek seferde yapmak ve farklı zaman aralıklarına bölmemek daha kolay. Benim için.

tamam bekleyeceğiz

ama tam tersi çıktı - bu sorunla zaten karşılaştım - hemen program yapısına kaydetme yeteneğini koymadım, bir dosyaya kaydetmeyi yazmaya başladım, her şey çok hantal çıktı .... sonra tükürdüm ve kodun çoğunu yeniden sıfırdan yeniden yazdım - IMHO, bir dosyaya kaydedilmesi gerekiyorsa, bunun en azından "saplamalar" ile hemen uygulanması gerekir, aksi takdirde her sınıfta kaydetmek istediğim her şeyi toplayın - çok özenli çalışma, aslında, tüm kaynak kodunu analiz etmeniz gerekecek

 
fxsaber :

Tekrarlanabilir bir örnek verebilirseniz minnettar olurum (ticaret geçmişi yoklaması olmadan).

Yararlı işlerinizi geri ödemeyi çok isterim. Ne yazık ki, çok büyük ve karmaşık bir koddan kısa bir çalışma kodu seçmekte zorlanıyorum. Bu da çok spesifiktir (örneğin, bir seferde yalnızca bir poz açar).

Bu yüzden Slava için derlenmiş bir örnek yerine bir kod iskeleti oluşturmam gerekiyordu.

Ama bir şeyler yapmaya çalışacağım yoksa vicdanım bana eziyet edecek. Ama çabuk değil.

Not: Yani kod yazarken verimliliğim çok düşük. Sadece azim alıyorum. Ve aynı zamanda - danışmanı mümkün olan en kısa sürede gerçek bir hesapta başlatmaya getirme konusunda aşırı yük. Verimliliğinizi kıskanıyorum.

 
Igor Makanu :

tamam bekleyeceğiz

ama tam tersi çıktı - bu sorunla zaten karşılaştım - hemen program yapısına kaydetme yeteneğini koymadım, bir dosyaya kaydetmeyi yazmaya başladım, her şey çok hantal çıktı .... sonra tükürdüm ve kodun çoğunu yeniden sıfırdan yeniden yazdım - IMHO, bir dosyaya kaydedilmesi gerekiyorsa, bunun en azından "saplamalar" ile hemen uygulanması gerekir, aksi takdirde her sınıfta kaydetmek istediğim her şeyi toplayın - çok özenli çalışma, aslında, tüm kaynak kodunu analiz etmeniz gerekecek

Kaydet/yükle yöntemleri başlangıçta bildirilir. Ayrıca, standart kitaplığın temel CObject nesnesinde . Ancak her kitaplık nesnesinde, kaydetme uygulamasını hemen bir dosyaya yazın - bu bir, peki, iki nesne (ve dolayısıyla makaleler) için hala bir şekilde açıklanabilir. Ancak, her makaleye kaydetme/yükleme yöntemlerinin açıklamalarını yazmak, makaleden makaleye neredeyse aynı "eylem"i okumak oldukça sıkıcı olacaktır, ancak okuyucuya göre onu atlamak çirkindir (ve bu yüzden bazıları bunun onlar için zor olduğunu söylüyor). Bu tür makaleleri okumak için, sanırım siz de). Bu nedenle, bu görev, sonuna doğru iki veya üç makalede açıklanmalıdır - bir anda bir anda düştü ve okuyucuya ağır bir yük getirmedi.

Makalelerde hiçbir şey tanımlanmadıysa başka bir konudur - o zaman elbette buna hemen ihtiyacınız var. Her şey sunumun ve hedeflerin özelliklerine bağlıdır. Hedef bir kod tabanı ise, o zaman her şey bir kerede ve hedef eğitim makaleleri ise, o zaman yavaş yavaş - zamanı geldiğinde. İkinci seçeneğim var.

 
Ihor Herasko :

Ontrade olaylarına tekrar değinildi. Bağlantının kesilmesi vb. durumlarda OnTradeTransaction'ı garanti etmekte sorun yoktur, çünkü bağlantı yeniden kurulduktan sonra terminal hala ticaret ortamını senkronize eder. OnTrade ikincil olduğundan, onlara güvenebileceğiniz anlamına gelir. Geliştiricilerin kendileri sövelere izin vermediyse, ancak rezervasyon kaldırıldığından beri her şey yolunda.

 
Artyom Trishkin :

Ancak, her makaleye kaydetme/yükleme yöntemlerinin açıklamalarını yazmak, makaleden makaleye neredeyse aynı "eylem"i okumak oldukça sıkıcı olacaktır, ancak okuyucuya göre onu atlamak çirkindir (ve bu yüzden bazıları bunun onlar için zor olduğunu söylüyor). Bu tür makaleleri okumak için, sanırım siz de). Bu nedenle, bu görev, sonuna doğru iki veya üç makalede açıklanmalıdır - bir anda bir anda düştü ve okuyucuya ağır bir yük getirmedi.

Okunacak makalenin hacminin çok büyük olduğunu söylemedim, ancak kaynak kodun hacminin çok büyük olduğunu ve biraz yardım / SSS olmadan nasıl kullanılacağını anlamanın imkansız olduğunu yazdım.

Bu kadar büyük miktarda veri kaydetmenin uygulanmasını bekleyeceğim, nasıl görüneceğini görmek ilginç

 
Igor Makanu :

Bu kadar büyük miktarda veri kaydetmenin uygulanmasını bekleyeceğim, nasıl görüneceğini görmek ilginç

tamam