Artan

3,63 10 18:10
15,73 10 18:10
73,80 9.99 18:10
99,10 9.99 18:10
131,00 9.99 18:10
Artan Hisseler

Azalan

208,80 -10 18:10
86,05 -9.99 18:10
1,72 -9.95 18:10
5,02 -9.87 18:10
3,42 -8.8 18:10
Azalan Hisseler

İşlem

11.186.184.212,16 18:10
10.535.484.199,25 18:10
7.558.517.350,11 18:10
6.808.187.869,30 18:10
6.140.509.840,20 18:10
Tüm Hisseler
Arama sonucu : 4984 madde; 1 - 8 arası.

Konu: İDEAL veri terminalinde /Sistem/İndikatör/Robot

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. Sn. Erhan merhaba.

    Yapmaya çalıştığınız şeyi anlamak pek kolay değil ancak "Equity Curve Trading" (örnek makale) denen yaklaşımı uygulamaya çalıştığınızı düşünerek bir sistem yazdım:

    Kod:
    var P = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(P, "Kapanis");
    var sys = Sistem.SistemGetir("DEMA5_MAV5", "VIP'VIP-X030", Sistem.Periyot);
    if (sys == null) throw new ArgumentNullException("DEMA5_MAV5");
    sys.GetiriHesapla("01/01/2000", 0.0f);
    var sysCurve = sys.GetiriKZ;
    var sysCurveHH = Sistem.HHV(50, sysCurve);
    var sysCurveLL = Sistem.ListeFark(sysCurveHH, Sistem.Liste(3f));
    var sysCurveAvgFast = Sistem.MA(sysCurve, "Simple", 3);
    var sysCurveAvgSlow = Sistem.MA(sysCurve, "Simple", 100);
    var sysCurveDiff = Sistem.ListeFark(sysCurveAvgFast, sysCurveAvgSlow);
    var sysPos = "F";
    var take = 3.0f;
    var stop = 3.0f;
    var pos = "F";
    var posPx = 0f;
    
    for (var i = 1; i < P.Count; i++)
    {
        var close = C[i];
        if (sys.Yon[i] != "") sysPos = sys.Yon[i];
        //var buy = sysCurveDiff[i] > 0 && sysPos == "A"; 
        //var sell = sysCurveDiff[i] > 0 && sysPos == "S";
        var buy = sysCurve[i] >= sysCurveLL[i] && sys.Yon[i] == "A";
        var sell = sysCurve[i] >= sysCurveLL[i] && sys.Yon[i] == "S";
        //var buy = sysCurve[i] >= sysCurveHH[i] && sysPos == "A";
        //var sell = sysCurve[i] >= sysCurveHH[i] && sysPos == "S";
    
        var posProfit = pos == "A" ? close - posPx : pos == "S" ? posPx - close : 0f;
        var hasTakeProfit = posProfit >= take;
        var hasStopLoss = posProfit <= -stop;
        var flat = hasTakeProfit || hasStopLoss || sysCurve[i] <= sysCurveLL[i];
    
        if ((pos == "A" || pos == "S") && flat) { Sistem.Yon[i] = pos = "F"; posPx = 0f; }
        else if (pos != "A" && buy) { Sistem.Yon[i] = pos = "A"; posPx = close; }
        else if (pos != "S" && sell) { Sistem.Yon[i] = pos = "S"; posPx = close; }
    }
    
    Sistem.GetiriHesapla("01/01/2000", 0.0f);
    Sistem.Cizgiler[0].Deger = sysCurveHH;
    Sistem.Cizgiler[1].Deger = sysCurve;
    Sistem.Cizgiler[2].Deger = sysCurveLL;
    Sistem.Cizgiler[3].Deger = Sistem.GetiriKZ;
    Sistem.Cizgiler[4].Deger = Sistem.GetiriKZAy;
    Yukarıdaki kodda buy ve sell diye belirttiğim alanda birkaç kombinasyon denedim. Verilen sistemin getiri eğrisinin ortalaması yaklaşımını da test ettim ancak hiçbiri algoritmanın kendi getirisine yaklaşamadı.

    take, stop, HHV içinde kullandığım 50 barlık değer vs gibi parametrelerle oynayıp test edebilirsiniz. Örnek olarak kullandığım sistem "DEMA5_MAV5" zaten iDeal'in içinde olan bir sistem, dolayısıya kodun direk çalışmasını bekliyorum.

    Umarım istediğiniz yaklaşıma örnek olmuştur.

  2.  Alıntı Originally Posted by Caglar Yazıyı Oku
    Sn. Erhan merhaba.

    Yapmaya çalıştığınız şeyi anlamak pek kolay değil ancak "Equity Curve Trading" (örnek makale) denen yaklaşımı uygulamaya çalıştığınızı düşünerek bir sistem yazdım:

    Kod:
    var P = Sistem.GrafikVerileri;
    var C = Sistem.GrafikFiyatOku(P, "Kapanis");
    var sys = Sistem.SistemGetir("DEMA5_MAV5", "VIP'VIP-X030", Sistem.Periyot);
    if (sys == null) throw new ArgumentNullException("DEMA5_MAV5");
    sys.GetiriHesapla("01/01/2000", 0.0f);
    var sysCurve = sys.GetiriKZ;
    var sysCurveHH = Sistem.HHV(50, sysCurve);
    var sysCurveLL = Sistem.ListeFark(sysCurveHH, Sistem.Liste(3f));
    var sysCurveAvgFast = Sistem.MA(sysCurve, "Simple", 3);
    var sysCurveAvgSlow = Sistem.MA(sysCurve, "Simple", 100);
    var sysCurveDiff = Sistem.ListeFark(sysCurveAvgFast, sysCurveAvgSlow);
    var sysPos = "F";
    var take = 3.0f;
    var stop = 3.0f;
    var pos = "F";
    var posPx = 0f;
    
    for (var i = 1; i < P.Count; i++)
    {
        var close = C[i];
        if (sys.Yon[i] != "") sysPos = sys.Yon[i];
        //var buy = sysCurveDiff[i] > 0 && sysPos == "A"; 
        //var sell = sysCurveDiff[i] > 0 && sysPos == "S";
        var buy = sysCurve[i] >= sysCurveLL[i] && sys.Yon[i] == "A";
        var sell = sysCurve[i] >= sysCurveLL[i] && sys.Yon[i] == "S";
        //var buy = sysCurve[i] >= sysCurveHH[i] && sysPos == "A";
        //var sell = sysCurve[i] >= sysCurveHH[i] && sysPos == "S";
    
        var posProfit = pos == "A" ? close - posPx : pos == "S" ? posPx - close : 0f;
        var hasTakeProfit = posProfit >= take;
        var hasStopLoss = posProfit <= -stop;
        var flat = hasTakeProfit || hasStopLoss || sysCurve[i] <= sysCurveLL[i];
    
        if ((pos == "A" || pos == "S") && flat) { Sistem.Yon[i] = pos = "F"; posPx = 0f; }
        else if (pos != "A" && buy) { Sistem.Yon[i] = pos = "A"; posPx = close; }
        else if (pos != "S" && sell) { Sistem.Yon[i] = pos = "S"; posPx = close; }
    }
    
    Sistem.GetiriHesapla("01/01/2000", 0.0f);
    Sistem.Cizgiler[0].Deger = sysCurveHH;
    Sistem.Cizgiler[1].Deger = sysCurve;
    Sistem.Cizgiler[2].Deger = sysCurveLL;
    Sistem.Cizgiler[3].Deger = Sistem.GetiriKZ;
    Sistem.Cizgiler[4].Deger = Sistem.GetiriKZAy;
    Yukarıdaki kodda buy ve sell diye belirttiğim alanda birkaç kombinasyon denedim. Verilen sistemin getiri eğrisinin ortalaması yaklaşımını da test ettim ancak hiçbiri algoritmanın kendi getirisine yaklaşamadı.

    take, stop, HHV içinde kullandığım 50 barlık değer vs gibi parametrelerle oynayıp test edebilirsiniz. Örnek olarak kullandığım sistem "DEMA5_MAV5" zaten iDeal'in içinde olan bir sistem, dolayısıya kodun direk çalışmasını bekliyorum.

    Umarım istediğiniz yaklaşıma örnek olmuştur.
    kodun direk calişti kendi sistemi koydum sinyalleri çekişyor fakat mantık farklı gibi geldi.

    resim çekiyorum.

    hhv yi 2500 yaptım hep en tepeleri alabilsin diye.

    resim aşağıda ancak çizgiye inince veya cıkınca değilde sanki başka bir şekilde alıp satmış gibi.

    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  3. #3
    ANKET-BIST 100 Endeksi'nin haftaya alıcılı bir seyirle başlaması bekleniyor

    Analistlerin BIST 100 Endeksi açılış değerine ilişkin medyan
    tahmin +290 olurken, ortalama tahmin 335 olarak gerçekleşti.
    Foreks'in 29 aracı kurum analisti ile yaptığı ankette, en yüksek
    beklenti +963 puan olurken, en düşük beklenti +120 puan olarak
    gerçekleşti.
    Ankete katılan analistlerin tamamı negatif açılış tahmininde
    bulundu.
    NOT: Foreks Haber Merkezi tarafından günlük düzenlenen BIST 100
    Endeks anketine katılmak isteyen yatırım uzmanları
    neslihan.koroglu@foreks.com adresine başvuru maili gönderebilir.




    (14/08/2017 - 09:24:49)

Yer İmleri

Yer İmleri

Gönderi Kuralları

  • Yeni konu açamazsınız
  • Konulara cevap yazamazsınız
  • Yazılara ek gönderemezsiniz
  • Yazılarınızı değiştiremezsiniz
  •