Alıntı Originally Posted by Santi78 Yazıyı Oku
Cevap icin cok sagolun. Istedigimi tam anlatamadim, eger hisse gunluk periyotta (ornegin 50-200 diyelim)iki hareketli ortalamanin kesismesi gerceklesirse otomatik olarak 30 dakikalik periyotta direnc cizdirip, direnci gectiginde alim yapmasi. Gunluk periyotta HO ortalamalarin kesisim olup olmadigini koda dokebiliriz ama kesisme olduysa nasil bir kodlama ile otomatik olarak 30 dakikalik periyotta direnc cizdirebiliriz? 1.eylem gerceklesince 2.eyleme nasil bir komut ile bunu yap diyebiliriz?
Aşağıdaki sistem; günlük MA1, günlük MA2 den büyükse ve baktığınız periyottaki fiyat trendin üzerindeyse alım yapar..Fiyat MA2 yi aşağı kırdığında satar. Trendi ve fiyatı, grafiğe baktığınız periyoda göre kullanır (ortalamalar günlük olduğundan günlük ve tüm alt periyotlarda çalışır). Koddaki trend son 20 barı dikkate almadan 300 bara bakıyor.
Trendi kesişim esnasında çizdirmenize gerek yok; trend her zaman olur ama sistem ma1>ma2 + fiyat>trend olduğunda işleme girer. Ancak trendin otomatik çizilmesi önceki tepelerin durumuna göre sağlıklı çalışmayacaktır. Sistem anlık dediğim gibi çalışsa da, trend şartından dolayı grafik üzerinde geçmişte yaptığı ya da yapmadığı alımları hatalı gösterir.

PHP Code:
int p1=5;
int p2=21;
var 
Veriler Sistem.GrafikVerileri;
var 
Sistem.GrafikFiyatOku(Veriler,"Kapanis");

var 
gn Sistem.GrafikVerileriniOku(Sistem.Sembol"G");
var 
kgn Sistem.GrafikFiyatOku(gn"Kapanis");
var 
m1 Sistem.MA(kgn"Simple"p1 );
m1 =Sistem.DonemCevir(Sistem.GrafikVerilerign m1 );
var 
m2 Sistem.MA(kgn"Simple"p2 );
m2 =Sistem.DonemCevir(Sistem.GrafikVerilerign m2 );

var 
Sistem.OtoTrendDusen(Veriler30020);  

//kesişim şartı
//if (m50[i]>m100[i] && m50[i-1]<m100[i-1])

var SonYon "";
for (
int i=2Sistem.BarSayisii++)
{
   if (
SonYon != "A" && m1[i]>m2[i] && C[i]>T[i]  )
   {
       
SonYon Sistem.Yon[i] = "A";
       
Sistem.Mesaj("Trend Yukarı Kırıldı");
   }
   else if (
SonYon != "S" && C[i]<m2[i] ) 
   {
      
SonYon Sistem.Yon[i] = "S";
      
Sistem.Mesaj("Satıldı..");
   }
}


//ekranda çizgi olarak göster
Sistem.Cizgiler[0].Deger m1;
Sistem.Cizgiler[1].Deger m2;
Sistem.Cizgiler[2].Deger T