Alım-Satım Faaliyet Tipleri

Alım-satım hesabı üzerinde bazı kesin işlemler gerçekleştirildiği zaman hesabın durumu değişir. Bu eylemler şunları kapsamaktadır:

  • OrderSend ve OrderSendAsync fonksiyonları kullanılarak herhangi bir MQL5 uygulamasından yapılan alım-satım istekleri ve bunların ilerideki kullanımları;
  • Terminalin grafiksel arayüzü ile yapılan alım satım istekleri ve bunların ilerideki kullanımları;
  • Sunucu üzerindeki bekleyen emir ve durdurma emri aktivasyonu;
  • İşlemlerin alım-satım sunucusu tarafından gerçekleştirilmesi.

Yukarıda sayılanlar eylemlerin sonucunda şu alım-satım faaliyetleri gerçekleşir:

  • alım-satım isteğinin işlenmesi;
  • açık emirlerin değişimi;
  • emir geçmişinin değişimi;
  • işlem geçmişinin değişimi;
  • pozisyonların değişimi.

Örneğin, bir piyasa alım emri gönderirken, bu emir önce işlenir, hesap için uygun bir alım emri oluşturulur, sonra uygulanır ve açık emirler listesinden kaldırılır, ardından emir geçmişine eklenir, uygun bir işlem geçmişe eklenir ve yeni bir pozisyon oluşturulur. Tüm bu eylemler alım-satım faaliyetidir.

Programcının bir alım-satım hesabında gerçekleşmiş faaliyetleri takip edebilmesi için, OnTradeTransaction fonksiyonu tasarlanmıştır. Bu işleyici, bir hesap üzerinde uygulanmış alım-satım faaliyetlerinin MQL5 uygulaması içinde alınmasını sağlar. Alım-satım faaliyetinin tarifi, OnTradeTransaction fonksiyonunun ilk parametresinde, MqlTradeTransaction yapısı kullanılarak ibraz edilir.

Alım-satım faaliyetinin tipi, MqlTradeTransaction yapısının tip parametresinde belirtilir. Muhtemel alım-satım faaliyeti tipleri şu sayım ile tarif edilmiştir:

ENUM_TRADE_TRANSACTION_TYPE

Tanımlayıcı

Açıklama

TRADE_TRANSACTION_ORDER_ADD

Yeni bir açık emir ekleme.

TRADE_TRANSACTION_ORDER_UPDATE

Açılmış bir emri güncelle. Güncellemeler, sadece müşteri terminali veya alım-satım sunucusu tarafından yapılmış bariz değişimleri değil, aynı zamanda, emrin ayarlanması sırasında oluşan değişimleri de içerir (örneğin, ORDER_STATE_STARTED'dan ORDER_STATE_PLACED'a veya ORDER_STATE_PLACED'dan ORDER_STATE_PARTIAL'a vb. yapılan aktarımlar).

TRADE_TRANSACTION_ORDER_DELETE

Açık emirler listesinden bir emir silme. Bir emir, uygun bir isteğin ayarlanmasının veya uygulanmasının (karşılanmasının) ve geçmişe konulmasının bir sonucu olarak, açık emirler listesinden silinebilir.

TRADE_TRANSACTION_DEAL_ADD

Geçmişe bir işlem eklenmesi. Bu eylem, bir emrin işlenmesinin veya hesap bakiyesi ile işlemler gerçekleştirilmesinin bir sonucu olarak ortaya çıkar.

TRADE_TRANSACTION_DEAL_UPDATE

Geçmişteki bir işlemin güncellenmesi. Daha önce gerçekleştirilen bir işlemin, sunucu üzerinde değişme olasılığı bulunmaktadır. Örneğin, işlem daha önce aracı kurum tarafından aktarıldığı bir dışsal alım-satım sisteminde (borsa) değiştirilmiş olabilir.

TRADE_TRANSACTION_DEAL_DELETE

Geçmişteki bir işlemin silinmesi. Daha önce gerçekleştirilen bir işlemin sunucu üzerinde silinme olasılığı bulunmaktadır. Örneğin, işlem daha önce aracı kurum tarafından aktarıldığı bir dışsal alım-satım sisteminde (borsa) silinmiş olabilir.

TRADE_TRANSACTION_HISTORY_ADD

Bir işlemin veya iptalin sonucu olarak bir emrin geçmişe eklenmesi.

TRADE_TRANSACTION_HISTORY_UPDATE

Emir geçmişinde yer alan bir emrin değişmesi. Bu tip, sunucu tarafındaki fonksiyonelliğin artırılması için tasarlanmıştır.

TRADE_TRANSACTION_HISTORY_DELETE

Emir geçmişinden bir emrin silinmesi. Bu tip, sunucu tarafındaki fonksiyonelliğin artırılması için tasarlanmıştır.

TRADE_TRANSACTION_POSITION

İşlemle ilgili olmayan bir pozisyonun değiştirilmesi. Bu tür faaliyetler, bir pozisyonun sunucu tarafından değiştirildiğini gösterir. Pozisyon hacmi, açılış fiyatı, Zarar Durdur ve Kar Al seviyeleri değiştirilebilir. Değişimlere dair veriler, OnTradeTransaction işleyicisi ile MqlTradeTransaction yapısında belirtilir. İşlemin sonucunda pozisyon değişimi (ekleme, değiştirme veya kapama) olması, TRADE_TRANSACTION_POSITION faaliyetinin gerçekleşmesine yol açmaz.

TRADE_TRANSACTION_REQUEST

Bir alım-satım isteğinin sunucu tarafından işlendiğine ve işlenen sonucunun alındığına dair uyarı. Bunun gibi faaliyetler için sadece MqlTradeTransaction yapısının "type" alanı incelenmelidir. OnTradeTransaction fonksiyonunun ikinci ve üçüncü parametreleri (request ve result), ek veriler elde etmek için incelenmelidir.

Bir alım-satım faaliyetinin tipine bağlı olarak, MqlTradeTransaction yapısı içinde bu faaliyeti tanımlayan çeşitli parametreler doldurulur. İbraz edilen verilerin detaylı açıklamaları, "Bir Alım-Satım Faaliyetinin Yapısı" başlığı altında gösterilmiştir.

Ayrıca Bakınız

Bir Alım-Satım Faaliyetinin Yapısı, OnTradeTransaction