- Tarihsel Veritabanı Özellikleri
- Emir Özellikleri
- Pozisyon Özellikleri
- Sözleşme Özellikleri
- Alım-Satım İşlem Tipleri
- Alım-Satım Faaliyet Tipleri
- Piyasa Derinliğinde Alım-Satım Emirleri
- Sinyal Özellikleri
Emir Özellikleri
Alım-satım işlemi istekleri emir olarak adlandırılır. Her emir bir dizi okuma amaçlı özelliğe sahiptir. Emirlerle ilgili bilgiler OrderGet...() ve HistoryOrderGet...() fonksiyonları ile elde edilebilir.
OrderGetInteger() ve HistoryOrderGetInteger() fonksiyonları için
Tanıtıcı |
Açıklama |
Tip |
---|---|---|
ORDER_TICKET |
Emir fişi. Her bir emir için atanan benzersiz tanıtıcı değer |
long |
ORDER_TIME_SETUP |
Emir başlangıç zamanı |
datetime |
ORDER_TYPE |
Emir tipi |
|
ORDER_STATE |
Emir durumu |
|
ORDER_TIME_EXPIRATION |
Emir zaman-aşımı tipi |
datetime |
ORDER_TIME_DONE |
Emrin gerçekleşme veya iptal edilme zamanı |
datetime |
ORDER_TIME_SETUP_MSC |
01.01.1970 beri geçen milisaniyeler cinsinden emrin girilme zamanı |
long |
ORDER_TIME_DONE_MSC |
01.01.1970 beri geçen milisaniyeler cinsinden emrin gerçekleşme/iptal edilme zamanı |
long |
ORDER_TYPE_FILLING |
Emrin karşılanma tipi |
|
ORDER_TYPE_TIME |
Emrin yaşam süresi |
|
ORDER_MAGIC |
Emri veren Uzman Danışmanın tanımlayıcısı (her bir Uzman Danışmanın kendine has, benzersiz numarasını girmesi için tasarlanmıştır) |
long |
ORDER_REASON |
Emrin veriliş sebebi veya kaynağı |
|
ORDER_POSITION_ID |
Pozisyon tanımlayıcısı. Emir erçekleştirildiği anda ayarlanır. Gerçekleştirilen her emir, mevcut bir pozisyonu açan veya değiştiren bir işlem ile sonuçlanır. Pozisyon tanımlayıcısı, gerçekleştirilen emir için gerçekleşme anında ayarlanır. |
long |
ORDER_POSITION_BY_ID |
Emir ile kapama işlemi için kullanılacak ters pozisyonun tanımlayıcısı ORDER_TYPE_CLOSE_BY |
long |
OrderGetDouble() ve HistoryOrderGetDouble() fonksiyonları için
Tanıtıcı |
Açıklama |
Tip |
---|---|---|
ORDER_VOLUME_INITIAL |
Emrin başlangıç hacmi |
double |
ORDER_VOLUME_CURRENT |
Emrin mevcut hacmi |
double |
ORDER_PRICE_OPEN |
Emirde belirtilen fiyat |
double |
ORDER_SL |
Zarar Durdur değeri |
double |
ORDER_TP |
Kar Al değeri |
double |
ORDER_PRICE_CURRENT |
Emir verilen sembolün mevcut fiyatı |
double |
ORDER_PRICE_STOPLIMIT |
StopLimit emri için Limitli emir fiyatı |
double |
OrderGetString() ve HistoryOrderGetString() fonksiyonları için
Tanıtıcı |
Açıklama |
Tip |
---|---|---|
ORDER_SYMBOL |
Emrin verildiği sembol |
string |
ORDER_COMMENT |
Emir yorumu |
string |
ORDER_EXTERNAL_ID |
Borsa türü piyasalar için emir tanımlayıcısı |
string |
OrderSend() fonksiyonu kullanarak bir alım-satım isteği gönderirken, bazı işlemler, emir tipinin belirtilmesini gerektirir. Emir tipi, MqlTradeRequest özel yapısının type alanında belirtilir.
Tanıtıcı |
Açıklama |
---|---|
ORDER_TYPE_BUY |
Piyasa Alış emri |
ORDER_TYPE_SELL |
Piyasa Satış emri |
ORDER_TYPE_BUY_LIMIT |
Limit Alış bekleyen emri |
ORDER_TYPE_SELL_LIMIT |
Limit Satış bekleyen emri |
ORDER_TYPE_BUY_STOP |
Stop Alış bekleyen emri |
ORDER_TYPE_SELL_STOP |
Stop Satış bekleyen emri |
ORDER_TYPE_BUY_STOP_LIMIT |
Emir fiyatına ulaşıldığında, StopLimit fiyatından bir Limit Alış emri yerleştirilir |
ORDER_TYPE_SELL_STOP_LIMIT |
Emir fiyatına ulaşıldığında, StopLimit fiyatından bir Limit Satış emri yerleştirilir |
ORDER_TYPE_CLOSE_BY |
Pozisyonu ters pozisyonla kapatmak için kullanılan emir |
Her emir, durumunu tanımlayan bir statüye sahiptir. Bu bilgiyi almak için, OrderGetInteger() veya HistoryOrderGetInteger() fonksiyonlarını, ORDER_STATE şekillendiricisi ile kullanın. İzin verilen değerler ENUM_ORDER_STATE sayımında listelenmiştir.
Tanıtıcı |
Açıklama |
---|---|
ORDER_STATE_STARTED |
Emir kontrol edilmiş ama henüz aracı kurum tarafından kabul edilmemiş |
ORDER_STATE_PLACED |
Emir kabul edildi |
ORDER_STATE_CANCELED |
Emir müşteri tarafından iptal edildi |
ORDER_STATE_PARTIAL |
Emir kısmen işlendi |
ORDER_STATE_FILLED |
Emir bütünüyle işlendi |
ORDER_STATE_REJECTED |
Emir reddedildi |
ORDER_STATE_EXPIRED |
Emir, zaman-aşımına uğradı |
ORDER_STATE_REQUEST_ADD |
Emir işleniyor (alım-satım sistemine kaydediliyor) |
ORDER_STATE_REQUEST_MODIFY |
Emir şekillendiriliyor (parametreleri değiştiriliyor) |
ORDER_STATE_REQUEST_CANCEL |
Emir siliniyor (alım-satım sisteminden siliniyor) |
Geçerli zamanda (yürürlükteki zaman) işlem gerçekleştirmek için bir işlem talebi gönderirken, fiyat ve gerekli alım/satım hacmi belirtilmelidir. Ayrıca, finansal piyasaların, talep edilen hacmin tamamının belirli bir finansal enstrüman için istenen fiyatta mevcut olduğuna dair hiçbir garanti vermediğini unutmayın. Bu nedenle, gerçek zamanlı ticaret işlemleri, fiyatla ve hacimle ilişkili işlem gerçekleştirme modları kullanılarak düzenlenir. Modlar veya işlem gerçekleştirme politikaları, fiyatın değiştiği veya istenen hacmin o anda tam olarak karşılanamadığı durumlar için kuralları tanımlar.
Fiyatla ilişkili işlem gerçekleştirme modu, ENUM_SYMBOL_TRADE_EXECUTION sayımındaki bayrak kombinasyonunu içeren SYMBOL_TRADE_EXEMODE sembol özelliğinden elde edilebilir.
İşlem gerçekleştirme modu |
Açıklama |
ENUM_SYMBOL_TRADE_EXECUTION'daki değer |
---|---|---|
İşlem gerçekleştirme modu
(İşlem Gerçekleştirme Talebi) |
Brokerdan alınan fiyattan bir piyasa emri gerçekleştirme.
Belirli bir piyasa emrinin fiyatları, emir gönderilmeden önce brokerdan talep edilir. Fiyatlar alındıktan sonra, elde edilen fiyattan emrin gerçekleştirilmesi onaylanabilir veya reddedilebilir. |
SYMBOL_TRADE_EXECUTION_REQUEST |
Anında İşlem Gerçekleştirme
(Anında İşlem Gerçekleştirme) |
Belirtilen fiyattan anında bir piyasa emri gerçekleştirme.
Gerçekleştirilmek üzere bir işlem talebi gönderirken, platform otomatik olarak mevcut fiyatları emre ekler.
|
SYMBOL_TRADE_EXECUTION_INSTANT |
Piyasa Fiyatından İşlem Gerçekleştirme
(Piyasa Fiyatından İşlem Gerçekleştirme) |
Broker yatırımcıyla herhangi bir ek iletişim yapmadan emir gerçekleştirme fiyatı hakkında karar verir.
Emrin bu modda gönderilmesi, o anki fiyattan emrin gerçekleşmesine önceden izin verilmesi anlamına gelir. |
SYMBOL_TRADE_EXECUTION_MARKET |
Exchange İşlem Gerçekleştirme
(Exchange İşlem Gerçekleştirme) |
Ticaret işlemleri mevcut piyasa fiyatları üzerinden gerçekleştirilir. |
SYMBOL_TRADE_EXECUTION_EXCHANGE |
Hacim yerine getirme politikası ORDER_TYPE_FILLING emir özelliğinde belirtilir ve yalnızca ENUM_ORDER_TYPE_FILLING sayımındaki değerleri içerebilir
Hacim yerine getirme politikası |
Açıklama |
ENUM_ORDER_TYPE_FILLING'deki değer |
---|---|---|
Kalanı İptal Et (Fill or Kill, FOK) |
Bir emir yalnızca belirtilen hacimde gerçekleştirilebilir.
Finansal enstrüman için piyasada gerekli miktarda hacim mevcut değilse, emir gerçekleşmez.
İstenen hacim mevcut birkaç fiyatı içerebilir.
FOK emirlerini kullanma imkanı ticaret sunucusu tarafından belirlenir. |
ORDER_FILLING_FOK |
Anında ya da İptal Et (Immediate or Cancel, IOC) |
Yatırımcı, emirde belirtilen dahilinde piyasada bulunan maksimum hacimde işlem gerçekleştirmeyi kabul eder.
Talebin tam olarak karşılanamaması durumunda, emir var olan hacimde gerçekleştirilecek ve kalan hacim iptal edilecektir.
IOC emirlerini kullanma imkanı ticaret sunucusu tarafından belirlenir.
|
ORDER_FILLING_IOC |
Pasife yerleştir (Book Or Cancel, BOC) |
BOC politikası, emrin yalnızca Piyasa Derinliğine yerleştirilebileceğini ve hemen gerçekleştirilemeyeceğini belirtir. Emir yerleştirildiği anda hemen yerine getirilebiliyorsa bu emir iptal edilir.
Aslında bu politika, yerleştirilen emrin fiyatının mevcut piyasadan daha kötü olacağını garanti eder. BOC emirleri pasif ticaret yapmak için kullanılır: emrin yerleştirildiği anda yerine getirilmeyeceği ve böylece mevcut likiditeyi etkilemeyeceği garanti edilir.
Yalnızca limit ve stop limit emirleri desteklenmektedir (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT, ORDER_TYPE_SELL_STOP_LIMIT). |
ORDER_FILLING_BOC |
Dönüş |
Hacmin kısmi olarak yerine getirilmesi durumunda, hacmi artmış emir iptal edilmez, daha sonrası için işlenir.
Piyasa Fiyatından İşlem Gerçekleştirme modunda dönüş emirlerine izin verilmez (piyasa fiyatından işlem gerçekleştirme — SYMBOL_TRADE_EXECUTION_MARKET). |
ORDER_FILLING_RETURN |
OrderSend() fonksiyonunu kullanarak bir ticaret talebi gönderirken, type_filling alanında, yani özel MqlTradeRequest yapısında gerekli hacim yerine getirme politikası ayarlanabilir. ENUM_ORDER_TYPE_FILLING sayımındaki değerler kullanılabilir. Belirli bir etkin/tamamlanmış emirdeki özellik değerini elde etmek için, ORDER_TYPE_FILLING düzenleyicisiyle OrderGetInteger() veya HistoryOrderGetInteger() fonksiyonunu kullanın.
Geçerli işlem gerçekleştirme zamanıyla bir emir göndermeden önce, ORDER_TYPE_FILLING değerinin (hacimle ilişkili işlem gerçekleştirme tipi) doğru ayarlanması için, SYMBOL_FILLING_MODE özellik değerini elde etmek adına her bir finansal enstrümanla SymbolInfoInteger() fonksiyonunu (bir bayrak kombinasyonu şeklinde sembol için izin verilen hacimle ilişkili işlem gerçekleştirme tiplerini gösterir) kullanabilirsiniz. ORDER_FILLING_RETURN tipi, "Piyasa fiyatından işlem gerçekleştirme" modu (SYMBOL_TRADE_EXECUTION_MARKET) dışında her zaman etkindir.
İşlem gerçekleştirme moduna bağlı olarak hacim yerine getirme tiplerinin kullanımı aşağıdaki tablo halinde gösterilebilir:
İşlem Gerçekleştirme Tipi\Hacim Yerine Getirme Politikası |
Kalanı İptal Et (FOK ORDER_FILLING_FOK) |
Anında ya da İptal Et (IOC ORDER_FILLING_IOC) |
Dönüş (Return ORDER_FILLING_RETURN) |
---|---|---|---|
Anında İşlem Gerçekleştirme
(SYMBOL_TRADE_EXECUTION_INSTANT) |
+ (sembol ayarından bağımsız olarak) |
+ (sembol ayarından bağımsız olarak) |
+ (her zaman) |
İşlem Gerçekleştirme Talebi
SYMBOL_TRADE_EXECUTION_REQUEST |
+ (sembol ayarından bağımsız olarak)
|
+ (sembol ayarından bağımsız olarak) |
+ (her zaman) |
Piyasa Fiyatından İşlem Gerçekleştirme
SYMBOL_TRADE_EXECUTION_MARKET |
+ (sembol ayarlarından ayarlanır) |
+ (sembol ayarlarından ayarlanır) |
- (sembol ayarlarından bağımsız olarak devre dışı) |
Exchange İşlem Gerçekleştirme
SYMBOL_TRADE_EXECUTION_EXCHANGE |
+ (sembol ayarlarından ayarlanır) |
+ (sembol ayarlarından ayarlanır) |
+ (her zaman) |
Bekleyen emirler olması durumunda, bu tür emirler gönderme sırasında gerçekleştirilmeleri üzere tasarlanmadığından, işlem gerçekleştirme tipinden (SYMBOL_TRADE_EXEMODE) bağımsız olarak ORDER_FILLING_RETURN hacim yerine getirme tipi kullanılmalıdır. Bekleyen emirleri kullanırken, yatırımcı, emirdeki koşulların işlem için karşılandığında, brokerın borsa tarafından desteklenen hacim yerine getirme tipini kullanacağını peşinen kabul eder.
OrderSend() fonksiyonu ile emir gönderirken, emir geçerlilik periyodu, MqlTradeRequest özel yapısının type_time alanında ayarlanabilir. Bunun için ENUM_ORDER_TYPE_TIME sayımının değerleri kullanılır. Bu özelliğin değerini elde etmek amacıyla OrderGetInteger() veya HistoryOrderGetInteger() fonksiyonları, ORDER_TYPE_TIME şekillendiricisi ile kullanılır.
Tanıtıcı |
Açıklama |
---|---|
ORDER_TIME_GTC |
İptale kadar geçerli emir |
ORDER_TIME_DAY |
Günlük emir |
ORDER_TIME_SPECIFIED |
Tarihli emir |
ORDER_TIME_SPECIFIED_DAY |
Emir, belirtilen günün 23:59:59 saatine kadar aktif olacaktır. Eğer belirtilen zaman alım-satım seansının dışında kalıyorsa, emir en yakın alım-satım seansının başında zaman aşımına uğrayacaktır. |
Gerçekleştirilen emirle ilgili sebep verisi ORDER_REASON özelliğinde tutulur. Emirler, mobil uygulamalardan veya MQL5 programları, StopOut olayı, vb. gibi sebeplerle verilebilir. ORDER_REASON özelliğinin muhtemel değerleri ENUM_ORDER_REASON sayımında tanımlanmıştır.
Tanıtıcı |
Açıklama |
---|---|
ORDER_REASON_CLIENT |
Emir masaüstü terminali ile verilmiş |
ORDER_REASON_MOBILE |
Emir bir mobil uygulama ile verilmiş |
ORDER_REASON_WEB |
Emir bir mobil uygulama ile verilmiş |
ORDER_REASON_EXPERT |
Emir, bir MQL5 programı ile (Uzman Danışman veya betik) verilmiş |
ORDER_REASON_SL |
Emir, bir Zarar Durdur emrinin tetiklenmesi sonucunda oluşturulmuş |
ORDER_REASON_TP |
Emir, bir Kar Al emrinin tetiklenmesi sonucunda oluşturulmuş |
ORDER_REASON_SO |
Emir, bir StopOut olayının tetiklenmesi sonucunda oluşturulmuş |