MetaTrader’da Telegram ile çalışma. Telegram kanalları ve bot
Autolot Sırlarım. Dinamik Lot veya Autolot.
Açıklama
Uyarı: Arama motorlarında en sık sorgulananlar ve forumlarda popüler konular genellikle aşağıdaki ifadeleri içerir.
Bu tür konularda bir uyarı, en son trendlerden haberdar olmanıza yardımcı olabilir.
- “Uyarı göstergesi“
- “Göstergede ses sinyali nasıl eklenir?“
- “Göstergede ses sinyali eklememe yardım et“
- “Uyarılar ve Oklar nasıl eklenir“
- “Bir göstergeden sinyal geldiğinde e-posta veya telefona nasıl mesaj gönderilir?“
Bu makalede, Expforex’de mevcut olan ek kodu kullanarak herhangi bir göstergede Uyarı, Mail, Push ve Ok bildirimlerini eklemenin kolay bir yolunu ayrıntılı olarak açıklayacağım.
Önsöz
Göstergenize doğru şekilde Uyarılar eklemek için göstergenizin açık kaynak koduna sahip olmanız gerekir.
Derlenmemiş kod istenmeyendir çünkü yeni başlayanlar için derlenmemiş kod minimal bilgi sağlar. Anlamak zordur.
Düzenleme sonrasında derleme sorunlarıyla da karşılaşabilirsiniz.
xCustomEA
Karmaşık özelleştirilmiş programlamaya dalmadan ticaret stratejinizi otomatikleştirmenin daha kolay bir yolunu arıyorsanız, xCustomEA‘yı düşünün.
Expforex‘dan bu uzman danışmanı, ok sinyalleri üreten göstergelerle sorunsuz çalışacak şekilde tasarlanmıştır. xCustomEA ile herhangi bir alım veya satım oku gösteren göstergeleri kolayca otomatikleştirerek, özel kod geliştirme zahmetine girmeden güçlü bir otomatik strateji oluşturabilirsiniz.
xCustomEA, gösterge sinyallerine dayalı stratejileri otomatikleştirmeyi inanılmaz derecede erişilebilir kılar. Bu, yatırımcıların özel programlama yerine ticaretlerini optimize etmeye odaklanmalarını sağlar. Bu uzman danışmanı, gösterge sinyallerini ticaretlere dönüştürmek için programcı tutmanın mükemmel bir alternatifi olarak hizmet eder ve basit bir çözüm sunar.
Daha fazla bilgi için xCustomEA sayfasını ziyaret edin veya Expforex’in diğer uzman danışmanlarını keşfedin.
İşe Başlama Uyarı Ekleme
Öncelikle, hangi gösterge tamponlarının belirli sinyaller sağladığını, bir uyarı oluşturmanın amacını ve göstergedeki sinyali belirlemek için koşulları belirlemeniz gerekir.
Önemli: Yalnızca değişken kodunun başında tanımlanan harici tamponlar göstergelerde görüntülenebilir:
#property indicator_buffers 1
Ancak, gösterge ayrıca init() fonksiyonunda ayarlanmış ve değişken olarak ilan edilmiş gizli tamponlar içerebilir:
IndicatorBuffers(7): Sadece ilk tamponlara ihtiyacımız var.
Örneğin, 1 harici tamponunuz varsa, değişkene bakın:
SetIndexBuffer(0, SarBuffer);
- 0 ilk tampondur
- 1 ikinci tampondur
Bu tamponlar veya adları, göstergenin belirli bir çizgisinin üzerinde fareyi gezdirerek tanımlanabilir.
Value1 – Bu, ilk tampon veya kodun dizinleme sisteminde 0’dır.
SetIndexBuffer(0, SarBuffer); // İhtiyacımız olan tamponun adı
Eğer bu SarBuffer ise, onu kullanacağız.
Ayrıca, sinyalin nasıl tetikleneceğini belirlemek teknik bir konudur;
Örneğin, bu 0 çizgisinin üstten (alttan) aşağıya (yukarıya) doğru hareket eden kesişmesi ise, şu şekilde görünecektir:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
Gösterge mevcut fiyatı veya bir barı keser, gösterge tarafından bir bar kırılması vb. :
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
Eğer bu benzersiz seviyelerin kesişmesi ise, stokastikler gibi göstergeler:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
Eğer göstergenizde zaten oklar varsa, aşağıdaki türde sinyal de mümkündür:
DnTrend[1] != EMPTY_VALUE && DnTrend[1] != 0 && UpTrend[2] != EMPTY_VALUE
Her durumda, sinyali doğru kaydetmek için mantık ve yaratıcılık uygulamanız gerekir. Herhangi bir zorlukla karşılaşırsanız, bu konuya yazın, göstergeleri ekleyin, grafikteki çizgileri gösterin ve yapamadığınız şeyi ayrıntılı olarak açıklayın. “Göstergeye bir uyarı eklemeniz gerekiyor” gibi, nerede ve ne yapacağınızı açıklamadan ve göstergeleri sağlamadan gönderilen bir mesaj yardımcı olmaz.
www.expforex.com’dan “Uyarılar ve Oklar” Kodu
Uyarımızı göstergenize eklemenin sonraki adımı birkaç noktadan oluşmaktadır:
ADIM 1
Uzman Danışmanın başlangıcına, OnCalculate() fonksiyonundan önce aşağıdaki kodu ekleyin:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ extern string Alerts="www.expforex.com'dan Uyarılar ve Oklar"; extern bool AlerT=true; // Ekrana uyarı ver extern bool Mail=true; // Mesaj gönder extern bool Push=true; // Telefona PUSH gönder extern bool Arrow=true; // Sinyallere ok koy extern int shift=1; // Sinyali hangi bar üzerinde saymak 0 - mevcut, 1 - kapalı int timeee; // İç değişken string nameInd; void SetArrow(int cd, color cl, string nm="", datetime t1=0, double p1=0, int sz=3) { if(nm=="") nm=DoubleToStr(Time[0], 0); if(t1 <= 0) t1=Time[0]; if(p1 <= 0) p1=Bid; nameInd=WindowExpertName(); int wind=WindowFind(nameInd); wind=0; if(ObjectFind(nm) < 0) ObjectCreate(nm, OBJ_ARROW, wind, 0, 0); ObjectSet(nm, OBJPROP_TIME1, t1); ObjectSet(nm, OBJPROP_PRICE1, p1); ObjectSet(nm, OBJPROP_ARROWCODE, cd); ObjectSet(nm, OBJPROP_COLOR, cl); ObjectSet(nm, OBJPROP_WIDTH, sz); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void Expforex_AlertArrow(string text="", int arrowdir=0, bool history=false, int i=0) { nameInd=WindowExpertName(); int wind=WindowFind(nameInd); if(wind==-1) wind=0; ObjectCreate("Originalalert", OBJ_LABEL, wind, 0, 0); ObjectSetText("Originalalert", "AlertArrow Değişikliği www.expforex.com", 10, "Arial Bold", Red); ObjectSet("Originalalert", OBJPROP_CORNER, 2); ObjectSet("Originalalert", OBJPROP_XDISTANCE, 200); ObjectSet("Originalalert", OBJPROP_YDISTANCE, 10); if(!history) { if(AlerT) Alert(text); if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift], 0), Time[shift], Low[shift]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift], 0), Time[shift], High[shift]); if(!IsTesting()) if(Mail) SendMail(text, text); if(!IsTesting()) if(Push) SendNotification(text); } if(history) { if(Arrow) if(arrowdir==1) SetArrow(241, Blue, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], Low[shift + i2]); if(Arrow) if(arrowdir==2) SetArrow(242, Red, nameInd + DoubleToStr(Time[shift + i2], 0), Time[shift + i2], High[shift + i2]); } }//+==+//+ www.expforex.com edit AlertArrow +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { for(int i=ObjectsTotal(); i>=0; i--) { if(StringFind(ObjectName(i), nameInd)!=-1) ObjectDelete(ObjectName(i)); } } //+------------------------------------------------------------------+
ADIM 2
OnCalculate() fonksiyonunu kapatmadan önce, aşağıdaki kodu ekleyin:
return(rates_total); }
Aşağıdaki kodu yapıştırın:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ nameInd=WindowExpertName(); if(timeee != Time[0] && SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP", 1); timeee=Time[0]; } if(timeee != Time[0] && SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN", 2); timeee=Time[0]; }//+==+//+ www.expforex.com edit AlertArrow +//+==+
ADIM 3
Bu kod bizim sinyalimiz olarak hizmet edecektir.
Tabii ki, bazı kodları kendi kodunuzla değiştirmelisiniz.
Aşağıdaki kod, bir uyarı için sinyal olarak hizmet eder:
1. 0 çizgisinin üstten (alttan) aşağıya (yukarıya) doğru kesişmesi ise, şu şekilde görünecektir:
SarBuffer[shift+1] >= 0 && SarBuffer[shift] < 0
2. Gösterge mevcut fiyatı veya bir barı keser, gösterge tarafından bir bar kırılması vb. :
SarBuffer[shift+1] >= Close[shift] && SarBuffer[shift] < Close[shift]
3. Eğer bu benzersiz seviyelerin kesişmesi ise, stokastikler gibi göstergeler:
SarBuffer[shift+1] <= 75 && SarBuffer[shift] > 75; SarBuffer[shift+1] >= 25 && SarBuffer[shift] < 25;
Kullanım Sonrası
Göstergede ses sinyali eklemek için aşağıdaki adımları izleyin:
- 1. Göstergenin ayarlarını açın.
- 2. “Uyarı” veya “Oklar” bölümünü arayın.
- 3. Sesli uyarı ekleme seçeneğini seçin.
- 4. Uyarı olarak kullanmak istediğiniz ses dosyasını seçin.
- 5. Değişiklikleri kaydedin.
Göstergede ses sinyali ekleyerek, belirli koşullar karşılandığında işitsel bildirim alabilirsiniz, bu da daha iyi ticaret kararları almanıza yardımcı olabilir.
Tarihçede Oklarınız Olması Gerekiyorsa, Bunu Yapmanız Gerekir:
Yukarıdaki koddaki ekleyin, aşağıdaki ekleyin:
//+==+//+ www.expforex.com edit AlertArrow +//+==+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ if(counted_bars > 0) counted_bars--; int limit2 = Bars - counted_bars; for(int i2 = 0; i2 < limit2; i2++) { nameInd = WindowExpertName(); if(SarBuffer[shift+1+i2] <= 75 && SarBuffer[shift+i2] > 75) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " UP" + i2, 1, true, i2); } if(SarBuffer[shift+1+i2] >= 25 && SarBuffer[shift+i2] < 25) { Expforex_AlertArrow(Symbol() + " " + Period() + nameInd + " DN" + i2, 2, true, i2); } } //+==+//+ www.expforex.com edit AlertArrow +//+==+
Örnekler
Bu örnekler, forumumuzun ilgili bölümünden alınmıştır. Göstergeleri yukarıda açıklanan ilkelere göre değiştirdim.
Sonuçlar
Bu makalede, göstergede sinyal oluşturma sürecini en detaylı ve anlaşılır şekilde açıkladım.
Yukarıdaki kod herhangi bir göstergede kısıtlama olmaksızın kullanılabilir. Eklerken yazarın adını değiştirmemek önemlidir.
Bu makaleyi beğendiyseniz ve bu sinyal ekleme yöntemini faydalı bulduysanız, lütfen yorumlarınızı bırakın ve konuları derecelendirin.
- Freelance: MetaTrader ve MQL’de Özel Programlama!
- Sinyal Bar Göstergesi. Sinyali hangi bardan almalısınız? Göstergeleri çizme.
- CrossObjectALert Göstergesi, mt4 ve mt5 terminalleri için nesnelerle kesişirken uyarı gösterge
- MetaTrader’de e-posta ve push ile çalışma
Sinyal Bar: Bunu Bilmek Önemlidir
Sorularınız mı Var?
Herhangi bir sorunuz varsa, lütfen sorun. Pişi satmıyoruz.
Ayrıca, ürünlerimizin her biri satın almadan önce test edilebilir.
Ürünlerimize gösterdiğiniz ilgi ve destek için teşekkür ederiz ve yüksek kalite standartlarını korumaya çalışıyoruz.
Bizimle olduğunuz için teşekkür ederiz!
Bir sorunuz mu var?
This post is also available in: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어
Leave a Reply