Alıntı Originally Posted by alekss Yazıyı Oku
arkadaşlar merhaba
tuncer bey twitter da paylaşmıştı izole tepe izole dip tekniği

Tuncer Şengöz†@TuncerSengoz 7 Şub
Daha fazla Tuncer Şengöz Retweetledi: Tuncer Şengöz
Dünkü flood'da bahsettiğim teknikle ilgili bazı bilgiler vereceğim. Arşivleyin, ileride çok faydasını görürsünüz.Tuncer Şengöz ekledi,

Yarın 87,047 aşağıya geçilirse benim "izole tepe/dip" tekniğime göre dönüş teyidi gelmiş olacak. (Tekniğin güvenilirliği %85 civarıdır.)

Yeni en yüksekler yaparak ilerleyen trende yükseliş trendi, yeni en düşükler yaparak ilerleyen trende düşüş trendi denir.

Yeni yüksekler yaparak ilerleyen trendde bazı günlerde yeni en yüksek olmaz. Bu durumda trendin bitip bitmediğine nasıl karar verirsiniz?

Acaba trendin en yüksek seviyesi görüldü mü, yoksa geçici bir düzeltme mi yaşanıyor? Benim izole tepe/dip tekniğim bu sorunu çözmeye yönelik

Trendin o güne kadar gördüğü en yüksek seviyeye "izole tepe" diyorum. Bir gün öncesinin en düşüğünü de sinyal seviyesi kabul ediyorum.

Eğer sinyal seviyesi 2 gün içinde aşağı geçilirse, trend sona ermiş kabul ediyorum. 2 gün içinde aşağı geçilemezse trend devam ediyor.







bu izole tepe -dip tekniğini idealde formule edebilecek arkadaş olursa çok seviniriz
Kodu yazmadan önce trendin böyle kolay tarif edilemeyeceğine inandığım için ve bu önyargıyı kırması umuduyla kodunu yazdım. Benim için de değişik bir çalışma oldu. Tarif edilenden fazla olarak hacim filtresi de eklemeye çalıştım ancak getiriler ciddi anlamda vasat.

Kod:
var P = Sistem.GrafikVerileri;
var O = Sistem.GrafikFiyatOku(P, "Acilis");
var C = Sistem.GrafikFiyatOku(P, "Kapanis");
var H = Sistem.GrafikFiyatOku(P, "Yuksek");
var L = Sistem.GrafikFiyatOku(P, "Dusuk");
var V = Sistem.GrafikFiyatOku(P, "Lot");
var VSD = Sistem.StDev(V, 50);
var TS = Sistem.Liste(0f);

var pos = "F";
var posPx = 0f;
var trendSide = 1;
var iTrend = 1;

for (var i = 1; i < P.Count; i++)
{
    var close = P[i].Close;
    var open = P[i].Open;
    var trend = P[iTrend];
    var trend1 = P[iTrend - 1];
    var high = H[i];
    var low = L[i];
    var isRisingBar = close > open;

    // Update the trend if continues
    if (trendSide == 1 && trend.High < high) { iTrend = i; }
    else if (trendSide == -1 && trend.Low > low) { iTrend = i; }
    // Is trend over?
    else if (trendSide == 1 && low <= trend1.Low)
    {
        trendSide = -1;
        iTrend = i;
    }
    else if (trendSide == -1 && trend1.High < high)
    {
        trendSide = 1;
        iTrend = i;
    }
    TS[i] = trendSide;

    var buy = trendSide == 1 && iTrend == i && V[i] > 2 * VSD[i];
    var sell = trendSide == -1 && iTrend == i && V[i] > 2 * VSD[i];
    var flat = false;

    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 = Sistem.GetiriKZ;
Sistem.Cizgiler[1].Deger = Sistem.GetiriKZAy;
Sistem.Cizgiler[2].Deger = TS;
Sistem.Cizgiler[3].Deger = Sistem.Liste(0f);
Sistem.Cizgiler[4].Deger = V;
Sistem.Cizgiler[5].Deger = VSD;
Elbette kod yazarken hata yapmış olabilirim. Buna istinaden yukarıdaki kodu bir de sizin test etmenizi rica ediyorum.