0 beğenilme 0 beğenilmeme
794 kez görüntülendi
Dışarıdan Emir Gönderim Api'si ile çalışma yapıyorum. limit emirde herhangi bir problemim yok. Ancak piyasa emri gönderdiğimde,emir aracı kurumuma iletiliyor ve direkt olarak iptal ediliyor. Aracı kurum üzerinde mesajları kontrol ettiğimde "İptal edildi (0|REJ- <-420027> : Market-price orders must be of type Fill or Kill or Fill and Kill in this trading state.)" şeklinde bir hata alıyorum. Emir gönderimi sırasında TimeInForce parametresi için 0 ve 4 parametrelerini göndermeyi denedim. 0 gönderdiğimde socket bağlantısı donuyor, cevap alamıyorum. 4 gönderdiğimde ise yine emir iptal ediliyor.Aracı kurum olarak Osmanlı Yatırım kullanıyorum. yardımınızı rica ederim
Diğer kategorisinde (12 puan) tarafından | 794 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhaba,

Geçerlilik tipini gönderdiğiniz emre uygun girmelisiniz. LMT emir için geçerlilik tipi Day, PYS emir içinde ImmediateOrCancel parametresini kullanmalısınız.

(15,892 puan) tarafından
tarafından düzenlendi
0 0

LİMİT EMİR İÇİN:

import socket

clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);

clientSocket.connect(("127.0.0.1", 18890));

data = "{" \
       "\"AccountId\":\"5938\"," \
       "\"BrokageId\":\"80\"," \
       "\"ClientOrderId\":\"Kripex\"," \
       "\"Symbol\":\"ASELS\"," \
       "\"Price\":45," \
       "\"Quantity\":1," \
       "\"OrderSide\":1," \
       "\"OrderType\":\"2\"," \
       "\"IncludeAfterSession\":false," \
       "\"TimeInForce\":\"0\"," \
       "\"TransactionType\":\"1\"," \
       "\"ApiCommands\":3}"+ chr(11);
clientSocket.send(data.encode());

dataFromServer = clientSocket.recv(5001);
print(dataFromServer.decode());

PİYASA EMRİ İÇİN:

import socket

clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM);

clientSocket.connect(("127.0.0.1", 18890));

data = "{" \
       "\"AccountId\":\"5938\"," \
       "\"BrokageId\":\"80\"," \
       "\"ClientOrderId\":\"Kripex\"," \
       "\"Symbol\":\"ASELS\"," \
       "\"Price\":45," \
       "\"Quantity\":1," \
       "\"OrderSide\":1," \
       "\"OrderType\":\"1\"," \
       "\"IncludeAfterSession\":false," \
       "\"TimeInForce\":\"0\"," \
       "\"TransactionType\":\"1\"," \
       "\"ApiCommands\":3}"+ chr(11);
clientSocket.send(data.encode());

dataFromServer = clientSocket.recv(5001);
print(dataFromServer.decode());

İki kod arasındaki tek fark OrderType parametresin değeri. Limit emir için olan kod çalışıyor ve alım yapıyor.

Piyasa emri için olan kod hata veriyor ve alım yapmıyor.

hata: (0|REJ- <-420027> : Market-price orders must be of type Fill or Kill or Fill and Kill in this trading state.) 

8,636 soru
8,590 cevap
4,821 yorum
19,785 kullanıcı