"MetaTrader 5 Alım Satım Olayları" makalesi için tartışma

 

Yeni makale MetaTrader 5 Alım Satım Olayları yayınlandı:

Bir alım satım hesabının mevcut durumunun izlenmesi, açık pozisyonların ve emirlerin kontrol edilmesini gerektirir. Bir alım satım sinyali bir yatırım haline gelmeden önce, müşteri terminalinden alım satım sunucusuna bir istek olarak gönderilmeli ve işlenmeyi bekleyen emir kuyruğuna yerleştirilmelidir. Alım satım sunucusundan gelen bir isteği kabul etmek, süresi dolduğunda silmek veya bir anlaşma yürütmek - tüm bu eylemlerin ardından alım satım etkinlikleri gelir ve alım satım sunucusu, terminali onlar hakkında bilgilendirir.

Birden fazla olaya başka bir örnek ise gerekli hacmin tek bir karşı tekliften elde edilememesi durumunda tek bir emir bazında birden fazla yatırımın gerçekleştirilmesidir. Alım satım sunucusu, tüm olaylarla ilgili mesajları oluşturur ve müşteri terminaline gönderir. Bu nedenle OnTrade() fonksiyonu, tek bir olay gibi görünen bir olay için birkaç kez çağrılabilir. Bu, MetaTrader 5 platformunda alım satım alt sisteminin emir işleme prosedürüne basit bir örnektir.

Bir örnek verelim: 10 lot EURUSD alımı için bekleyen bir emir gerçekleşmeyi beklerken, 1, 4 ve 5 lotluk satış için zıt teklifler ortaya çıkıyor. Bu üç istek birlikte gerekli 10 lotluk hacmi verir, bu nedenle emir türü parça parça alım satım işlemine izin veriyorsa bunlar tek tek yürütülür.

4 emrin yürütülmesi sonucunda sunucu mevcut karşıt istekler bazında 1, 4 ve 5 lotluk 3 yatırım gerçekleştirecektir. Peki bu durumda kaç alım satım olayı oluşturulur? Bir lot satışı için ilk ters talep, 1 lotluk satışın gerçekleşmesine yol açacaktır. Bu, ilk Alım Satım olayıdır (1 lotluk yatırım). Ancak 10 lotluk alım için bekleyen emir de değiştirilir ve 9 lotluk EURUSD alma emrine dönüşür. Bekleyen emrin hacmindeki değişiklik, ikinci Alım Satım olayıdır (bekleyen bir emrin hacmindeki değişiklik).

Alım Satım Olaylarının Oluşturulması

Yazar: MetaQuotes

 

Birkaç noktayı açıklığa kavuşturmak istiyorum.

1. Makale, OrderCheck() fonksiyonunun bir isteğin birincil kontrolü için tasarlandığını ve OrderCheck() fonksiyonunun yardımıyla birincil kontrolün terminalde değil, doğrudan sunucu tarafından (sunucu tarafında) gerçekleştirildiğini ima ediyor. Bu doğru mudur?

Документация по MQL5: Торговые функции / OrderCheck
Документация по MQL5: Торговые функции / OrderCheck
  • www.mql5.com
Торговые функции / OrderCheck - Документация по MQL5
 

2. Referans kitapta OrderSend() fonksiyonu için "başarılı bir temel yapı kontrolü durumunda true döndürülür" ifadesi yer almaktadır. Buradan, talebin doğruluğu kontrol edildikten hemen sonra true değerinin döndürüldüğü sonucuna varabiliriz.

Ancak notta biraz daha aşağıda "emir işlem sunucusu tarafından başarıyla kabul edilirse OrderSend() işlevi true değerini döndürür" ifadesi yer almaktadır. Bu not, true değerinin yalnızca sunucu emri kabul ettikten sonra döndürüldüğünü ima etmektedir.

Bu arada, talebin doğruluğunun zaten kontrol edildiği ancak aracı kurum tarafından henüz kabul edilmediği durumlar olabilir. Bu nedenle, lütfen OrderSend() fonksiyonunun hangi noktada true döndürdüğünü açıklığa kavuşturun - talebin doğruluğu kontrol edildikten hemen sonra mı yoksa yalnızca sunucu emri kabul ettikten sonra mı?

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
[Silindi]  
Yedelkin:

Birkaç noktayı açıklığa kavuşturmak istiyorum.

1. Makale, OrderCheck() işlevinin bir isteğin birincil kontrolü için tasarlandığını ve OrderCheck() işlevi yardımıyla birincil kontrolün terminalde değil, doğrudan sunucu tarafından (sunucu tarafında) gerçekleştirildiğini ima ediyor. Bu doğru mu?

