Sayfa 65/571 İlkİlk ... 1555636465666775115165565 ... SonSon
Arama sonucu : 4940 madde; 513 - 520 arası.

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

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. Mantıken:

    a1y çalışma stili mavinin altında kaldıgı her an olarak yazsam.

    a2y koşullarıyla flatı ayarlasam calısırmı acaba.

    a1y sadece mavinin altında oldugu zaman calısacak nihayetinde.

    flat koşulu mavi yi aşağı kırınca calısacak maviyi aşağı kırmış ve yeşili yukarı kırmışsa a2y nin görevi biticek

    HHVde problem yok herşey tamam

    sorun surada

    x1[i] =
    a1[i-1] > x10[i] && a1[i] < x10[i] && a1y[i] == 1 ? 1 :
    a1[i-1] > x10[i] && a1[i] < x10[i] && a1y[i] == -1 ? -1 :
    a1[i-1] > x10[i] && a1[i] < x10[i] && a1y[i] == 0 ? 0 :

    a1[i] > x9[i] && a1[i] > x10[i] && a2y[i] == 1 ? 1 :
    a1[i] > x9[i] && a1[i] > x10[i] && a2y[i] == -1 ? -1 :
    a1[i] > x9[i] && a1[i] > x10[i] && a2y[i] == 0 ? 0 :

    a1[i] > x10[i] && a2y[i] == 1 ? 1 :
    a1[i] > x10[i] && a2y[i] == -1 ? -1 :
    a1[i] > x10[i] && a2y[i] == 0 ? 0 :

    x1[i-1] ;
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  2. a1[i-1] < x9[i] && a1[i] > x9[i] && a1y[i] == 1 ? 1 :

    şunun anlamı

    a1 bir önceki bar küçükse x9 dan ve a1 şimdiki bar büyükse x9 dan

    sadece bu andaki sinyali çekiyor diğer sinyallerı umursamıyor :@
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  3. Erhan fikir vermesi açısından şu HHV örnegine bir bak istersen

    AL şartı sende flata geç SAT şartı sende poza tekrar gir gibi


    var Veriler =Sistem.GrafikVerileri;

    var V = Sistem.GrafikVerileri ;
    var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
    var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
    var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
    var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ;
    var M = Sistem.GrafikFiyatOku(V, "OrtaNokta" ) ;

    float SonPozisyon = 0;
    float SonFiyat = 0;
    float ToplamKarZarar = 0;

    var IslemMiktari = Sistem.Liste(0);
    var Pozisyon = Sistem.Liste(0);
    var KarZarar = Sistem.Liste(0);

    int periyot1=50;
    int periyot2=200;

    var HHV = Sistem.HHV(periyot1, "Yuksek");
    var LLV = Sistem.LLV(periyot2, "Dusuk");

    for (int i = 2; i < Sistem.BarSayisi; i++)
    {
    // AL
    if ( C[i-2] < HHV[i-2] && C[i-1] > HHV[i-2] && SonPozisyon<= 0)
    {
    if (SonPozisyon == 0)
    {
    IslemMiktari[i] = 1;
    SonFiyat = V[i].Close;
    SonPozisyon = SonPozisyon + IslemMiktari[i];
    ToplamKarZarar = ToplamKarZarar - SonFiyat * IslemMiktari[i];
    Sistem.Yon[i] = "A";

    }
    else if (SonPozisyon < 0)
    {
    IslemMiktari[i] = 2;
    SonFiyat = V[i].Close;
    SonPozisyon = SonPozisyon + IslemMiktari[i];
    ToplamKarZarar = ToplamKarZarar - SonFiyat * IslemMiktari[i];
    Sistem.Yon[i] = "A";

    }
    }
    // SAT
    else if (C[i-2] > LLV[i-2] && C[i-1] < LLV[i-2] && SonPozisyon >= 0)
    {
    if (SonPozisyon == 0)
    {
    IslemMiktari[i] = -1;
    SonFiyat = V[i].Close;
    SonPozisyon = SonPozisyon + IslemMiktari[i];
    ToplamKarZarar = ToplamKarZarar - SonFiyat * IslemMiktari[i];
    Sistem.Yon[i] = "S";

    }
    else if (SonPozisyon > 0)
    {
    IslemMiktari[i] = -2;
    SonFiyat = V[i].Close;
    SonPozisyon = SonPozisyon + IslemMiktari[i];
    ToplamKarZarar = ToplamKarZarar - SonFiyat * IslemMiktari[i];
    Sistem.Yon[i] = "S";

    }
    }
    Pozisyon[i] = SonPozisyon;
    KarZarar[i] = ToplamKarZarar + V[i].Close * Pozisyon[i];
    }


    Sistem.Cizgiler[0].Deger = HHV;
    Sistem.Cizgiler[0].Aciklama = "HHV";

    Sistem.Cizgiler[1].Deger = LLV;
    Sistem.Cizgiler[1].Aciklama = "LLV";

    Sistem.Cizgiler[3].Deger = IslemMiktari;
    Sistem.Cizgiler[4].Deger = Pozisyon;
    Sistem.Cizgiler[5].Deger = KarZarar;



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

  5. Erhan hocam yoğun mesai yapmışsın kolay gelsin..

  6. 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.

  7.  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

  8. #8
    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)

Sayfa 65/571 İlkİlk ... 1555636465666775115165565 ... SonSon

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
  •