VİOPFIX API ÜYE YAZILIMI SERTİFİKASYON PROGRAMI KAPSAMLI SEVİYE Temmuz 2015, Sürüm 12
DÖKÜMAN TARİHÇESİ Tarih Versiyon Açıklama Kasım 2014 10 İlk sürüm Sözleşmeler production ortamındaki sözleşmelere göre güncellendi Şubat 2015 11 Emir numaraları güncel hale getirildi Emir numaraları güncel hale getirildi 2 SERTİFİKASYON TEST ORTAMI bölümündeki sistemi tarihinin test tarihine göre güncelleneceğine dair açıklama kaldırıldı Temmuz 2015 12 32 MEVCUT EMİRLERLE İLGİLİ DEĞİŞİKLİKLER, 34 EMİR DEĞİŞTİRME, 36 EMİR İPTALİ bölümlerindeki sistem uyarı ve genel yayın mesajları kaldırıldı 2
AŞ nin VİOPFIX API BAĞLANTISI TESTİ Üyelerimizin Dikkatine: Bu testin amacı üyelerimizin kendi sistemlerini mevcut haliyle VİOPFIX API ortamında test etmelerini sağlamaktır Lütfen aşağıdaki işlemleri sırasıyla yapınız ve bu işlemleri yaparken her adımda gelen mesajları mutlaka kontrol ediniz Öncelikle emrin sisteme gönderildiğinde oluşması beklenen etkiyi belirleyiniz Emri veya herhangi bir isteği sisteme gönderdikten sonra beklenen etkinin gerçekleşip gerçekleşmediğini, ilk aşamada aktiviteye ilişkin tarafınıza ulaşan cevabı; boyut, içerik, tamlık ve doğruluk açılarından, ikinci aşamada ise arkadaki her kanaldan yapılan aktivitelerin kaynağı olan ana sisteminizde doğru işlenmesi açısından kontrol ediniz Sertifikasyon programı kapsamında kılavuzda yer alan tüm adımların gerçekleştirilmesi sonrasında, Sistem Bağlantı Testleri (Bölüm 1) ve Emir İletim ve Fonksiyon Testleri (Bölüm 3) sırasında gönderilen ve alınan mesajlardan oluşan log dosyalarının BİAŞ a [8=FIXT119=32935=834=649=ISTVIOPFIX52=20140910-07:33:3720556=XXXFIX1128=91=114=037=201508030000000638=10039=040=242=20150 213-07:33:0662644=46554=255=1215S059=060=20150213-07:33:0662677=C150=0151=100381=465000453=2448=XXX452=1448=XXXFM1452=12625 =31181=161300=CFAN1352=Y9757=201508030000000321002=10010=117] formatında gönderilmesi beklenmektedir Bu log dosyaları, BİAŞ tarafından hazırlanan ve senaryolar sonucunda oluşması beklenen log dosyaları ile karşılaştırılacaktır Emir iletim hızına bağlı olarak asenkron kanaldan dönen cevap mesajları gecikebilmektedir Bu durum log dosyasında mesaj sıralarında değişikliklere sebep olabilmektedir Mesajların içeriklerinin aynı olması koşuluyla mesaj loglarının sırasının değişmesi karşılaştırma açısından sorun teşkil etmemektedir Sonuç olarak beklenen çıktıların alınması durumunda, üyelerimiz 3
sertifikasyon programını tamamlamış olacaklardır Log dosyalarının kontrollerden başarılı bir şekilde geçmesi için dokümandaki tablolarda verilen alanların eksiksiz doldurulması gerekmektedir Sertifikasyon sürecinde beklenmeyen bir durum olması halinde sorunu yetkililere ivedilikle bildiriniz Testin son bölümünü de doldurduktan sonra Borsa İstanbul yetkililerine ulaştırınız Vadeli İşlem ve Opsiyon Piyasası mevcut işlem kurallarında yer alan ve Borsa İstanbul tarafından VİOPFIX API de uygulanmasına izin verilen emir ve işlem fonksiyonlarının tamamını veya bir kısmını kendi VİOPFIX API programlarında kullanmayan veya kısmen kullanan üyelerimizin ileride müşterileri ile aralarında doğabilecek uyuşmazlıklarda hukuki sorumluluk tamamen ilgili üyemize ait olacaktır Bu nedenle üyelerimize, VİOPFIX API ile emirlerini Borsa İstanbul a iletecekleri müşterilerini bu konuda bilgilendirmeleri ve müşterileri ile aralarında buna uygun hukuki dayanağı oluşturmaları tavsiye edilmektedir Üye sisteminin hatasız çalışması üyelerimizin sorumluluğundadır 4
İçindekiler 1 SİSTEM BAĞLANTI TESTLERİ 6 2 SERTİFİKASYON TEST ORTAMI 8 3 EMİR İLETİM VE FONKSİYONLARI TESTİ 10 31 TEST ORTAMINDAKİ MEVCUT BİLGİLERİN İNDİRİLMESİ 10 32 MEVCUT EMİRLERLE İLGİLİ DEĞİŞİKLİKLER 11 33 YENİ EMİR GİRİŞİ 12 34 EMİR DEĞİŞTİRME 16 35 İLAVE EMİR GİRİŞLERİ VE GERÇEKLEŞEN İŞLEMLER 20 36 EMİR İPTALİ 23 37 MESAJ İNDİRME 25 5
1 SİSTEM BAĞLANTI TESTLERİ Lütfen BİAŞ BT-Destek i (Tel: 212-298 24 27) arayarak sertifikasyon programına başlamak istediğinizi belirtiniz BT-Destek yetkilisi onay verdiği zaman aşağıdaki adımları gerçekleştiriniz 1 Sisteme bağlı değilken Password alanını boş bırakarak Logon mesajı gönderiniz Cevap: Logout mesajında yük bilgilerinin geldiği görülür 2 BİAŞ tarafından şifreniz Qq123456 olarak ayarlanmıştır Lütfen yükü gönderilen GW lerden yükü az olanı seçiniz ve seçilen GW üzerinden NewPassword alanını göndermeksizin ve HeartbtInt(108) alanını 60 sn olarak ayarlayarak verilen şifre ile bağlanınız Bağlantı aşamasında ResetSeqNumFlag(141)=Y (sıra numarasını sıfırla) olduğundan emin olunuz Cevap: PASSWORD_EXPIRED açıklaması ile Logout mesajı geldiği görülür 3 BİAŞ tarafından verilen şifre ile Password alanını ve yeni bir şifre ile NewPassword alanını doldurarak sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 4 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 5 Yeni şifreniz ile sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 6 İşlem yapmadan bekleyerek Heartbeat mesajının size ulaştığını kontrol ediniz 7 TestRequest mesajı gönderin Cevap: Heartbeat mesajı alındığı görülür 8 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın 6
Cevap: Logout mesajı ile sistemden çıkıldığı görülür 9 NewPassword alanını doldurarak şifre değiştirerek Logon mesajı gönderiniz Cevap: Sisteme Logon mesajı ile girildiği görülür 10 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 11 Yeni şifre ile sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 12 BeginSeqNo = 1 ve EndSeqNo = 1 değerlerini atayarak Resend Request gönderiniz Cevap: Yeniden talep edilen mesaj oturum mesajı olduğu için SequenceReset mesajı geldiği görülür 13 Mevcuttan daha büyük bir MsgSeqNum (50) değeri girerek sekans resetleme talebi gönderiniz Cevap: MsgSeqNum değerinin verilen değere (50) set edildiği görülür 14 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 7
2 SERTİFİKASYON TEST ORTAMI Sertifikasyon programına başlamadan önce sistem, BİAŞ tarafından testler için özel olarak hazırlanmış duruma getirilecektir Sertifikasyon programına BİAŞ tarafından aşağıda belirtilen adımlar girilerek başlanacaktır Yatırım kuruluşlarının, sertifikasyon sürecine başlamadan önce BİAŞ tarafından sisteme girilen aşağıda belirtilen senaryolara ait mesajları indirmeleri gerekmektedir Dokümandaki senaryolarda 1 nolu hesap portföy hesabı, 2 nolu hesap global hesap, 3 nolu hesap müşteri hesabı ve 4 nolu hesap riskli hesap olarak kullanılmıştır Bu hesaplar, sertifikasyon test ortamında üyelerimiz için tanımlanacaktır Üyelerimizin testler sırasında, söz konusu dört hesabı aşağıdaki adımlarda belirtilen şekilde kullanmaları gerekmektedir BİAŞ tarafından hazırlanan mesaj adımları: Sıra No 1 2 Senaryo Üyenin 4 numaralı hesabının risk durumu 3(riskli) e çekilir F_GARAN1215S0 sözleşmesi durdurulur MsgType [35] Symbol [55] Market SegmentID [1300] 3 Yeni alış emri girilir D 1215S0 CFAN 10 45 1 2 S 1 4 Yeni satış emri girilir D 1215S0 CFAN 500 46 2 2 S 1 5 Yeni satış emri girilir D 1215S0 CFAN 100 465 2 2 S 1 6 Farklı bir üyeden yeni satış emri girilir ve 1 nolu emirle işlem olur D 1215S0 CFAN 10 45 2 2 0 1 7 8 Yeni alış emri girilir ve 2 nolu emirle işlem olur OrderQty [38] D 1215S0 CFAN 100 1 1 1 1 3 nolu emir değiştirilir G 1215S0 CFAN 100 465 2 2 0 1 Price [44] Side [54] OrderType [40] TimeInForce [59] Account [1] 4 9 2 nolu emir iptal edilir F 1215S0 CFAN 500 46 2 2 S 1 10 Riskli olan hesaba emir girilir D 1215S0 CFAN 100 43 1 2 0 4 11 Riskli olan hesabın emri Takasbank tarafından reddedilir 12 Yeni alış emri girilir D 1215S0 CFAN 150 43 1 2 0 1 13 Yeni alış emri girilir D 1215S0 CFAN 50 43 1 2 0 1 8
Sıra No Senaryo MsgType [35] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrderType [40] TimeInForce [59] Account [1] 14 1 nolu emrin hesap numarası hatalı işlem düzeltmesiyle 2 olarak düzeltilir 15 Riskli olan hesaba emir girilir D 1215S0 CFAN 100 43 1 2 0 4 16 Riskli olan hesabın emri Takasbank tarafından onaylanır 17 1 nolu işlem iptal edilir Üyenin 1 nolu işlem hesabı ile 2 nolu işlem hesabı arasında 1 ve 1215S0 CFOZ 3000 42 özel emir girilerek işleme 2 18 dönüştürülür 9
3 EMİR İLETİM VE FONKSİYONLARI TESTİ Lütfen HeartbtInt süresini 300 olarak ayarlayarak sisteme tekrar bağlanınız 31 TEST ORTAMINDAKİ MEVCUT BİLGİLERİN İNDİRİLMESİ İşlem sisteminin mevcut durumuna ulaşmak için sistemde oluşan emirler, işlemler ve bilgi mesajlarını indirmeniz gerekmektedir Aşağıdaki tabloda mesajların indirilmesi için gerekli bilgiler yer almaktadır Lütfen tablolarda verilen bilgileri dikkate alarak sistemdeki mevcut emirleri, işlemleri ve bilgi mesajlarını indiriniz Her bir mesaj girişi sonrasında Sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No Senaryo MsgType ApplBegSeqNum ApplReqID ApplReqType NewsCategory OrderID TrdMatchID Sonuç 1 2 3 Emir numarası ve ApplBegSeqNum alanına 0 değeri girerek emir indirme talebinizi gönderiniz BW 0 1 0 0 İşlem numarası ve ApplBegSeqNum alanına 0 değeri girerek işlem indirme talebinizi gönderiniz BW 0 2 0 0 ApplBegSeqNum alanına 0 değeri girerek genel yayın mesajı indirme talebinizi gönderiniz BW 0 3 0 4 2015080300000001 2015080300000002 2015080300000003 2015080300000005 2015080300000006 2015080300000007 2015080300000008 2015080300000009 2015080300000010 2015080300000011 2015080300000012 News(EndOfOrder) ER(Trade) - 2015080300000001 ER(Trade) - 2015080300000005 ER(Trade) - 2015080300000002 ER(Trade) - 2015080300000010 ER(Trade) - 2015080300000011 ER(Trade) - 2015080300000013 ER(Trade) - 2015080300000014 News(EndOfTrade) News(Genel Yayın) News(Genel Yayın) News(Genel Yayın) News(EndOfBC) 10
32 MEVCUT EMİRLERLE İLGİLİ DEĞİŞİKLİKLER Aşağıdaki tabloda BİAŞ tarafından hazırlanan sertifikasyon ortamındaki mevcut emirlerin düzeltilmesi ve iptal edilmesi için gerekli bilgiler yer almaktadır Lütfen tablolarda verilen OrderID leri dikkate alarak emir düzeltme veya emir iptali mesajlarını giriniz Her bir mesaj girişi sonrasında sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No SENARYOLAR MsgType [35] OrderID Symbol (55) OrderQty(38) Price(44) Side(54) PositionEffect(77) SONUÇ 3 5 6 7 OrderID=2015080300000009 olan emrin miktarını 40 adete düşürerek emri değiştiriniz OrderID=2015080300000006 olan emrin fiyatını yükselterek emri değiştiriniz OrderID = 2015080300000008 olan emri iptal ediniz OrderID = 2015080300000016 olan emri iptal ediniz G G F F 2015080 3000000 09 2015080 3000000 06 F_COTE GE1215 S0 40 1 C F_COTE GE1215 S0 47 2 C 2015080 3000000 08 1 2015080 3000000 16 2 2015080300000015 ER(Order Short) - 2015080300000015 ER(Order Short) - 2015080300000009 2015080300000016 ER(Order Short) - 2015080300000016 ER(Order Short) - 2015080300000006 ER(Order Short) - 2015080300000008 ER(Order Short) - 2015080300000016 11
33 YENİ EMİR GİRİŞİ Aşağıdaki tabloda yeni emir girişi için gerekli bilgiler yer almaktadır Lütfen ClOrdID bazında tabloda yer alan bilgileri içeren emirleri giriniz Her bir emir girişi sonrasında sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] ExpireDate [432] PositionEffect [77] Account [1] Sonuç 8 D 1 9 D 2 10 D 3 11 D 4 12 D 5 1215S0 CFAN 300 1 1 7 C 1 1215S0 CFAN 80 1 1 4 C 1 1215S0 CFAN 70 1 K 3 C 1 1215S0 CFAN 250 2 K 3 C 1 1215S0 CFAN 150 1 K 1 4 1 45 C 1 ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) 2015080300000017 ER(Order Short) - 2015080300000017 2015080300000018 ER(Order Short) - 2015080300000018 2015080300000019 ER(Order Short) - 2015080300000015 ER(Order Short) - 2015080300000012 ER(Order Short) - 2015080300000019 ER(Trade) - 2015080300000015 ER(Trade) - 2015080300000019 ER(Trade) - 2015080300000012 ER(Trade) - 2015080300000019 2015080300000020 12
Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] ExpireDate [432] PositionEffect [77] Account [1] Sonuç 13 D 6 1215S0 CFAN 150 2 1 6 4 1 45 20151 230 C 1 2015080300000021 14 D 7 15 D 8 16 D 9 17 D 10 000S0 EOAN 150 1 1 6 4 1 789 20151 230 C 1 000S0 EOAN 200 1 K 1 C 1 000S0 EOAN 500 2 K 1 C 1 000S0 EOAN 2000 2 1 4 C 1 2015080300000022 2015080300000023 ER(Order Short) - 2015080300000023 2015080300000024 ER(Order Short) - 2015080300000024 2015080300000025 ER(Order Short) - 2015080300000025 18 D 19 D 20 D 21 D 22 D 11 12 13 14 15 000S0 EOAN 50 2 1 7 C 1 1215S0 CFAN 50 2 1 7 C 1 1215S0 CFAN 2000 2 K 4 C 1 1215S0 CFAN 500 2 K 1 4 1 45 C 1 1215S0 CFAN 10 45 1 2 S C 1 ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) 2015080300000026 ER(Order Short) - 2015080300000026 2015080300000027 2015080300000028 13
Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] ExpireDate [432] PositionEffect [77] Account [1] Sonuç 23 D 24 D 25 D 26 D 27 D 28 D 29 D 30 D 31 D 32 D 33 D 16 17 18 19 20 21 22 23 24 25 26 1215S0 CFAN 10 45 1 2 6 20151 230 C 1 1215S0 CFAN 200 44 1 2 S 4 1 44 C 1 1215S0 CFAN 100 45 1 2 6 4 1 45 20151 230 C 1 1215S0 CFAN 50 455 1 2 0 C 1 1215S0 CFAN 500 46 1 2 3 C 1 1215S0 CFAN 1000 46 2 2 S C 2 1215S0 CFAN 100 465 2 2 6 1215S0 CFAN 25 465 2 2 6 20151 230 C 2 20151 230 C 2 1215S0 CFAN 60 484 2 2 3 C 2 1215S0 CFAN 1000 47 2 2 S C 2 1215S0 CFAN 250 49 2 2 3 C 2 2015080300000029 2015080300000030 2015080300000031 2015080300000032 2015080300000033 ER(Order Short) - 2015080300000033 2015080300000034 2015080300000035 2015080300000036 2015080300000037 ER(Order Short) - 2015080300000037 2015080300000038 2015080300000039 ER(Order Short) - 2015080300000039 14
Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] ExpireDate [432] PositionEffect [77] Account [1] Sonuç 34 D 27 000S0 EOAN 100 898 1 2 S C 3 2015080300000040 35 D 28 000S0 EOAN 1000 899 1 2 6 20151 230 C 3 2015080300000041 36 D 37 D 38 D 39 D 29 30 31 32 000S0 EOAN 10 899 1 2 S 4 1 89 C 3 000S0 EOAN 250 901 2 2 3 C 2 000S0 EOAN 500 9 2 2 6 20151 230 C 2 000S0 EOAN 500 1 1 S C 4 2015080300000042 2015080300000043 ER(Order Short) - 2015080300000043 2015080300000044 ER(Reject) (ERROR: Bu seans ve riskli saklama hesabı için geçersiz emir metodu) 40 D 33 F_GARAN 1215S0 FANA 100 1 1 6 20151 230 C 1 ER(Reject) (ERROR: Sözleşme işlemleri durduruldu) 41 D 34 000S0 EOAN 500 1 1 2 0 C 4 2015080300000045 15
34 EMİR DEĞİŞTİRME Aşağıdaki tabloda emir değişikliklerine ilişkin mesajlar yer almaktadır Yeni emir girişi tablosunda yer alan ve ClOrdID bazında sisteme girilen emirler üzerinde değişiklikler yapılacaktır Yapılacak değişikliklerin senaryosunu ve tabloda yer alan değişiklik yapılacak alanları dikkate alarak emir değiştirme mesajlarını giriniz Her bir emir değişiklik girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No 42 43 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki tarihli alış limit emrini piyasa emrine çeviriniz (ClOrdID=16) 1215S0 sözleşmesine girmiş olduğunuz 150 adetlik şarta bağlı tarihli satış piyasa emrinin emir türünü en iyi fiyatlı emre çeviriniz (ClOrdID=6) MsgType G G OrderID (37) 201508 030000 0029 201508 030000 0021 OrigClOrdID (41) 16 6 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 1 1 C F_COTE GE1215 S0 2 K C SONUÇ News(Genel Yayın) News(Genel Yayın) News(Genel Yayın) ER(Order Long) 2015080300000046 2015080300000047 2015080300000048 2015080300000049 ER(Order Short) - 2015080300000046 ER(Order Short) - 2015080300000030 ER(Order Short) - 2015080300000048 ER(Order Short) - 2015080300000034 ER(Order Short) - 2015080300000020 ER(Order Short) - 2015080300000031 ER(Order Short) - 2015080300000029 ER(Trade) - 2015080300000046 ER(Trade) - 2015080300000034 ER(Trade) - 2015080300000048 ER(Trade) - 2015080300000034 ER(Order Long) 2015080300000050 2015080300000050 2015080300000021 16
Sıra No 44 45 46 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 200 adetlik 44 fiyat seviyesindeki seanslık alış limit emrinin miktarını 150 adete, fiyatını ise 435 seviyesine çekiniz (ClOrdID=17 Bu emir Sıra No=42 olan adımda yapılan işlem sonucunda aktive olduğu için 2015080300000047 numaralı yeni emir oluşmuştur Bu adımda yapılacak değişiklik aktivasyon sonrasında oluşan 2015080300000047 nolu yeni emre uygulanmalıdır) 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki seanslık alış limit emrinin fiyatını 46 seviyesine yükseltiniz (ClOrdID=15) 1215S0 sözleşmesine girmiş olduğunuz 25 adetlik 465 fiyat seviyesindeki tarihli satış limit emrin emir türünü Kalanı İptal Et (KİE) olarak değiştiriniz (ClOrdID=23) MsgType G G G OrderID (37) 201508 030000 0047 201508 030000 0028 201508 030000 0036 OrigClOrdID (41) 15 23 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 150 435 1 C F_COTE GE1215 S0 46 1 C F_COTE GE1215 S0 2 3 C SONUÇ ER(Order Long) 2015080300000051 2015080300000051 2015080300000047 ER(Order Long) 2015080300000052 2015080300000052 2015080300000034 2015080300000028 ER(Trade) 2015080300000052 ER(Trade) 2015080300000034 OrderCancelReject (ERROR: Düzeltilmemesi gereken emir yöntemleri değiştirildi) - 2015080300000036 17
Sıra No 47 48 49 SENARYOLAR 000S0 sözleşmesine girmiş olduğunuz 100 adetlik 898 fiyat seviyesindeki seanslık alış limit emrinin miktarını 50 adede, fiyatını 895 seviyesine çekiniz (ClOrdID=27) 000S0 sözleşmesine girmiş olduğunuz 1000 adetlik 899 fiyat seviyesindeki tarihli alış limit emrin fiyatını 9 seviyesine çekiniz (ClOrdID=28) 000S0 sözleşmesine girmiş olduğunuz 1000 adetlik 9 fiyat seviyesindeki tarihli alış limit emrini emir süresini değiştirerek günlük limit emre dönüştürünüz (ClOrdID=28 Bu değişiklik Sıra No=48 olan adımda yapılan işlem sonucunda oluşan 2015080300000054 nolu yeni emre uygulanmalıdır) MsgType G G G OrderID (37) 201508 030000 0040 201508 030000 0041 201508 030000 0054 OrigClOrdID (41) 27 28 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) O_XU03 0E1215 C96000 S0 50 895 1 C O_XU03 0E1215 C96000 S0 9 1 C O_XU03 0E1215 C96000 S0 1 0 C SONUÇ ER(Order Long) 2015080300000053 2015080300000053 2015080300000040 News(Genel Yayın) News(Genel Yayın) ER(Order Long) 2015080300000054 ER(Order Long) 2015080300000055 ER(Order Long) 2015080300000056 2015080300000054 2015080300000044 2015080300000055 2015080300000022 2015080300000042 2015080300000041 ER(Trade) 2015080300000054 ER(Trade) 2015080300000044 ER(Order Long) 2015080300000057 2015080300000057 2015080300000054 18
Sıra No 50 51 52 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 500 adetlik 45 aktivasyon fiyatlı şarta bağlı, iptale kadar geçerli (IKG) en iyi fiyatlı satış emrinin aktivasyon fiyatını 46 seviyesine yükseltiniz (ClOrdID=14) 1215S0 sözleşmesine girmiş olduğunuz 1000 adetlik 46 fiyat seviyesindeki seanslık satış limit emrinin fiyatını 465 seviyesine, emir süresini değiştirerek iptale kadar geçerli (İKG) limit emre dönüştürünüz (ClOrdID=21) 000S0 sözleşmesine girmiş olduğunuz 1 fiyatlı 500 adet alış emrin (kontrolde bekleyen emir) fiyatını 12 ye dönüştürünüz (ClOrdID=34) MsgType G G G OrderID (37) 201508 030000 0027 201508 030000 0034 201508 030000 0045 OrigClOrdID (41) 14 21 34 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 2 4 1 46 C F_COTE GE1215 S0 465 2 1 C O_XU03 0E1215 C96000 S0 12 1 C SONUÇ ER(Order Long) 2015080300000058 2015080300000058 2015080300000027 ER(Order Long) 2015080300000059 2015080300000059 2015080300000034 OrderCancelReject (ERROR: Emir düzeltilemiyor; emir, açık emir değil) - 2015080300000045 19
35 İLAVE EMİR GİRİŞLERİ VE GERÇEKLEŞEN İŞLEMLER Aşağıdaki tabloda yeni emir girişi için gerekli bilgiler yer almaktadır ClOrdID bazında belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren emirleri giriniz Her bir emir girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No 59 60 61 62 63 SENARYOLAR MsgType ClOrdID(11) AAAN pazarında 1215S0 sözleşmesini 100 adet ve 465 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 35 F_EURUSD1215S0 sözleşmesinin CFAN pazarında 100 adet ve 465 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 36 DFAN pazarında 1215S0 sözleşmesini 10 adet ve 45 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 37 CFAN pazarında 1215S0 sözleşmesini 10 adet ve 10 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 38 EOAN pazarında 000S0 sözleşmesini 100 adet ve 895 fiyat seviyesinden D 39 Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) F_COTEG E1215S0 AAAN 100 465 2 2 S C 1 F_EURUS D1215S0 CFAN 100 465 2 2 S C 1 F_COTEG E1215S0 DFAN 10 45 2 2 S C 1 F_COTEG E1215S0 CFAN 10 10 2 2 S C 2 000S0 EOAN 100 895 2 2 0 C 2 SONUÇ Reject (Value is incorrect (out of range) for this tag) BusinessMessageReject (Security does not belong to the specified board) BusinessMessageReject (Security does not belong to the specified board) ER(Reject) (ERROR: 1215S0 Sözleşmesinde, emir fiyat marjları dışındadır: üst limit 5025, alt limit 4105) ER(Order Long) 2015080300000060 2015080300000057 20
Sıra No 64 65 66 SENARYOLAR günlük satış limit emir girişini yapınız MsgType ClOrdID(11) CFAN pazarında 1215S0 sözleşmesini 200 adet ve emir türünü iptale kadar geçerli alış piyasa emri girişini yapınız D 40 EOAN pazarında 000S0 sözleşmesini 1000 adet ve günlük satış piyasa emri girişini yapınız D 41 CFAN pazarında 1215S0 sözleşmesini 100 adet ve 47 fiyat seviyesinden emir türünü iptale kadar D 42 Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) F_COTEG E1215S0 CFAN 200 1 1 1 C 1 000S0 EOAN 1000 2 1 0 C 2 F_COTEG E1215S0 CFAN 100 47 1 2 1 O 2 SONUÇ 2015080300000060 ER(Trade) 2015080300000057 ER(Trade) 2015080300000060 ER(Order Long) 2015080300000061 2015080300000035 2015080300000036 2015080300000061 2015080300000059 ER(Trade) 2015080300000061 ER(Trade) 2015080300000035 ER(Trade) 2015080300000061 ER(Trade) 2015080300000036 ER(Trade) 2015080300000061 ER(Trade) 2015080300000059 ER(Order Long) 2015080300000062 ER(Order Long) 2015080300000063 2015080300000057 2015080300000056 2015080300000053 2015080300000062 ER(Trade) 2015080300000057 ER(Trade) 2015080300000062 ER(Trade) 2015080300000056 ER(Trade) 2015080300000062 ER(Trade) 2015080300000053 ER(Trade) 2015080300000062 ER(Order Long) 2015080300000064 2015080300000064 21
Sıra No SENARYOLAR geçerli alış limit emrini pozisyon kapatıcı olarak (PositionEffect = Open) girişini yapınız MsgType ClOrdID(11) Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) SONUÇ 2015080300000059 ER(Trade) 2015080300000064 ER(Trade) 2015080300000059 67 CFAN pazarında 1215S0 sözleşmesini 100 adet ve 47 fiyat seviyesinden emir türünü iptale kadar geçerli alış limit emri giriniz D 43 F_COTEG E1215S0 CFAN 100 47 1 2 1 C 2 ER(Order Long) 2015080300000065 2015080300000065 2015080300000059 ER(Trade) 2015080300000065 ER(Trade) 2015080300000059 22
36 EMİR İPTALİ Aşağıda tabloda emir girişi yapılmış olan emirlerin iptalleri yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren emir iptallerini giriniz Her bir emir iptali girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No 68 69 70 71 SENARYOLAR CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 50 adetlik 455 fiyat seviyesinden günlük alış limit emri iptal ediniz (ClOrdID=19) EOAN pazarında 000S0 sözleşmesine girmiş olduğunuz 1000 adet ve günlük satış piyasa emir girişini iptal ediniz (ClOrdID=41 Bu emir piyasa emri olduğu için 2015080300000063 nolu kalan emir iptal edilmelidir) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 1000 adetlik 46 fiyat seviyesindeki seanslık satış limit emri İptal ediniz (ClOrdID=21 Bu iptal işlemi Sıra No=51 olan adımda yapılan işlem sonucunda oluşan 2015080300000059 nolu yeni emre uygulanmalıdır) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 150 adetlik şarta bağlı tarihli piyasa satış emrini iptal ediniz (ClOrdID=6 Bu iptal işlemi Sıra No=43 olan adımda yapılan işlem sonucunda oluşan 2015080300000050 nolu yeni emre uygulanmalıdır) MsgType [35] F F F F OrderID 2015080300000 032 2015080300000 063 2015080300000 059 2015080300000 050 ClOrdID Side 19 1 2 2 2 SONUÇ 2015080300000032 2015080300000063 2015080300000059 2015080300000050 23
Sıra No 72 73 74 SENARYOLAR CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 45 fiyat seviyesindeki seanslık limit alış emrini iptal ediniz (ClOrdID=15) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 60 adetlik 484 fiyat seviyesindeki kalanı iptal et (KİE) emir türündeki limit satış emrini iptal ediniz (ClOrdID=24) 2015080300001000 nolu (sistemde olmayan bir emir ) alış emrini iptal ediniz MsgType [35] F F F OrderID 2015080300000 028 2015080300000 037 2015080300001 000 ClOrdID Side 15 1 24 2 1 SONUÇ OrderCancelReject (ERROR: İptal edilecek emir bulunamadı) - 2015080300000028 OrderCancelReject (ERROR: İptal edilecek emir bulunamadı) - 2015080300000037 OrderCancelReject (ERROR: Geçersiz emir numarası) 24
37 MESAJ İNDİRME Aşağıda tabloda emir, işlem, genel yayın ve sistem uyarısı mesajlarını indirme mesajları yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren indirme mesajlarını giriniz Her bir mesaj indirme sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No Senaryo MsgType [35] ApplBegSeqNum [1182] ApplReqID [1346] ApplReqType [1347] NewsCategory [1473] OrderID [37] TrdMatchID [880] Sonuç 83 84 85 86 Emir numarası ve ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek emir indirme talebinizi gönderiniz BW 1000 1 0 İşlem numarası ve ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek İşlem indirme 20150 80300 00000 1 News(EndOfOrder) talebinizi gönderiniz BW 1000 2 0 1 News(EndOfTrade) ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek genel yayın mesajı indirme talebinizi gönderiniz BW 1000 3 0 4 News(EndOfBC) ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek sistem uyarıları indirme talebinizi gönderiniz BW 1000 4 0 5 News(EndOfAlert) 87 Başka bir üyeye ait bir emrin OrderID si ile emir indirme talebi gönderiniz BW 1 5 0 20150 80300 00000 4 BusinessMessageReject (Unknown ID) 25
Sıra No Senaryo MsgType [35] ApplBegSeqNum [1182] ApplReqID [1346] ApplReqType [1347] NewsCategory [1473] OrderID [37] TrdMatchID [880] Sonuç 88 89 90 91 NewsCategory alanına 4 değeri (tüm genel yayın mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 6 0 4 NewsCategory alanına 5 değeri (tüm sistem uyarıları mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 7 0 5 ApplBegSeqNum alanına 0 ve OrderID alanına ilk girilen emrin numarası (ilk emirden sonraki tüm yeni emirlerin, değişikliklerin gönderilmesi için) girilerek bir ApplicationMessageRequ est emir indirme mesajı gönderiniz BW 0 8 0 20150 80300 00000 1 ApplBegSeqNum alanına 0 ve TrdMatchID alanına ilk oluşan işlemin numarası (ilk işlemden sonraki tüm işlemleringönderilmesi için) girilerek bir ApplicationMessageRequ est işlem indirme mesajı gönderiniz BW 0 9 0 1 News(Genel Yayın) News(Genel Yayın) News(Genel Yayın) News(EndOfBC) News(Sistem Uyarıları) News(Sistem Uyarıları) News(Sistem Uyarıları) News(EndOfAlert) ER(Order Long) ER (Order Long) ER (Order Short) ER (Order Short) News(EndOfOrder) ER(Trade) ER(Trade) News(EndOfTrade) 26
TEST SONUCU: Aracı Kurum Unvanı Teste Katılan Teknik Yetkili Teste Katılan Piyasa Yetkilisi Teste Katılan Borsa Yetkilisi Genel Değerlendirme (Bu bölüm Borsa İstanbul AŞ yetkilileri tarafından doldurulacaktır) Not: VİOPFIX API Üye Yazılımı Sertifikasyon Programı sürecini başarıyla tamamladığınız takdirde, bu dokümanının 4 ve 27 sayfalarının ıslak imza ve kaşe, diğer sayfalarının paraf atılarak tarafımıza iletilmesi beklenmektedir 27