Alıntı Originally Posted by sonli Yazıyı Oku
Bence oldu Bir kontrol edin bakalım..

PHP Code:
var bars 500;//son kaç barı takip edecek
var puan 2000f;//kaç puanda flat olacak

int p1=10//ma kısa
int p2=20//ma uzun

var Sistem.GrafikFiyatSec("Kapanis");
var 
Sistem.GrafikFiyatSec("Yuksek");
var 
Sistem.GrafikFiyatSec("Dusuk");

var 
Sistem.Liste(0);
var 
Sistem.Liste(0);

var 
m1 Sistem.MA(p1"Exp""Kapanis");
var 
m2 Sistem.MA(p2"Exp""Kapanis");

var 
SonYon "";

for (
int i Sistem.BarSayisi-barsSistem.BarSayisii++)

{

//alışta değilse, bir önceki bar m1 > m2 ve ondan önceki barda da m1<m2 mi? aksi durumda m1>m2 iken flat olursa hemen yine alır..
     
if ( m1[i-1]>m2[i-1] && m1[i-2]<m2[i-2] && SonYon!="A"
                { 
                    
SonYon Sistem.Yon[i] = "A"
                    
a[i]=C[i];//H[i];
                


     if ( 
m1[i-1]<m2[i-1] && m1[i-2]>m2[i-2] && SonYon!="S"
                { 
                    
SonYon Sistem.Yon[i] = "S"
                    
b[i] =C[i];//L[i];
                



if ( 
SonYon=="A") {
     if (
H[i-1]>a[i-1]) a[i] =H[i-1];
     else 
a[i]=a[i-1];
 }                    

if ( 
SonYon=="S") {
 if (
L[i-1]<b[i-1] || b[i-1]==0b[i] =L[i-1];
 else 
b[i]=b[i-1];
}

if (
SonYon=="A" && C[i]<(a[i]-puan) ) {

SonYon Sistem.Yon[i] = "F";   // alıştan flat

}

if (
SonYon=="S" && C[i]>(b[i]+puan) ) {

SonYon Sistem.Yon[i] = "F";   // satıştan flat

}


}
//for son

if ( SonYon=="A"Sistem.ZeminYazisiEkle("FLAT SEVİYESİ = "+(a[Sistem.BarSayisi-1]-puan), 120050Color.Cyan"Tahoma"23);
if ( 
SonYon=="S"Sistem.ZeminYazisiEkle("FLAT SEVİYESİ = "+(b[Sistem.BarSayisi-1]+puan), 120050Color.Red"Tahoma"23);


Sistem.Cizgiler[0].Deger a;
Sistem.Cizgiler[1].Deger b;
Sistem.Cizgiler[2].Deger m1;
Sistem.Cizgiler[3].Deger m2


PHP Code:
var bars 500;//son kaç barı takip edecek
var puan 2.000f;//kaç puanda flat olacak

int p1=50//ma kısa
int p2=100//ma uzun

var Sistem.GrafikVerileri ;
var 
Sistem.GrafikFiyatSec("Kapanis");
var 
Sistem.GrafikFiyatSec("Yuksek");
var 
Sistem.GrafikFiyatSec("Dusuk");

var 
Sistem.Liste(0);
var 
Sistem.Liste(0);

var 
m1 Sistem.MA(p1"Exp""Kapanis");
var 
m2 Sistem.MA(p2"Exp""Kapanis");

var 
SonYon "";

//for (int i = Sistem.BarSayisi-bars; i < Sistem.BarSayisi; i++) // SON 500 BAR 
for (int i 1i<V.Counti++)  // TÜM BARLAR İÇİN 
{

//alışta değilse, bir önceki bar m1 > m2 ve ondan önceki barda da m1<m2 mi? aksi durumda m1>m2 iken flat olursa hemen yine alır..
     
if ( m1[i-1]>m2[i-1] && m1[i-2]<m2[i-2] && SonYon!="A"
                { 
                    
SonYon Sistem.Yon[i] = "A"
                   
a[i]=C[i];//H[i];


                


     if ( 
m1[i-1]<m2[i-1] && m1[i-2]>m2[i-2] && SonYon!="S"
                { 
                    
SonYon Sistem.Yon[i] = "S"
                    
b[i] =C[i];//L[i];

                 
                



if ( 
SonYon=="A")   // SON YÖN ALDA İSE
 
{
     if (
H[i-1]>a[i-1])    // YÜKSEK  , KAPANIŞTAN BÜYÜKSE   
     
a[i] =H[i-1];         // a  ‘ ya YÜKSEK  degerini ata
     
else a[i]=a[i-1]; // YÜKSEK  , KAPANIŞTAN küçükse  a’ yı kapanışa eşitle   
 
}                    

if ( 
SonYon=="S")   // Aldaki mantıgın aynısı
{
 if (
L[i-1]<b[i-1] || b[i-1]==0
 
b[i] =L[i-1];
 else 
b[i]=b[i-1];
}


if (
SonYon=="A" && C[i]<(a[i]-puan) ) // alıştan flat
 
{
Sistem.Yon[i] = "F";   
SonYon Sistem.Yon[i];
}

if (
SonYon=="S" && C[i]>(b[i]+puan) ) // satıştan flat
{
Sistem.Yon[i] = "F";   
SonYon Sistem.Yon[i];
}

}

if ( 
SonYon=="A"Sistem.ZeminYazisiEkle("FLAT SEVİYESİ = "+(a[Sistem.BarSayisi-1]-puan), 120050Color.Cyan"Tahoma"23);
if ( 
SonYon=="S"Sistem.ZeminYazisiEkle("FLAT SEVİYESİ = "+(b[Sistem.BarSayisi-1]+puan), 120050Color.Red"Tahoma"23);


Sistem.Cizgiler[0].Deger a// EN YÜKSEK DEGER
Sistem.Cizgiler[1].Deger b// EN DÜŞÜK DEĞER
Sistem.Cizgiler[2].Deger m1// MA 1
Sistem.Cizgiler[3].Deger m2;  // MA 2 

Sayın sonli teşekür ederim bir kaç değişiklik yaparak formül çalıştı, istedigimde oldu.
a : en yüksek degeri gösterdiği gibi , hem de en yüksekten seçilen puan kadar düşünce flata geçiyor.
b : tam tersi

Sayın 3c1a nın yazmış oldugu formülde oldu. Aynı işlemi yapıyor.

Yardımlarınız için teşekür ederim sonli ce 3c 1a

Bu formüldeki bu yapıyı sisteminin içine gömecegim. Flata geçtiği noktalarda başka bir bir sistem çalışacak.
Başarılı olurmu bilmiyorum ama denemeler yapmam gerek.
Bu formüller sayesinde idealde başka yapıları öğrenmiş oldum.