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

Kendi gridbotumu yapıyorum.  Gün sonunda stratejiyi duraklatıyorum.  Ertesi gün, önceki günden kalan satış emirlerinin gönderilmesini nasıl sağlayabilirim.  

Başka bir sorum da şu; strateji duraklatığında çalışan bir fonksiyon var mı?  OnStopped benzeri, OnPause gibi.
Algoritmik Trading kategorisinde (43 puan) tarafından | 102 kez görüntülendi

1 cevap

0 beğenilme 0 beğenilmeme
En İyi Cevap

Merhaba,

Gönderilen tüm emirleri bir dictionary tutup ihtiyaç duyulduğunda bu dictionary ulaşıp emir göndermeyi deneyebilirsiniz. burada çok fazla kontrol mekanizması gerekebilir dikkat olunuz.

strateji durdur ya da duraklatıldığında OnStopped() metodu tetiklenir burada durdur mu yoksa duraklatılmamı olup olmadığını anlamak için IsPaused değişkenini aşağıdaki örnekte olduğu gibi kullanabilirsiniz.

public override void OnStopped()
{
    if (IsPaused)
    {
        Debug("Strateji Duraklatıldı.");
    }else
    {
        Debug("Strateji Durduruldu");
    }
}

 

(16,102 puan) tarafından
tarafından seçilmiş
0 0
@Kripex Tekrar merhaba,

dictionary ye ertesi gün nasıl erişeceğim?  Ertesi gün OnInit içinden çağırınca boş geliyor.  

Bir de OnInitCompleted i soracağım.  Hangi durumlarda kullanılıyor, ne zaman ihtiyaç olabiliyor.
1 0

Merhaba,

Stratejiler durdur/duraklat yapıldığında stratejide tüm değişkenlerin değerleri sıfırlanır değişken değerlerini raporda saklamak için RestoreLastValueOnResume özelliğini kullanmanız gerekir.

[RestoreLastValueOnResume]
Dictionary<string,string> Emirler=new Dictionary<string,string>();

OnInitCompleted  metodu strateji çalıştırıldığında OnInit() metodundan hemen sonra bir kez tetiklenir burada stratejinin işleyişine göre bir kez çalışmasını istediğimiz yapılar varsa burada kurgulanabilir

9,015 soru
8,970 cevap
4,995 yorum
24,068 kullanıcı