Anladığım kadarıyla işlem istemci terminal tarafında gerçekleştiriliyor.

Aşağıdaki yazı da bunu doğruluyor.

 

3. Makalede, "ticaret sunucusu tarafından alınan taleplerin, piyasa fiyatlarında bekleyen veya anında gerçekleştir ilebilen emirler şeklinde saklandığı" belirtilmektedir.

Bildiğimiz gibi, Anında Gerçekleştirme üç piyasa emri gerçekleştirme modundan biridir. O halde şu soru ortaya çıkıyor: Piyasa Emri ve Talep Gerçekleştirme modlarında piyasa emirlerine ne olur? "İşlem sunucusu tarafından alınan talepler, piyasa fiyatlarında bekleyen veya anında gerçekleşen piyasa emirleri olabilen emirler olarak saklanır" şeklinde bir genelleme yapabilir miyiz?

 
Interesting:

Anladığım kadarıyla işlem istemci terminal tarafında gerçekleştiriliyor.

Bu durum aşağıdaki gönderi tarafından da teyit edilmektedir.

Tamam, resmi bir yanıt beklememizi öneririm. Ek bilgi için her zamanki gibi teşekkürler. Ben de daha önce böyle düşünmüştüm.

Ekleme. Bu soruda kafamı karıştıran şeyin ne olduğunu bile fark ettim. Makalede "birincil işleme" ifadesi OrderCheck() işlevine referans olarak verilmiş ve ben de bu referansı herhangi bir öngörüde bulunmadan olduğu gibi almışım.

 
Yedelkin:

Birkaç noktayı açıklığa kavuşturmak istiyorum.

1. Makale, OrderCheck() işlevinin bir isteğin birincil kontrolü için tasarlandığını ve OrderCheck() işlevi yardımıyla birincil kontrolün terminalde değil, doğrudan sunucu tarafından (sunucu tarafında) gerçekleştirildiğini ima ediyor. Bu doğru mu?

Makale, birincil dahili kontrolün terminalde gerçekleştirildiğini söylüyor. OrderCheck() terminalde de çalışır, sunucuya hiçbir şey gönderilmez.
 
Rosh:
Makale ilk kontrolün terminalde yapıldığını söylüyor. OrderCheck() de terminalde çalışır, sunucuya hiçbir şey gönderilmez.

Makale şöyle diyor: "bir istek gönderildikten sonra sunucuya ulaşır ve ilk kontrolden geçer".

Ayrıca makalede "birincil işlem" ifadesinin OrderCheck() işlevine referans olarak verilmesi kafamı karıştırdı, bu yüzden bu referansı ikinci bir düşünce olmadan kabul ettim.

 
Yedelkin:

2.

Bu arada, talebin zaten doğruluk açısından kontrol edildiği ancak henüz aracı tarafından kabul edilmediği durumlar olabilir. Bu nedenle, lütfen OrderSend() fonksiyonunun tam olarak hangi anda true döndürdüğünü açıklığa kavuşturun - talebin doğruluğunu kontrol ettikten hemen sonra mı yoksa yalnızca sunucu emri kabul ettikten sonra mı?

Doğru istek sunucu tarafından kabul edilir ve yanıt MqlTradeResult yapısının retcode alanında terminale gönderilir - https://www.mql5.com/tr/docs/constants/errorswarnings/enum_trade_return_codes.

Kod

Tanımlayıcı

Açıklama

10008

TRADE_RETCODE_PLACED

Sipariş verildi

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

Doğru talep sunucu tarafından kabul edilir ve cevap MqlTradeResult yapısının retcode alanında terminale gönderilir - https://www.mql5.com/tr/docs/constants/errorswarnings/enum_trade_return_codes.

Kod

Tanımlayıcı

Açıklama

10008

TRADE_RETCODE_PLACED

Sipariş verilir

Yani OrderSend() işlevinin yalnızca sunucu siparişi kabul ettikten (yerleştirdikten) sonra true değerini döndürdüğünü mü söylemek istiyorsunuz?
 
Yedelkin:


Ayrıca, makalede OrderCheck() işlevine referans olarak "ilk işleme" ifadesinin verilmesi kafamı karıştırdı ve bu referansı geriye dönüp bakmadan olduğu gibi kabul ettim.

Benim de kafamı karıştırdınız. "Birincil kontrol" kombinasyonundan referansı kaldırdım.