Çoklu Zaman Çerçevesi Göstergeleri - sayfa 405
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
zaman çerçevesi TDI birleştirme
Hey millet, merhaba Mladen,
Bazılarınız TDI'yi Sinyal Sağlayıcı olarak kullandığınız için, aşağıda görüldüğü gibi TDI Uyarı Sistemi ile karşılaştım (TDI'da bir çarpıtma meydana geldiğinde sadece bir sinyal ve hatta EMail Uyarısı veriyorum). Muhtemelen bu yeni bir şey değil. TDI'yi en az iki zaman çerçevesiyle (temel olarak 60 dakika, ölçekleme için 5 dakika) takas etmek daha güvenli olduğundan, aşağıdakilerin mümkün olup olmadığını soruyorum: daha güvenilir sinyal: Daha büyük zaman dilimi temel olarak kullanılır, yukarı veya aşağı, daha küçük olana/lara yön verir. Aynı sinyal daha küçük zaman diliminde de görünüyorsa, bu bir ticarettir; işlemden çıkış sinyaliyle çıkılır, yalnızca daha küçük zaman dilimine bağlı olarak.
İşte sinyal oluşturmaktan bahsettiğim gösterge; Siz ne düşünüyorsunuz ya da buna benzer bir şey daha önce yayınlandı mı?
Hey millet, merhaba Mladen,
Bazılarınız TDI'yi Sinyal Sağlayıcı olarak kullandığınız için, aşağıda görüldüğü gibi TDI Uyarı Sistemi ile karşılaştım (TDI'da bir çarpıtma meydana geldiğinde sadece bir sinyal ve hatta EMail Uyarısı veriyorum). Muhtemelen bu yeni bir şey değil. TDI'yi en az iki zaman çerçevesiyle (temel olarak 60 dakika, ölçekleme için 5 dakika) takas etmek daha güvenli olduğundan, aşağıdakilerin mümkün olup olmadığını soruyorum: daha güvenilir sinyal: Daha büyük zaman dilimi temel olarak kullanılır, yukarı veya aşağı, daha küçük olana/lara yön verir. Aynı sinyal daha küçük zaman diliminde de görünüyorsa, bu bir ticarettir; işlemden çıkış sinyaliyle çıkılır, yalnızca daha küçük zaman dilimine bağlı olarak.
İşte sinyal oluşturmaktan bahsettiğim gösterge; Siz ne düşünüyorsunuz ya da buna benzer bir şey daha önce yayınlandı mı?Göstergeyi bir saniye içinde yayınlayacak...
FxTrendsTrader Buyrun
Sevgili Mladen
Bu göstergeye 'Eğimde Boyama' eklemeniz mümkün mü?
Şimdiden teşekkürler
gizli kod
Göstergeyi bir saniye içinde yayınlayacak...
Kalp krizi....?...
Kalp krizi....?...
Hayır kalp krizi yok: İşte kod, sadece kopyalayın ve göstergeyi oluşturun, dosyayı bulamıyor
/*------------------------------------------------ ------------------------------------
İsim: xTDI-Arrow.mq4
Telif Hakkı ?2010, Xaphod, Forex Whiz
Açıklama: - TDI haçları için oklar çizer
- Yukarıdaki üç satırın geçişleri için uyarılar sağlar.
Günlüğü değiştir:
2010-10-19. Xaphod, v1.00
- İlk sürüm
-------------------------------------------------- -----------------------------------*/
// Gösterge özellikleri
#property telif hakkı "Telif hakkı ? 2010, Xaphod"
#özellik bağlantısı "http://forexwhiz.appspot.com"
#özellik göstergesi_chart_window
#özellik göstergesi_tamponları 4
#özellik göstergesi_color1 KireçYeşil
#özellik göstergesi_renk2 Kırmızı
#özellik göstergesi_color3 Yeşil
#özellik göstergesi_color4 FireBrick
#özellik göstergesi_width1 1
#özellik göstergesi_width2 1
#özellik göstergesi_width3 1
#özellik göstergesi_width4 1
#özellik göstergesi_maksimum 1
#özellik göstergesi_minimum 0
// Sabit tanımlar
#define INDICATOR_NAME "xTDI-Arrow"
#define INDICATOR_VERSION "v1.00"
#define BAR_HEIGHT 1.00
#define TDI_INDI "Traders_Dynamic_Index"
#define ARROW_THIN_UP 225
#define ARROW_THIN_DN 226
#define ARROW_THICK_UP 233
#define ARROW_THICK_DN 234
#define ARROW_HOLLOW_UP 241
#define ARROW_HOLLOW_DN 242
#define ARROW_ROUND_UP 221
#define ARROW_ROUND_DN 222
// Gösterge parametreleri
dış dize Indi.Copyright= "?2010, forexwhiz.appspot.com";
harici dize Indi.Version= INDICATOR_VERSION;
harici string Show.Settings="?????????????????????????????????";
harici int Show.TimeFrame=0; // Kullanılacak zaman dilimi. Mevcut Zaman Çerçevesi = 0.
extern bool Show.MarketBaseLine=true; // Pazar taban çizgisinin üstünde/altında çaprazı farklı bir renkte göster
harici int Show.ArrowType=0; // 0=İnce, 1=Kalın, 2=İçi Boş, 3=Yuvarlak
extern int Show.ArrowSize=1; // Ok boyutu (1-5)
harici int Show.ArrowOffset=10; // Oku göstermek için mumun sonundan öteleme
harici dize TDI.Settings="?????????????????????????????????";
harici int TDI.RSIPerod = 13; // Dönem. Önerilen değerler: 8-25
harici int TDI.RSIPrice = 0; // 0=KAPALI, 1=AÇIK, 2=YÜKSEK, 3=DÜŞÜK, 4=ORTALAMA, 5=TİPİK, 6=AĞIRLIKLI
extern int TDI.VolatilityBand = 34; // Önerilen değerler: 20-40
harici int TDI.RSIPriceLine = 2; // Dönem
harici int TDI.RSIPriceType = 0; // 0=SMA, 1=EMA, 2=SSMA, 3=LWMA
harici int TDI.TradeSignalLine = 7; // Dönem
harici int TDI.TradeSignalType = 0; // 0=SMA, 1=EMA, 2=SSMA, 3=LWMA
harici dize Alert.Settings="?????????????????????????????????";
extern bool Alert.RSIPriceLine=true; // RSI fiyatı Sinyal çizgisini geçerse uyar. Yeşil kırmızıyı geçer.
extern bool Alert.MarketBaseLine=true; // RSI fiyatı Sinyal çizgisini ve piyasa temel çizgisini geçerse uyar. Yeşil kırmızı ve sarı haçlar
extern bool Alert.NewBarOnly=true; // True=Yeni çubuk açıldığında uyar. False=Satırlar kesiştiğinde uyar
harici int Alert.Timeout=60; // Bir uyarıdan sonra uyarıları N saniye boyunca devre dışı bırakın. Yalnızca Alert.NewBarOnly=false olduğunda
extern bool Alert.Popup=true; // Açılır pencere ve uyarı sesi
extern bool Alert.Email=false; // Uyarıda e-posta gönder
// Global modül değişkenleri
çift dBuffer0[];
çift dBuffer1[];
çift dBuffer2[];
çift dBuffer3[];
bool bStartup;
geçersiz SetArrowType(int& iArrowUp, int& iArrowDn) {
geçiş (Show.ArrowType) {
durum 1: // İnce
iArrowDn=ARROW_THIN_DN;
iArrowUp=ARROW_THIN_UP;
kırmak;
durum 2: // İçi boş
iArrowDn=ARROW_HOLLOW_DN;
iArrowUp=ARROW_HOLLOW_UP;
kırmak;
durum 3: // Yuvarlak
iArrowDn=ARROW_ROUND_DN;
iArrowUp=ARROW_ROUND_UP;
kırmak;
varsayılan: // Kalın
iArrowDn=ARROW_THICK_DN;
iArrowUp=ARROW_THICK_UP;
kırmak;
}
}
//------------------------------------------------ ----------------------------------
// fonksiyon: init()
// Açıklama: Özel gösterge başlatma işlevi.
//------------------------------------------------ ----------------------------------
int init() {
int iArrowUp;
int iArrowDn;
dize sType;
dizi sTF;
SetArrowType(iArrowUp, iArrowDn);
SetIndexStyle(0,DRAW_OKU,BOŞALT,Show.ArrowSize);
SetIndexBuffer(0,dBuffer0);
SetIndexLabel(0,"TDI:Mkt-Up");
SetIndexArrow(0, iArrowUp);
SetIndexStyle(1,DRAW_OK,EMPTY,Show.ArrowSize);
SetIndexBuffer(1,dBuffer1);
SetIndexLabel(1,"TDI:Mkt-Dn");
SetIndexArrow(1, iArrowDn);
SetIndexStyle(2,DRAW_OK,BOŞ,Show.ArrowSize);
SetIndexBuffer(2,dBuffer2);
SetIndexLabel(2,"TDI:Kaydol");
SetIndexArrow(2, iArrowUp);
SetIndexStyle(3,DRAW_OKU,BOŞ,Show.ArrowSize);
SetIndexBuffer(3,dBuffer3);
SetIndexLabel(3,"TDI:Sig-Dn");
SetIndexArrow(3, iArrowDn);
if (Show.TimeFrame==0)
sTF="";
başka
sTF=TF2Str(Göster.Zaman Çerçevesi);
GöstergeShortName(INDICATOR_NAME+" "+sTF);
bBaşlangıç=doğru;
dönüş(0);
}
//------------------------------------------------ ----------------------------------
// fonksiyon: tanım()
// Açıklama: Özel gösterge sıfırlama işlevi.
//------------------------------------------------ ----------------------------------
int tanım() {
dönüş (0);
}
///------------------------------------------------------ ------------------------------
// fonksiyon: başlat()
// Açıklama: Özel gösterge yineleme işlevi.
//------------------------------------------------ ----------------------------------
int start() {
int iNewBars;
int iCountedBars;
int i;
çift dVBHighLine; // Üst volatilite bandı - Üst Mavi çizgi
çift dVBlowLine; // Alt volatilite bandı - Alt Mavi çizgi
çift dMarketBaseLine0; // Piyasa Taban Çizgisi - Sarı çizgi
çift dRSIPriceLine0; // RSI Fiyat Çizgisi - Yeşil çizgi
çift dTradeSignalLine0; // Ticaret Sinyal Hattı - Kırmızı hat
statik çift dMarketBaseLine1; // Piyasa Taban Çizgisi - Sarı çizgi
statik çift dRSIPriceLine1; // RSI Fiyat Çizgisi - Yeşil çizgi
statik çift dTradeSignalLine1; // Ticaret Sinyal Hattı - Kırmızı hat
çift dOffset;
// İşlenmemiş keneleri al
iCountedBars=IndicatorCounted();
if(iCountedBars < 0) dönüş (-1);
if(iCountedBars>0) iCountedBars--;
iNewBars=Barlar-iCountedBars;
for(i=iNewBars; i>=0; i--) {
// Önceki TDI verilerini al
//if (Zaman!=tCurTime) {
//tCurTime=Zaman;
dMarketBaseLine1=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,2,i+1); // Sarı çizgi
dRSIPriceLine1=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,4,i+1); // Yeşil çizgi
dTradeSignalLine1=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPerod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,5,i+1); // Kırmızı cizgi
//}
// Mevcut TDI Verilerini al
dMarketBaseLine0=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,2,i); // Sarı çizgi
dRSIPriceLine0=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,4,i); // Yeşil çizgi
dTradeSignalLine0=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPerod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,5,i); // Kırmızı cizgi
// Geçerli görüntü arabelleğini temizle
dBuffer0 = BOŞ_DEĞER ;
dBuffer1 = BOŞ_DEĞER;
dBuffer2 = BOŞ_DEĞER;
dBuffer3 = BOŞ_DEĞER;
dOffset=Nokta*(10*Show.ArrowOffset/MarketInfo(Symbol(),MODE_TICKVALUE));
if (dRSIPriceLine0>dMarketBaseLine0 && dRSIPriceLine1dTradeSignalLine0 && Show.MarketBaseLine)
dBuffer0 = Düşük dOffset;
else if (dRSIPriceLine0>dTradeSignalLine0 && dRSIPriceLine1<dTradeSignalLine1)
dBuffer2 = Düşük dOffset;
if (dRSIPriceLine0dMarketBaseLine1 && dRSIPriceLine0<dTradeSignalLine0 && Show.MarketBaseLine)
dBuffer1 = Yüksek+dOffset;
else if (dRSIPriceLine0dTradeSignalLine1)
dBuffer3 = Yüksek+dOffset;
// Uyarıları kontrol et
if (i==0) AlertCheck();
}
// Başlangıç bayrağını sıfırla
if (bBaşlangıç) bBaşlangıç=yanlış;
// Güle güle
dönüş(0);
}
//+------------------------------------------- -------------------+
//------------------------------------------------ ----------------------------------
// işlev: TF2Str()
// Açıklama: Zaman çerçevesini bir dizgeye dönüştür
//------------------------------------------------ ----------------------------------
string TF2Str(int iPeriod) {
switch(iPeriod) {
durum PERIOD_M1: dönüş("M1");
durum PERIOD_M5: dönüş("M5");
durum PERIOD_M15: dönüş("M15");
durum PERIOD_M30: dönüş("M30");
durum PERIOD_H1: dönüş("H1");
durum PERIOD_H4: dönüş("H4");
durum PERIOD_D1: dönüş("D1");
durum PERIOD_W1: dönüş("W1");
durum PERIOD_MN1: dönüş("MN1");
varsayılan: dönüş ("M"+iPeriod);
}
}
//------------------------------------------------ ----------------------------------
// işlev: AlertCheck()
// Açıklama: Uyarı koşullarını kontrol edin ve uyarıları gerçekleştirin
//------------------------------------------------ ----------------------------------
geçersiz AlertCheck() {
string sAlertMsg;
statik tarihsaat tCurTime=0;
statik int iAlertTimer[2];
statik int iAlertStatus[2];
çift dMarketBaseLine[2]; // Piyasa Taban Çizgisi - Sarı çizgi
çift dRSIPriceLine[2]; // RSI Fiyat Çizgisi - Yeşil çizgi
çift dTradeSignalLine[2]; // Ticaret Sinyal Hattı - Kırmızı hat
int i,j;
bool bNewBar=yanlış;
// Gösterge yeni başladıysa iptal
if (bBaşlangıç) {
tCurTime=Zaman[0];
dönüş(0);
}
// Uyarıları kontrol et
if (Alert.RSIPriceLine || Alert.MarketBaseLine) {
// Yalnızca yeni çubuk varsa uyarı
if (Alert.NewBarOnly) {
// Zamanı Sıfırla
if(tCurTime!=Zaman[0]) {
tCurTime=Zaman[0];
bNewBar=true;
// TDI Verilerini yeni çubukta alın, yani 1. ve 2. çubuk
for (i=0; i<2; i++) {
j=i+1;
dMarketBaseLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,2,j); // Sarı çizgi
dRSIPriceLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,4,j); // Yeşil çizgi
dTradeSignalLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,5,j); // Kırmızı cizgi
} //son için
}//endif
}
başka {
// Mevcut çubukta, yani çubuk 0 ve 1'de TDI Verisi alın
for (i=0; i<2; i++) {
dMarketBaseLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,2,i); // Sarı çizgi
dRSIPriceLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,4,i); // Yeşil çizgi
dTradeSignalLine=iCustom(NULL,Show.TimeFrame,TDI_INDI,TDI.RSIPperiod,TDI.RSIPrice,TDI.VolatilityBand,TDI.RSIPriceLine,
TDI.RSIPriceType,TDI.TradeSignalLine,TDI.TradeSignalType,5,i); // Kırmızı cizgi
} //son için
} // if(Alert.NewBarOnly) sonlandır
if (bNewBar || (!Alert.NewBarOnly && iAlertTimer[0]<GetTickCount())) {
//Uyarı RSIPriceLine > TradeSignalLine
if (dRSIPriceLine[0]>dTradeSignalLine[0] && dRSIPriceLine[1]<dTradeSignalLine[1] && Alert.RSIPriceLine) {
if (!Alert.NewBarOnly) iAlertTimer[0]=GetTickCount()+Alert.Timeout*1000;
sAlertMsg="TDI Uyarısı - "+Symbol()+" "+TF2Str(Period())+": TradeSignalLine'ın Üzerinde RSIPriceLine.";
if (Alert.Popup) Alert(sAlertMsg);
if (Alert.Email) SendMail( sAlertMsg, "MT4 Uyarısı!\n" + TimeToStr(TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
} // eğer sonlandır
//Uyarı RSIPriceLine < TradeSignalLine
if (dRSIPriceLine[0]dTradeSignalLine[1] && Alert.RSIPriceLine) {
//PrintD("RSIPriceLine < TradeSignalLine");
if (!Alert.NewBarOnly) iAlertTimer[0]=GetTickCount()+Alert.Timeout*1000;
sAlertMsg="TDI Uyarısı - "+Symbol()+" "+TF2Str(Period())+": TradeSignalLine'ın Altında RSIPriceLine.";
if (Alert.Popup) Alert(sAlertMsg);
if (Alert.Email) SendMail( sAlertMsg, "MT4 Uyarısı!\n" + TimeToStr(TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
} // eğer sonlandır
} // eğer sonlandır
if (bNewBar || (!Alert.NewBarOnly && iAlertTimer[1]<GetTickCount())) {
//RSIPriceLine ise uyar > TradeSignalLine && dMarketBaseLine
if (dRSIPriceLine[0]>dMarketBaseLine[0] && dRSIPriceLine[1]<dMarketBaseLine[1] && Alert.MarketBaseLine) {
if (dRSIPriceLine[0]>dTradeSignalLine[0] && dRSIPriceLine[1]<dTradeSignalLine[1]) {
if (!Alert.NewBarOnly) iAlertTimer[1]=GetTickCount()+Alert.Timeout*1000;
sAlertMsg="TDI Uyarısı - "+Symbol()+" "+TF2Str(Period())+": TradeSignalLine ve MarketBaseLine üzerinde RSIPriceLine.";
if (Alert.Popup) Alert(sAlertMsg);
if (Alert.Email) SendMail( sAlertMsg, "MT4 Uyarısı!\n" + TimeToStr(TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
} // eğer sonlandır
} // eğer sonlandır
//RSIPriceLine < TradeSignalLine && dMarketBaseLine ise uyar
if (dRSIPriceLine[0]dMarketBaseLine[1] && Alert.MarketBaseLine) {
if (dRSIPriceLine[0]dTradeSignalLine[1] ) {
if (!Alert.NewBarOnly) iAlertTimer[1]=GetTickCount()+Alert.Timeout*1000;
sAlertMsg="TDI Uyarısı - "+Symbol()+" "+TF2Str(Period())+": TradeSignalLine ve MarketBaseLine'ın altında RSIPriceLine.";
if (Alert.Popup) Alert(sAlertMsg);
if (Alert.Email) SendMail( sAlertMsg, "MT4 Uyarısı!\n" + TimeToStr(TIME_DATE|TIME_SECONDS )+"\n"+sAlertMsg);
} // eğer sonlandır
} // eğer sonlandır
} // eğer sonlandır
}//end if(Alert.RSIPriceLine || Alert.MarketBaseLine)
dönüş(0);
}
UYARI: 10k politikası nedeniyle kodu ikiye böldüm; bu yüzden her iki parçayı bir arada kopyalayın ve göstergeyi oluşturun!
Pekala millet, işte buradasınız, tüm formüller için üzgünüm!
Yanlış olan Doğru kodu başka bir koda kopyaladı, eskisinin üzerine yazdı, derledi ve dosya hala eski kodu mu kullanıyor?! anlamayın; neyse kod doğru
Yanlış olan Doğru kodu başka bir koda kopyaladı, eskisinin üzerine yazdı, derledi ve dosya hala eski kodu mu kullanıyor?! anlamayın; neyse kod doğru
Daha önce gönderdiğim kod ....
Eski Dizüstü bilgisayarımda bir Vista Sürümü var, bu yüzden mq4 dosyaları kaybolmaya devam ediyor; şimdi çalışması gerekir!