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

Örneğin algo ile robot kurduk, al ile başla emirleri sıralı gönder dedik. robot xxxx hissesinden alım yaptı. kagıt portfoyumuz de . ertesi gün tekrar programı baslattık , yıne xxxx kagıdında çalışmasını ıstıyoruz robotun ama bu sefer elimizde ki lot kadar sat ile baslamasını ıstediğimizde , yeni den algo dan emır mı yazmamız lazım yoksa bır once kı al ıle baslayan algoyu calıstırdıgımız da bu sefer sat olarak takıp eder mı ?

Tesekkur ederım
Algoritmik Trading kategorisinde (41 puan) tarafından | 349 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme

Merhabalar,

Bu durumu iki farklı şekilde inceleyebilirsiniz.

Robotu çalıştırdınız ve xx hissesini aldınız. Ertesi gün aynı robotu çalıştırıyorsunuz ve elinizde xx hissesi var. 

  • Bunlardan birincisi,

Ertesi gün kodu çalıştırmadan önce SAT KOMUTU İLE BAŞLATABİLİRSİNİZ.

Komut satırınızdaki, 

SendOrderSequential(true, Side.Buy) seçeneğini SendOrderSequential(true, Side.Sell) ile değiştirmelisiniz.

Konu ile alakalı lütfen aşağıdaki linki inceleyiniz.

https://destek.matriksdata.com/?qa=5332/emirleri-sirali-g%C3%B6nder-se%C3%A7imi-%C3%B6zellikleri-sonu%C3%A7lari

  • İkincisi ise,

Kodunuzdaki alış ve satış koşullarınızın içerisine stratejinin kaldığı pozisyonu takip eden bir kod satırı ekleyebilirsiniz.

if (Alış Koşulu && LastOrderSide.Obj != Side.Buy) ve 

if (Satış Koşulu && LastOrderSide.Obj != Side.Sell) olacak şekilde ekleme yapabilirsiniz.

 Örnek olması için aşağıya bir kod kesiti ekliyorum, lütfen inceleyiniz.

  if (CrossAbove(mov, mov2) && LastOrderSide.Obj!=Side.Buy)
 {
                                           
   SendMarketOrder(Symbol, BuyOrderQuantity, OrderSide.Buy);                                                        
                                               
   Debug("Alış Emri Gönderildi");
 }
 
  if (CrossBelow(mov, mov2) && LastOrderSide.Obj!=Side.Sell)
 {
                                               
                                             
   SendMarketOrder(Symbol, SellOrderQuantity*2, OrderSide.Sell);
                                               
   Debug("Satış Emri Gönderildi");
 }

İyi çalışmalar.

(11,059 puan) tarafından
8,635 soru
8,589 cevap
4,821 yorum
19,782 kullanıcı