Matriks Destek ve Yardım Platformu

Matriks Ürünleri ile ilgili tüm sorularınız için bizlere buradan ulaşabilirsiniz. Daha önce sorulan soruları ve verilen cevapları ilgili sekmelerden ve arama üzerinden inceleyebilirsiniz. Sağ taraftaki kategoriler üzerinden İlgilendiğiniz özelliklerle ilgili soruları filtreleyebilirsiniz. Soru ve cevapları sosyal medyada paylaşabilirsiniz. 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.

0

Saatlik periyotta çalışan stratejide saat 18 de kapanan barda verilen SendMarketOrder() emrinin iptal edilmesi hakkında

Soruldu
Görüntülenme
1.434 görüntülenme
Durum
Cevaplandı
Merhabalar, öncelikle emeklerinizden ve ortaya çıkardığınız bu üründen dolayı tüm matriks ekibini tebrik ediyorum.

Benim sorum şu; Saatlik periyotta çalışan bir stratejide saat 18 de tetiklenme sonucu oluşan alım ve satımlarda  "SendMarketOrder()" emri iletiliyor fakat piyasdan emir olduğu için sanırım iptal ediliyor. Seans içinde sorun olmuyor ama saat 18 barının kapanmasından sonra tetiklendiği için emir iptali oluyor. Bunun çözümü konusunda yardımlarınızı talep ediyorum. Teşekkür Ederim.
Paylaş

Yorumlar (1)

  • ▲0
    Emir aracı kuruluş tarafından saat 18:00 dan sonra iptal ediliyor olabilir. Emir gönderildikten hemen sonra mı kontrol ediyorsunuz yoksa 15 20 dakika sonra mı?

1 Cevap

0
Merhaba,

Hisse tarafında, son barlar sorunludur. O bar içinde üretilen emir, sonraki bir fiyat hareketi olduğu anda gönderileceği için, kapanış seansının bitiminde gönderilir.

Bu durumda, eğer alıcılar fazla ise, emriniz pasife kalacak ya da iptal edilecektir.

Buna pratik 2 çözümdem birisi şudur:

Emrin geçici sinyal ile 18 barı kapanmadan biraz önce gönderilmesi ya da, sabaha bırakılacak iekilde zamansal sınır konulması.

Kod yazarak halledilmesi gerektiği için, zaman alacak bir işlevdir.

Siz, dilerseniz üzerinde çalışın.

Arkadaşlar da, örnek bir strateji hazırlayacaklar.

İyi çalışmalar
BağlantıBayraklailhan69Matriks Destek14.380

Yorumlar (4)

  • ▲0
    Cevabınız için teşekkür ederim, Peki gün boyu saat başı alınan sinyal ile işlem yapılıyor iken saat 17:55 de geçici sinyal ile bir emri göndermek istersem ek olarak nasıl bir kod yazmam gerekir.
  • ▲2

    Strateji içinde değişken tanımlamaların olduğu bölüme:

    bool isFired = false;

    OnInit bloğu içine:

    SetTimerInterval(10); // **** Timer 10 saniyelik periyotlarda tetikleniyor.

    OnTimer bloğu:

    public override void OnTimer()
    {
        if (!isFired && DateTime.Now.Hour == 17 && DateTime.Now.Minute >= 55) {
            // 17:55'ten sonra tetiklenir.
            SendMarketOrder(Symbol, 1, OrderSide.Buy);
            isFired = true;
        }
    }

    Strateji her gün durdurulup çalıştırılıyor ise uygundur. Backtest yapılamaz.

    Açıkçası üzerine biraz daha düşülürse seans kapanmadan 5-10 saniye öncesine kadar iletim sağlanabilir.

  • ▲2

    Cevap için teşekkürler. Programı çok kasmak istemiyorum Timer ile. Fakat bu gün kapanışta çözümün aslında çok basit olduğunu gördüm . saat 18 den sonraki alım ve satımları

    SendMarketOrder(HisseAdi, Position, (OrderSide.Buy));

    Yerine 

    SendLimitOrder(HisseAdi, Position, (OrderSide.Buy), HisseninAnlikFiyati);

    Şeklinde gönderildiğinde işlemde sorun çıkmıyor. 

    SendMarketOrder piyasadan gönderdiği için  kapanış tavan fiyatında kalıp iptal ediliyordu.

  • ▲0
    Merhaba, bu çözüm sorunu çözdü mü? Bu satır haricinde anlık fiyat vs için kod içine başka ne yazmalıyız?

Cevabınız

Cevap yazmak için giriş yapın.Giriş yapKayıt ol