Sayfa 66/618 İlkİlk ... 1656646566676876116166566 ... SonSon
Arama sonucu : 4940 madde; 521 - 528 arası.

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

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

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

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



  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. #527
     Alıntı Originally Posted by Bear_Bull Yazıyı Oku


    Garanti olsun diye EMİR TİPİ = Piyasa seçilebilir
    yukarıdaki örnekte büyük bir GAP olursa emir pasifte kalabilir.
    diyelim, 134bin den alım yapmasını istiyoruz, fiyat ve şart fiyat ne olmalı?
    satış yapmak istediğimizde de şart tipi: son<=şart fiyat mı olmalı?

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

Sayfa 66/618 İlkİlk ... 1656646566676876116166566 ... 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
  •