@BearBull26 Hocam merhaba,
Sizde de aynı sonuç çıkıyor,Ama grafikleri kontrol ettiğimde yukarı kesmemiş gözüküyorlar.Misal resimde ki grafikte,DI minus yukarı kesmesineagmen sonuclarda çıkıyor.DI plus aşağı kesmiş.
Ek 20125
Printable View
@BearBull26 Hocam merhaba,
Sizde de aynı sonuç çıkıyor,Ama grafikleri kontrol ettiğimde yukarı kesmemiş gözüküyorlar.Misal resimde ki grafikte,DI minus yukarı kesmesineagmen sonuclarda çıkıyor.DI plus aşağı kesmiş.
Ek 20125
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguBaslik[1] = "DI+";
Sistem.SorguBaslik[2] = "DI-";
var DI_Plus = Sistem.DirectionalIndicatorPlus(V, 14);
var DI_Minus = Sistem.DirectionalIndicatorMinus(V, 14);
var Son_DI_Plus = DI_Plus[Sistem.BarSayisi-1];
var Son_DI_Minus = DI_Minus[Sistem.BarSayisi-1];
if ( Son_DI_Plus > 0 )
{
if ( Son_DI_Plus > Son_DI_Minus )
Sistem.SorguAciklama = "Yukarı Kesti";
else if ( Son_DI_Plus < Son_DI_Minus )
Sistem.SorguAciklama = "Aşağı Kesti";
else
Sistem.SorguAciklama = " Tarama dışı";
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = Son_DI_Plus ;
Sistem.SorguDeger[2] = Son_DI_Minus ;
Sistem.SorguEkle();
}
aynı formülü şimdi matrikste tarattım, bist100 de sadece flap ve Ieyho çıkıyor.Manuel Kontrollerde doğru..
O zaman aradığınız bu ?
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguBaslik[1] = "DI+";
Sistem.SorguBaslik[2] = "DI-";
Sistem.SorguBaslik[3] = "ONCEKI DI+";
Sistem.SorguBaslik[4] = "ONCEKI DI-";
var DI_Plus = Sistem.DirectionalIndicatorPlus(V, 14);
var DI_Minus = Sistem.DirectionalIndicatorMinus(V, 14);
var Son_DI_Plus = DI_Plus[Sistem.BarSayisi-1];
var Son_DI_Minus = DI_Minus[Sistem.BarSayisi-1];
var Son1_DI_Plus = DI_Plus[Sistem.BarSayisi-2];
var Son1_DI_Minus = DI_Minus[Sistem.BarSayisi-2];
if ( Son_DI_Plus > 0 )
{
if ( Son1_DI_Plus < Son1_DI_Minus && Son_DI_Plus > Son_DI_Minus )
Sistem.SorguAciklama = "Yukarı Kesti ++";
else if ( Son1_DI_Plus > Son1_DI_Minus && Son_DI_Plus < Son_DI_Minus )
Sistem.SorguAciklama = "Aşağı Kesti";
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = Son_DI_Plus ;
Sistem.SorguDeger[2] = Son_DI_Minus ;
Sistem.SorguDeger[3] = Son1_DI_Plus ;
Sistem.SorguDeger[4] = Son1_DI_Minus ;
Sistem.SorguEkle();
}
Sayın ilker;
desteğiniz için teşekkürler.Fakat sizin formül taramasında bütün hisseler çıkıyor ve DI+'ın aşağıda mı yukarı da mı olduğunu gösteriyor.Tam izah edemedim sanırım k.bakmayın.Benim istediğim Son bar'da yukarı veya aşağı kesen hisseleri bulmak.Son barda kesişim olanları taramak istiyorum.Yani DI+ ,DI - yukarı kestiyse (YUKARI KESTİ),Aşağı kestiyse (AŞAĞI KESTİ)şeklinde.Formülü sadece yukarı kesenler yapsam bile ,manuel kontrol ettiğimde hatalı gözüküyor.Aynı taramanın sadece yukarı kesenlerini matrikste tarattığımda bist100' FLAP - IEYHO çıkıyor.Ama idelade krdmd toaso pgsus çıkıyor ki bunlar hatalı.Yorduğum için k.bakmayın.
Aradığınız bu muydu acaba ?
-----------------------------------------------
var V = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatOku(V, "Kapanis");
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguBaslik[1] = "ADX";
Sistem.SorguBaslik[2] = "AVR";
Sistem.SorguBaslik[3] = "ONCEKI ADX";
Sistem.SorguBaslik[4] = "ONCEKI AVR";
var ADX = Sistem.DirectionalMovement(14);
var AVR = Sistem.MA (ADX, "Simple", 10);
var Son_ADX = ADX[Sistem.BarSayisi-1];
var Son_AVR = AVR[Sistem.BarSayisi-1];
var Son1_ADX = ADX[Sistem.BarSayisi-2];
var Son1_AVR = AVR[Sistem.BarSayisi-2];
if ( ( Son1_ADX < Son1_AVR && Son_ADX > Son_AVR ) || ( Son1_ADX > Son1_AVR && Son_ADX < Son_AVR ) )
{
if ( Son1_ADX < Son1_AVR && Son_ADX > Son_AVR )
Sistem.SorguAciklama = "Yukarı Kesti +";
else if ( Son1_ADX > Son1_AVR && Son_ADX < Son_AVR )
Sistem.SorguAciklama = "Aşağı Kesti";
Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
Sistem.SorguDeger[1] = Son_ADX ;
Sistem.SorguDeger[2] = Son_AVR ;
Sistem.SorguDeger[3] = Son1_ADX ;
Sistem.SorguDeger[4] = Son1_AVR ;
Sistem.SorguEkle();
}
------------------------------
Ilker hocam sanirim bu adx ve avr ile ilgili kesisim taramasi. Matriks kodu cross(PDI(14),MDI(14)) olani kisaca taramak istiyorum.ilk attigim formulde asagi kesen kismini silip taratsamda matriks ile ayni sonuc cikmiyor.
*
Herkese merhaba,
Sezai bey Sorunu çözdü.Yardimlarindan dolayi herkese tesekkur ederim.Sorunun sebebini başka arkadaşlarda faydalansin diye alintilayarak yaziyorum.iyi forumlar..
("Sezai beyin mailinden alinti"
YukarıKestiyse ve AşağıKestiyse fonksiyonları, al ve sat sinyalleri ürettirilen robotlarda da kullanılır diye, son barı kaale almadan hesap yapıp sonuç dönen fonksiyonlardır.GÜNLÜK FLAP grafiğinden açıklamak gerekirse;
Aslında D+ 7 EYLÜLDE KESMİŞ.
Çünkü 6 eylülde altında ama 7 eylülde üstünde kapatmış D- nin.
Ve fakat YukarıKestiyse fonksiyonu son bar kaale almayıp, ondan önceki iki barda kesişme var mı diye bakıyor.
O yüzden de FLAP listede karşımızı çıkıyor.
Son barı da kaale alacak şekilde kesişme için o komutları kullanmayı, bir bar önce altındaydı, şimdiki barda üstünde anlamına gele ifadeyle koşulu yazın)
PHP Code:
Sistem.SorguBaslik[0] = "Fiyat";
Sistem.SorguBaslik[1] = "DI+";
Sistem.SorguBaslik[2] = "DI-";
var C = Sistem.GrafikFiyatSec("Kapanis");
var DI_Plus = Sistem.DirectionalIndicatorPlus(14);
var DI_Minus = Sistem.DirectionalIndicatorMinus(14);
var Son = Sistem.BarSayisi-1;
if (DI_Plus[Son-1] < DI_Minus[Son-1] && DI_Plus[Son] >= DI_Minus[Son] )
{
Sistem.SorguDeger[0] = C[Sistem.BarSayisi-1];
Sistem.SorguDeger[1] = DI_Plus[Sistem.BarSayisi-1];
Sistem.SorguDeger[2] = DI_Minus[Sistem.BarSayisi-1];
Sistem.SorguAciklama = "Yukarı Kesti";
Sistem.SorguEkle();
}