0 beğenilme 0 beğenilmeme
863 kez görüntülendi
​
IDictionary<string, decimal> portfolio = GetPortfolio();
var positionflag = portfolio.ContainsKey(Symbol) && portfolio[Symbol] != 0;
if (positionflag) stock = portfolio[Symbol];

Debug($"hisse:{Symbol}, stock:{stock}");
foreach (var str in portfolio.Keys)
{
Debug($"str:{str}, {portfolio[str]}");
}

if (stock>0)
	SystemPosition = -1;
else if (stock<0)
	SystemPosition = 1;
else
	SystemPosition = 0;
Debug(Symbol + "^den elimizde " + stock + " var. SystemPosition = " + SystemPosition);
Click and drag to move
​

Robot'un bir şekilde durması veya kapanması sonucnda eldeki hisseleri ve miktarlarını tutmak için GetPortofolio() methodunu kullanmak istiyorum. Bu amaçlar yukarıda ki kodu OnInitComplated() içerisinde çalıştırıyorum ki robot ilk çalıştığında bilgileri çeksin ve pozisyonunu alsın. Robot çalışırken bir al işlemi sonrasında IQ kapatıyorum, tekrar açarak robotu çalıştırıyorum.

Görüldüğü şekilde Portföy'de 50 adet XBT olmasına rağmen srock miktarı 0 olarak geliyor. 

Nerede yanlışlık yapıyorum acaba.

 

 

Algoritmik Trading kategorisinde (77 puan) tarafından | 863 kez görüntülendi

1 cevap

1 beğenilme 0 beğenilmeme
Merhaba,

GetPortofolio() fonksiyonu strateji çalıştığı süre içerindeki portföyünüzü tutar.

Herhangi bir sebeple stratejiniz durduğu halde bazı değişkenlere ulaşmak isterseniz değişkenleri dosyaya yazıp okuyarak ulaşabilirsiniz.

Aşağıdaki linkten faydalanabilirsiniz.

https://destek.matriksdata.com/?qa=970/strateji-de%C4%9Fi%C5%9Fkenini-kal%C4%B1c%C4%B1-olarak-haf%C4%B1zada-tutmak&show=1002#a1002
(15,892 puan) tarafından
0 0
Hocam arkadaş sorusunda GetPortofolio() fonksiyonu iq kapandıktan sonra da hatırlasın demiyor, ilk açıldığında verileri çeksin sonra ben bu çektiği veriye göre işlem yapayım diyor.  Arkadaşın mantığı güzel, iq ilk açıldığında bakiyeyi sistemden çekebilirse problemi çözülecek.
0 0
Muhtemelen GetPortofolio() fonksiyonu strateji çalışmaya başladıktan sonra aktif session dahilindeki bilgileri barındırıyor. Bu sebeple mevcut portföy verisini sadece symbol okuyarak portföyden çekmiyor. Karışıklığı önlemek için mantıklı bir yaklaşım ancak yine de mevcut portföy dahilindeki verileri okuyabileceğimiz bir fonksiyon olması bu ihtiyaçları karşılayabilir.
0 0
Portföye gerçek zamanlı erişilmediği için emir ve veri güvenliği açısından direkt portföy verilerini algoda kullanmak mümkün olmuyor.

Manuel olarak strateji başlangıcında pozisyonlarınızı değişkende tutup strateji içerisinde kullanabilirsiniz.
Hoş geldiniz, Matriks Destek Platformu sizlere sorularınızın hızlıca cevaplanması için bir ortam sağlar. Sorduğunuz ve cevapladığınız soruların ve yorumlarınızın aldığı oylar üzerinden puan kazanırsınız. Puan sistemine bağlı kampanyamızla ücretsiz kullanım avantajlarından faydalanabilirsiniz.



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