Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1060

 
abeiks :

Bazı yanıtları burada bulabilirsiniz: https://www.mql5.com/ru/forum/131859


1. Teşekkürler, ancak cevabı bulamadınız. Bir SetOrder() işlevi vardır, ancak bu özünde OrderSend() ile aynıdır. Bu fonksiyon ile aynı anda birden fazla emir açamazsınız.
 
smart_man :
1. Teşekkürler, ancak cevabı bulamadınız. Bir SetOrder() işlevi vardır, ancak bu özünde OrderSend() ile aynıdır. Bu fonksiyon ile aynı anda birden fazla emir açamazsınız.

Herhangi bir işlevle aynı anda birkaç sipariş açmak imkansızdır, prensipte yapılamaz, çünkü sunucu siparişleri paralel olarak değil sırayla yürütür ve sadece sizin değil, tüm müşterilerden gelen siparişler sıradadır. .

En iyi durumda, emirler birbiri ardına birkaç milisaniyelik farkla açılacaktır, ancak bu, piyasada talep varsa.

 
evillive :

Herhangi bir işlevle aynı anda birkaç sipariş açmak imkansızdır, prensipte yapılamaz, çünkü sunucu siparişleri paralel olarak değil sırayla yürütür ve sadece sizin değil, tüm müşterilerden gelen siparişler sıradadır. .

En iyi durumda, emirler birbiri ardına birkaç milisaniyelik farkla açılacaktır, ancak bu, piyasada talep varsa.

Burada, sorunun özünü anladığınız açık! Bu emirleri beklemede açarsanız aklıma tek bir şey geldi. O zaman onları aynı anda açmak mümkün mü?
 
smart_man :
Burada, sorunun özünü anladığınız açık! Bu emirleri beklemede açarsanız aklıma tek bir şey geldi. O zaman onları aynı anda açmak mümkün mü?
Hayır, sunucu, gecikmeli veya piyasada olsun, bunları birer birer yürütür.
 
evillive :
Hayır, sunucu ister gecikmeli ister piyasada olsun, bunları birer birer yürütmeye devam eder.

1. Ardından "eşzamanlılık" sorunu ortadan kalkar. O halde bu açıdan, bir piyasayı açmakla, bekleyen bir piyasayı açmak arasında hiçbir fark yoktur.

2. Bu kapanma anını yakalamak için (TP veya SL ile) bir emrin her tikte kapanıp kapanmadığını manuel olarak izlemek doğru mu, yoksa hazır fonksiyonlar var mı?

 
smart_man :

1. Ardından "eşzamanlılık" sorunu ortadan kalkar. O halde bu açıdan, bir piyasayı açmakla, bekleyen bir piyasayı açmak arasında hiçbir fark yoktur.

2. Bu kapanma anını yakalamak için (TP veya SL ile) bir emrin her tikte kapanıp kapanmadığını manuel olarak izlemek doğru mu, yoksa hazır fonksiyonlar var mı?

2. Dikkatli bakın: https://www.mql5.com/ru/forum/131859

isCloseLastPosByStop();
isCloseLastPosByTake();
 
Bu satır ne anlama geliyor: PostMessageA(hwnd, WM_COMMAND, 0x822c, 0)? Hedefi nasıl bulamıyorum.
 

Hangi DC'yi seçeceğimi söyle? Para yatırma / çekme ile ilgili sorunlar ve tekliflerin güvenilirliği ile ilgileniyor. Örneğin , alpari sunucusundan gelen test sonuçları , ikincisi lehine meta alıntılardan çok farklıdır. Farklı sunuculardaki mum parametreleri farklı değerlere sahiptir, vb.

İlginçtir ki Alpari ve Forex kulübüne geçen hafta lisans verilmedi, teletrade aramaları yapıldı. Yaşamaya nasıl devam edilir?

 

Merhaba. Tamamen bağımsız bir özel işlev yapmak istiyorum. OnInit()'in yayılmasında herhangi bir sorun yoktur. Kullanıcı tanımlı işlevin kendisi tanım gereği yürütülür. Ancak pseudoOnDeinit(const int nedeni) sorunlarıyla.

konuya açıklık getiriyorum. Son geçişte kullanıcı tanımlı işlevin kendisinin grafik nesnelerini silmesi ve örneğin bazı verileri terminalin global değişkenlerine kaydetmesi gerekir.

Döngüsel bir programda, program sonlandırma göstergesi IsStopped()==true olabilir. Döngüsüz her zaman=0. Genel bir yol değil.

OnTick()'ten UninitializeReason() işlevini çağırmaya çalıştım. Sonuç her zaman = 0'dır, ancak son geçişte yaklaşan deinitialization için nedenin değerini vermek mantıklı olacaktır.

UninitializeReason() işlevinin kesildiği ve yalnızca OnDeinit(const int Reason) içinde kullanılabileceği ortaya çıktı.

Ek olarak tüm kullanıcı fonksiyonlarını başlatma fonksiyonu OnDeinit(const int Reason)'a kaydedebilir ve deinitialization için sebep-sebebi , kullanıcı fonksiyonuna geçirilen gerekli parametrelerden biri yapabilirsiniz.

OnDeinit(const int Reason) öğesinden kullanıcı tanımlı işleve geçirilen sıfır olmayan bir değerin varlığı, ana programın sonlandırıldığının bir işareti olacaktır.

Belki de bu amaç için ihtiyaç duyulan başka yollar ve sistem değişkenleri vardır. Yazmak. Deneyiminizi paylaşın. Üzgünüm değilse. ;-)

 
kosmos0975 :

OnTick()'ten UninitializeReason() işlevini çağırmaya çalıştım. Sonuç her zaman = 0'dır, ancak son geçişte yaklaşan deinitialization için nedenin değerini vermek mantıklı olacaktır.

Başka türlü nasıl olabilir? Onay işaretleri arasında terminali kapatırsanız, OnTick() yürütülmez ve buna bağlı olarak UninitializeReason() işlevini çağıran olay işlenmez.
Neden: