Bir üst düzey sözlüğün 3 temel sıralama türüne sahip olduğu bir sipariş defteri veri yapısı oluşturmaya çalışıyorum; bu türlerin her biri bir teklife ve sorma yüzüne sahiptir ve her bir tarafın her bir satır için bir tablo listesi vardır. Örneğin, Google stoğu için tür1'in tüm sipariş isteklerini almak istiyorsam, numaralı kitabı [`orderType1] [` ask] [`GOOG] olarak adlandırırdım. Aşağıdaki kullanarak bu uygulamaya:İç içe geçmiş bir sözlük içindeki bir tablodaki girişler nasıl güncellenir?
bookTemplate: ([]orderID:`int$();date:"d"$();time:`time$();sym:`$();side:`$();
orderType:`$();price:`float$();quantity:`int$());
bookDict:(1#`)!enlist`orderID xkey bookTemplate;
book: `orderType1`orderType2`orderType3 ! (3# enlist(`ask`bid!(2# enlist bookDict)));
kitabı kullanarak veri alma [ `orderType1] [` sormak] [ `senedi] iyi çalışıyor gibi görünüyor. Geçen sorgu yürütme
testorder:`orderID`date`time`sym`side`orderType`price`quantity!(111111111;.z.D;.z.T;
`GOOG;`ask;`orderType1;100.0f;123);
book[`orderType1][`ask][`GOOG],:testorder;
'verir hata atamak: Belirli bir sipariş defteri örneğin yeni düzen eklemeye çalıştığınızda sorun görünür. Sebebi nedir? Nasıl çözeceksin?
Çok teşekkürler. Anahtarlı bir tabloda neden (virgül) kullanılmamasının nedenini açıklayabilir misiniz? Öyle görünüyor ki. [\ 'Kitap; \' orderType1 \ 'sor \' GOOG;, testorder] ** iyi çalışıyor (yani sipariş ID'si tabloda yoksa ve mevcut girişi başka bir şekilde güncelliyorsa yeni girişler eklemek gibi). Aynı zamanda çok daha hızlı (100000 sipariş ve ~ 100s siparişleri eklemek için ~ 7s). Bunu da bağlı olduğunuz FD belgesinde yapıyorlar (ör. Alttaki tablonun fiyatla düzenlendiği updBySymSide2). – dhk
Haklısın, kötüyüm. Testlerimde başarısız olduğunu düşündüm. Cevabımı düzenleyeceğim teşekkürler – terrylynch