|
|
Pardon formülü eksik kopyalamışım:
//Fibonacci Tarama Formülü
var DD = Sistem.Parametreler[0]; // Fibonacci taraması için girilmesi gereken gün
Sistem.SorguBaslik[0] = "FiboUst1";
Sistem.SorguBaslik[1] = "FiboAlt1";
Sistem.SorguBaslik[2] = "Orta1";
Sistem.SorguBaslik[3] = "Dip1";
Sistem.SorguBaslik[4] = "Tepe1";
var Tepe = Sistem.HHV(DD, Sistem.GrafikFiyatSec("Yuksek"));
var Dip = Sistem.LLV(DD, Sistem.GrafikFiyatSec("Dusuk"));
var Orta = Sistem.Liste(0);
var FiboAlt = Sistem.Liste(0);
var FiboUst = Sistem.Liste(0);
var Bars = Tepe.Count;
var SonFiyat = Sistem.GrafikFiyatSec("Kapanis");
for (int i = 0; i < Bars; i++)
{
Orta[i] = (Tepe[i] + Dip[i]) / 2;
FiboAlt[i] = Tepe[i] - (Tepe[i] - Dip[i]) * 0.618f; // c# sentaksında ondalık sayıların sonuna f harfi yazmak gerekiyor
FiboUst[i] = Dip[i] + (Tepe[i] - Dip[i]) * 0.618f;
}
Sistem.Cizgiler[0].Deger = Tepe;
Sistem.Cizgiler[1].Deger = Dip;
Sistem.Cizgiler[2].Deger = Orta;
Sistem.Cizgiler[3].Deger = FiboAlt;
Sistem.Cizgiler[4].Deger = FiboUst;
if (SonFiyat > FiboAlt && SonFiyat < Orta && SonFiyat < FiboUst && SonFiyat > Orta)
{
Sistem.SorguDeger[0] = FiboUst;
Sistem.SorguDeger[1] = FiboAlt;
Sistem.SorguDeger[2] = FiboAlt;
Sistem.SorguDeger[3] = Dip;
Sistem.SorguDeger[4] = Tepe;
if(SonFiyat > Orta )
Sistem.SorguAciklama = "Zirveye Yakın";
else if (SonFiyat < Orta )
Sistem.SorguAciklama = "Dibe Yakın";
else
Sistem.SorguAciklama = "Normal";
Sistem.SorguEkle();
}
Bu arada yazmaya çalıştığım formulun son hali, aşağıdadır. Biraz fazla mesaj kalabalığı yaptığım için kusura bakmayın. Şimdiden teşekkürler.
//Fibonacci Tarama
var DD = Sistem.Parametreler[0]; // Fibonacci taraması için girilmesi gereken gün
Sistem.SorguBaslik[0] = "FiboUst1";
Sistem.SorguBaslik[1] = "FiboAlt1";
Sistem.SorguBaslik[2] = "Orta1";
Sistem.SorguBaslik[3] = "Dip1";
Sistem.SorguBaslik[4] = "Tepe1";
var Tepe = Sistem.HHV(DD, Sistem.GrafikFiyatSec("Yuksek"));
var Dip = Sistem.LLV(DD, Sistem.GrafikFiyatSec("Dusuk"));
var Orta = Sistem.Liste(0);
var FiboAlt = Sistem.Liste(0);
var FiboUst = Sistem.Liste(0);
var Bars = Tepe.Count;
var SonFiyat = Sistem.GrafikFiyatSec("Kapanis");
for (int i = 0; i < Bars; i++)
{
Orta[i] = (Tepe[i] + Dip[i]) / 2;
FiboAlt[i] = Tepe[i] - (Tepe[i] - Dip[i]) * 0.618f;
FiboUst[i] = Dip[i] + (Tepe[i] - Dip[i]) * 0.618f;
}
Sistem.Cizgiler[0].Deger = Tepe;
Sistem.Cizgiler[1].Deger = Dip;
Sistem.Cizgiler[2].Deger = Orta;
Sistem.Cizgiler[3].Deger = FiboAlt;
Sistem.Cizgiler[4].Deger = FiboUst;
Sistem.SorguBaslik[0] = "Sonfiyat";
Sistem.SorguBaslik[1] = "FiboAlt";
Sistem.SorguBaslik[2] = "Fiboust";
//Filtrele
if (SonFiyat<FiboUst || SonFiyat >FiboAlt)
{
Sistem.SorguDeger[0] = SonFiyat;
if (SonFiyat < FiboUst && SonFiyat>FiboUst * 0.98f)
Sistem.SorguAciklama = "Üst F";
if (SonFiyat > FiboAlt && SonFiyat>FiboAlt * 1.02f)
Sistem.SorguAciklama = "Alt F";
Sistem.SorguEkle();
}
benzer çalışan bir örnek vereyim kendinize göre düzenleyin.
PHP Code:
Sistem.SorguBaslik[0] = "Kapanış";
Sistem.SorguBaslik[1] = "Zirve";
Sistem.SorguBaslik[2] = "Dip";
var tara = 250; //Sistem.BarSayisi-1; //Parametreler[0];
var Veriler = Sistem.GrafikFiyatSec("Kapanis");
var HHV = Sistem.HHV(tara,"Yuksek");
var LLV = Sistem.LLV(tara,"Dusuk");
var Son = Veriler[Sistem.BarSayisi-1];
var Zirve = HHV[Sistem.BarSayisi-1];
var Dip = LLV[Sistem.BarSayisi-1];
var FarkZirve = Zirve * 0.97;
var FarkDip = Dip * 1.03;
// filtrele
if (Son < FarkDip || Son > FarkZirve )
{
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = Zirve;
Sistem.SorguDeger[2] = Dip;
if (Son < FarkDip )
Sistem.SorguAciklama = tara+" günlükte Dibe Geldi/yakın";
else if (Son > FarkZirve)
Sistem.SorguAciklama = tara+" günlükte Zirveye Geldi/yakın";
}
else
{
Sistem.SorguAciklama = "Dip/tepe %3 marj dışında";
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = Zirve;
Sistem.SorguDeger[2] = Dip;
}
Sistem.SorguEkle();
Bear_Bull
@BearBull26
Sayin Bear_Bull Hocam çok tesekkur ediyorum. Vermis oldugunuz ornek uzerinden deneyeceğim.
Size bir sorum daha olacak for dongusu ile olusturulan serileri sorgu yaparken kullanamiyor muyuz? İdeal programini yeni kullanmaya basladim, sacma bir soru sormus olabilirim, icinde for dongusu olan hic bir formulde sorgu calistiramadim oyuzden soruyorum. Ama stratejiyi kesisme tarama vs.. seklinde kurarsam son pozisyonlar sorgusu ile sonuc alabiliyorum.
Tekrar tesekkur ederim.
sorguda son bar değeri görüntülendiğinden ve şu şart oluştuysa sorulduğundan döngü pek işe yaramayabilir.
doğru anladıysam > sorguda döngü kullanılacaksa [i] değeri veya [i] değeri bir değişkene atanıp görüntülenmesi gerekebilir.
HHV ve LLV için döngü ile geriye doğru saydırıp hangisinin bar sayısının ufak olduğuna baktırılabilir
ama şu an nasıl yazılır bir fikrim yok.
Bear_Bull
@BearBull26
Yer İmleri