0 beğenilme 0 beğenilmeme
599 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 | 599 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,772 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.) 

7,832 soru
7,819 cevap
4,496 yorum
12,578 kullanıcı