0 beğenilme 0 beğenilmeme
24 kez görüntülendi
Merhaba,

Bir stratejide, ilgili strateji durdurulup tekrar çalıştırıldığında mevcut portföye göre pozisyon almasını istiyorum. Strateji kabaca şöyle işliyor. Örneğin garan için spottaki fiyata bakıp, yakın vadelide çift taraflı işlem yapıyor. parametreleri de "garan" ve "fgaran" şeklinde veriyorum.

Arka arkaya long veya short açmaması için kendim "position" parametresi ile pozisyonu takip ediyorum. Bu parametre "-1, 0, 1" değerleri arasında gidip geliyor. position eğer 1 ise long pozisyonum var, stop kontrolü yap diyorum. -1 ise tam ters mantık açıkta short pozisyon var, yeni short açma eldeki pozisyonun stopunu kontrol et diyorum. Eğer position 0 ise long veya short için kontrol yapıp ona göre pozisyon açtırıyorum.

Dolayısıyla en başta ben 5 konratlık pozisyonlar ile işlem yapmayı seçtiysem mesela algoritma "long(uzun)-short(stop)-long(uzun)-short(stop)-short(kısa)-long(stop)-..." gibi bir örüntü ile çift taraflı işlemler yapıyorum. Bu yüzden "long(uzun)-long(uzun)" veya "short(kısa)-short(kısa)" gibi arka arkaya aynı yönde birden fazla pozisyon açmamasını bir parametre ile kontrol ederek tutuyorum.

Sorunum ise, mesela elimde gün sonu short pozisyon var. Stratejiyi durdur dediğimde yukarıdaki algoritmaya göre son durumda "position = -1", ertesi gün stratejiyi tekrar devam ettirince ise "position = 0" yani initial hali ile başlıyorum. yani önceki pozisyonu tutamıyorum.

Şimdi benim sorunum aslında strateji tekrar çalıştırıldığında portföye bakıp; eğer portföyde vadeli kontrat pozisyonu varsa mesela yukarıdaki örnekte short pozisyon olmalı,  "position = 0" olarak çalışmaya başlama,"position = -1" olarak kaldığın yerden devam edebilmesini sağladığım noktada çözülüyor.

Bu noktada bir öneriniz olur mu?
önce Algoritmik Trading kategorisinde (12 puan) tarafından | 24 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,
Duraklat/devam ettir işlemlerinde portföy verilerini / eldeki açık olan pozisyona veya stratejide lot takibi yapan bir değişkeni kontrol ettirmeniz gerekir. Position değişkenine, RestoreLastValueOnResume özelliğini dahil ettiğiniz takdirde değişkenin son değeri raporda saklanacaktır. Aşağıdaki bağlantıyı ayrıca inceleyiniz.
https://iqyardim.matriksdata.com/docs/matriksiq-kullanim-kilavuzu/algotrader/degisken-ve-parametre-tanimlama/


Stratejinin tamamlanması aşaması sonrasında kontrolleri yapabilirsiniz. Örnek kod blokları ve açıklamaları;

var portfoy = GetRealPositions(); //portfoy detay
var portAdet = portfoy[Symbol1].QtyNet; //net lot
var yon = portfoy[Symbol1].Side.Obj; //işlem yönü

var adetSorgu = portAdet > 0? "pozitif" : "negatif"; //poz adedi
var yonSorgu = yon == Side.Buy? "alda":"satta"; //poz yönü

İyi çalışmalar dileriz.

 

önce (5,715 puan) tarafından
9,895 soru
9,868 cevap
5,320 yorum
60,439 kullanıcı
Codi