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

Değişken periyotlu hareketli ortalama

Soruldu
Görüntülenme
1.713 görüntülenme
Durum
Cevaplandı
Merhabalar, Koşula bağlı olarak hareketli ortalamanın periyodunu bir değişkene atayıp, koşul ile kendini güncellemesini yapmaya çalışıyorum. Örnek olarak, Eğer MACD değeri 10 un üzerindeyse periyot = önceki periyot +1 değilse periyot = periyot - 1. Kod olarak çalıştırınca bilgisayar işlem yapmaya başladı sonra matriks dondu. Nasıl bir kod yazılmalı? Teşekkürler
Paylaş

1 Cevap

2
Merhaba. Maalesef bir değişkene, değişen bir değişken atayamazsınız. Periyodun bir bardan başka bara değişmesi (periyodun değişen bir değişken olması) kaotik bir durum oluşturur. Sürekli değişen bir geçmiş üzerine kurgu inşa etmeye çalışmak gibidir.

Şöyle ifade edebiliriz:

İndikatörler Oninit’te tanımlanır ve bu fonksiyon bir kere çalışır.

Bunu sürekli çalıştırmaya kalkışmak yapıyı kilitleyecektir.
BağlantıBayraklailhan69Matriks Destek14.380

Yorumlar (2)

  • ▲0
    Merhaba İlhan Bey,

    Anladığım kadarıyla basit şekilde yapılamıyor.

    Örnek olarak SMA değerini simüle etmek için aşağıdaki gibi bir kod yazdım ancak, Ref indikatörü için barData yazınca aşağıdaki hatayı veriyor. Nasıl işler hale getirebilirim?

    Ayrıca belli başlı çok genel olan indikatörlerin kodlarına ulaşabiliyor muyuz? EMA, VMA vb.

    error CS1503: 1 bağımsız değişkeni: 'Matriks.Engines.BarDataEventArgs' öğesinden 'Matriks.Symbols.ISymbolBarData' öğesine dönüştürülemiyor9217

     

    public override void OnDataUpdate(BarDataEventArgs barData)

    {

    if (stochasticFast.StochasticFastD.CurrentValue > UpLevel) dper= dper+1;

    if (stochasticFast.StochasticFastD.CurrentValue < DownLevel) dper= dper-1;

    var b=0;

    var a=0;

    for (var i = 0; i < dper; ++i)

    {

    a= dper - i;

    b= b + Ref(barData, OHLCType.Close, a);

     

    }
  • ▲0
    sanırım arada kaynadı son sorduğum kısım :)

Cevabınız

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