OrderSendAsync() işlevi - sayfa 4

 

Meslektaşlarım, bu fikri nasıl buldunuz? Böyle bir yapıda ( MqlPacketTradeResult ), tamamlanan siparişlerin sayısını belirten bir alan vb. belirtebilirsiniz.


 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );
 
denkir :

Meslektaşlarım, bu fikri nasıl buldunuz? Böyle bir yapıda ( MqlPacketTradeResult ), tamamlanan siparişlerin sayısını belirten bir alan vb. belirtebilirsiniz.

Ancak bunun için OrderSendAsync() işlevi içerisinde sunucudan yanıt beklemeniz gerekecektir. Ve OrderSendAsync() işlevinin eşzamansızlığı boşa çıkacaktır. Renat, OrderSendAsync () tetiklendikten sonra hile yapmayı deneyebileceğiniz başka işlevler olacağına zaten söz verdi.
 
Yedelkin :
Но для этого придётся дожидаться ответа от сервера в рамках функции OrderSendAsync(). И асинхронность функции OrderSendAsync() сойдёт на нет. Ренат же уже пообещал, что будут иные функции, с помощью которых можно попытаться похимичить после срабатывания OrderSendAsync().

Evet, uyumsuzluk hakkında düşünmedim ...

Sonra şöyle:

 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   );

bool   OrderReceiveAsync(
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );
 
denkir :

Evet, uyumsuzluk hakkında düşünmedim ...

Sonra şöyle:

Asenkroni, yanıt beklemeden çalışmak anlamına gelir. Ateşlendi (OrderSenAsync) ve hedefin vurulup vurulmadığını görmeye çalışmadan koştu. Çünkü zaman yok.

Dolaylı bir cevap daha sonra gelen ses olacaktır (OnTrade) - belki bu atış hedefi vurdu veya belki bir şey düştü. Burada dilerseniz göz atabilir ve görebilirsiniz (tüm siparişleri, fırsatları, pozisyonları vb. kontrol edin).

 
denkir :

Evet, uyumsuzluk hakkında düşünmedim ...

Sonra şöyle:

Pekala, o zaman zaten OrderSend Packet Async () , OrderReceive Packet Async :) Böylece zaten var olan asenkron modda tek bir istek göndermek ve bununla ilgili bilgileri daha sonra aramak mümkün kalır.
 
Rosh :

Dolaylı bir cevap daha sonra gelen ses olacaktır (OnTrade) - belki bu atış hedefi vurdu veya belki bir şey düştü. Burada dilerseniz göz atabilir ve görebilirsiniz (tüm siparişleri, fırsatları, pozisyonları vb. kontrol edin).

Bu nedenle, gelen tüm Trade olaylarına değil, yalnızca asenkron kuyruklarla ilgili olanlara yanıt vermek mümkün olacak şekilde OnTrade()'de belirli OrderReceiveХХХ() işlevlerinin kullanılmasını önerir.
 
Rosh :

Asenkroni, yanıt beklemeden çalışmak anlamına gelir. Ateşlendi (OrderSenAsync) ve hedefin vurulup vurulmadığını görmeye çalışmadan koştu. Çünkü zaman yok.

Dolaylı bir cevap daha sonra gelen ses olacaktır (OnTrade) - belki bu atış hedefi vurdu veya belki bir şey düştü. Burada dilerseniz göz atabilir ve görebilirsiniz (tüm siparişleri, fırsatları, pozisyonları vb. kontrol edin).

Asenkron modda işlem yapma konusundaki az deneyiminiz veya bu tür işler için zayıf MT5 işlevselliği nedeniyle biraz hile yapıyorsunuz.

Asenkroni, asenkroni için gerekli değildir. Ve sadece faydalı olduğu zaman kullanılır. Örneğin, bir portföy ticareti yaparken, örneğin bir portföyün burada ve şimdi satın alınması veya yeniden dengelenmesi gerektiğinde. Onlar. aynı anda mevcut fiyatlarla farklı semboller için bir düzine veya iki işlem emri verin.

Ve eğer uyumsuzluğa tarif ettiğiniz şekilde davranırsanız kimse bunu yapmaz - ateşle ve unut. Ve şutlara verilen tepkiyi mevcut net pozisyonlarına göre değerlendirin. Yanıt, her işlem emrine özel olmalıdır.

Bir ret varsa - bunun hakkında haber almalıyız veya başka bir cevap almalıyız. Bir veya iki saniye için net pozisyon değişmediği için bir regket olup olmadığını tahmin etmek yerine.

Bu tartışmanın ilk sayfasında diyagramlar ve gelen olay mesajları var. Birdenbire ortaya çıkmadılar, ancak asenkron modda uzun yıllara dayanan deneyime sahipler. Bu nedenle, bu tür mimariye tiksinmeden dikkat etmeye değer.

 
denkir :

Meslektaşlarım, bu fikri nasıl buldunuz? Böyle bir yapıda ( MqlPacketTradeResult ), tamamlanan siparişlerin sayısını belirten bir alan vb. belirtebilirsiniz.

Bir toplu uygulamanın her zaman aynı doldurulmuş alanlara sahip olduğunu varsayıyor musunuz?

IMHO, aynı uygulamalar paketi sadece gösteri için gereklidir, farklı semboller için uygulamalar, farklı hacimlerde ve elbette, iş için farklı yönler kullanılacaktır. Ve bu nedenle, her talebin ayrı ayrı kontrol edilmesi gerekecek, bu yüzden onları bir paket halinde göndermenin bir anlamı yok.

Ve önerdiğiniz şey sadece for döngüsünün bir sarmalanmasıdır.

 
Urain :

Bir toplu uygulamanın her zaman aynı doldurulmuş alanlara sahip olduğunu varsayıyor musunuz?

IMHO, aynı uygulamalar paketi sadece gösteri için gereklidir, farklı semboller için uygulamalar, farklı hacimlerde ve elbette, iş için farklı yönler kullanılacaktır. Ve bu nedenle, her talebin ayrı ayrı kontrol edilmesi gerekecek, bu yüzden onları bir paket halinde göndermenin bir anlamı yok.

Ve önerdiğiniz şey sadece for döngüsünün bir sarmalanmasıdır.

Ve her talebin döngüsel olarak doldurulmasını engelleyen nedir? Ve sonra aynı döngüsel olarak her sonucu işlemek?
 
denkir :
Ve her bir talebi döngüsel olarak doldurmayı engelleyen nedir? Ve sonra aynı döngüsel olarak her sonucu işlemek?

Teklifiniz yalnızca mevcut işlevi tamamlayacaksa, o zaman hiçbir şey olmaz, aksi takdirde basit MqlPacketTradeRequest yapısının nasıl olduğu açık değildir ...

 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );

... farklı siparişler için istek gönderebilecek, ancak MqlPacketTradeRequest yapısı dinamik bir MqlTradeRequest yapıları dizisinin yapısıysa, bu, basit istek yapıları için tasarlanmış sunucunun tüm mantığını bozabilir.

başka bir deyişle, uçbirim düzeyinde, bu paketin ayrı isteklere bölünmesi gerekecektir, bu da bu aşırı yüklenmenin tüm amacını geçersiz kılar.

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5