![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Dema Değişkeni yanlış ayarlanmış
DEMA Değişkenleri bölümünü, sözdizimlerini doğru şekilde ayarlayamıyorum. DEMA1, DEMA2, DEMA3 kodları doğrudur.
Lütfen DEMA Değişkeni bölümünü düzeltmeye yardımcı olun.
if (Ticaret veya Uyarı) {
if (DEMA1)>(DEMA2) {KISA(Symbol()) ;}
if (DEMA1)<(DEMA2) {KAPALI(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2) )>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2) )<(DEMA3))";}
CheckTrailingStop (Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);
} başka {
if (DEMA1)>(DEMA2) {Uyarılarım("if (DEMA1)>(DEMA2)", "KISA (Symbol(),0.1,100,15,17)", Symbol());}
if (DEMA1)<(DEMA2) {Uyarılarım("if (DEMA1)<(DEMA2)", "KAPATMA(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {Uyarılarım("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "SATIN AL(Sembol) (),0.1,100,15,17)", Sembol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {Uyarılarım("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SAT(Symbol) (),0.1,100,15,17)", Sembol());}
}
g_bars_276 = Çubuklar;
dönüş (0);
}
//----DEMA DEĞİŞKENLERİ----Düzgün ayarlanmadı, yardım gerekiyor -----
int init() {
double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA1);
}
int start() {
double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA2);
}
int start() {
double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA3);
}
//
Dema Değişkeni Yanlış Ayarlandı
Aşağıdaki kodun "DEMA DEĞİŞKENLERİ" bölümünde sözdizimlerini doğru şekilde ayarlama sorunuyla karşı karşıyayım.
Ayrıca Dema Değişkenlerine göre "#include" bölümünden sonra nelerin ekleneceğini de söyleyin.
hataları alıyorum
'DEMA1' - değişken tanımlanmadı.
'DEMA2' - değişken tanımlanmadı.
'DEMA3' - değişken tanımlanmadı.
Lütfen yardım et.
if (Ticaret veya Uyarı) {
if (DEMA1)>(DEMA2) {KISA(Symbol()) ;}
if (DEMA1)<(DEMA2) {KAPALI(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2) )>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2) )<(DEMA3))";}
CheckTrailingStop (Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagicNumberShort, S_Symbol_TS_0);
} başka {
if (DEMA1)>(DEMA2) {Uyarılarım("if (DEMA1)>(DEMA2)", "KISA (Symbol(),0.1,100,15,17)", Symbol());}
if (DEMA1)<(DEMA2) {Uyarılarım("if (DEMA1)<(DEMA2)", "KAPATMA(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {Uyarılarım("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "SATIN AL(Sembol) (),0.1,100,15,17)", Sembol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {Uyarılarım("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SAT(Symbol) (),0.1,100,15,17)", Sembol());}
}
g_bars_276 = Çubuklar;
dönüş (0);
}
//----DEMA DEĞİŞKENLERİ----Düzgün ayarlanmadı, yardım gerekiyor -----
int start() {
double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA1);
}
int start() {
double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA2);
}
int start() {
double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE ,0),0));
dönüş(DEMA3);
}
//
MA+Stoch Uyarısı...lütfen
gösterge oluşturmama yardım eder misin : uyarılı MA+stoch
stok(5,3,3);MA(8);MA(15);MA(30)....
MA(8)>MA(15)>MA(30) ve %K, %D'nin üzerinde ancak seviye 50'nin altında olduğunda uyarı verir
MA(8)<MA(15)<MA(30) ve %D, %K'nın üzerine ancak 50. seviyenin üzerine çıktığında uyarı verir
Size çok teşekkür ederim
benim ingilizcem yabancı dil
anlayışla!
gösterge oluşturmama yardım eder misin : uyarılı MA+stoch
stok(5,3,3);MA(8);MA(15);MA(30)....
MA(8)>MA(15)>MA(30) ve %K, %D'nin üzerinde ancak seviye 50'nin altında olduğunda uyarı verir
MA(8)<MA(15)<MA(30) ve %D, %K'nın üzerine ancak 50. seviyenin üzerine çıktığında uyarı verir
Size çok teşekkür ederim
benim ingilizcem yabancı dil
anlayışla!Merhaba,
indis'lerimden birinden kod pasajı, onu ihtiyaçlarınıza göre uyarlamanız gerekir:
harici bool AlertON=yanlış;
harici bool EmailON=true;
harici bool SoundON=yanlış;
harici bool VoiceON=yanlış;
harici bool SMSON=yanlış;
extern string ExtSoundFileName = "";//silmek yerine harici ses dosyaları gerekli
FastMA = fastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAönceki < yavaşMAönceki))
{
if (i == 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON==true) Alert("Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime'da SATIN AL sinyali) ()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 BUY-ALP EUR","Satın Al sinyali at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SMSON==true) SendMail("2754 BUY-ALP EUR","Satın Al sinyali at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SoundON==true) PlaySound(ExtSoundFileName);//peep vb
if (VoiceON==true) PlaySound(ExtSoundFileName);// kendi konuşma wav
}
CrossUp = Düşük - Aralık*0.5;
}
else if ((fastMAnow yavaşMAönceki))
{
if (i == 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if ( AlertON ==true) Alert(" Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime'da SATIŞ sinyali) ()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 SATIŞ-ALP EUR", "Sinyal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SMSON==true) SendMail("2754 SATIŞ-ALP EUR", "Ask="+DoubleToStr(Ask,4)+" adresinde SAT sinyali, Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SoundON==true) PlaySound(ExtSoundFileName);//peeps vb.
if (VoiceON==true) PlaySound(ExtSoundFileName);// kendi konuşma wav
}
CrossDown = Yüksek + Aralık*0.5;
}
}
dönüş(0);
}
MA+Stoch Uyarısı...lütfen
Merhaba,
indis'lerimden birinden kod pasajı, onu ihtiyaçlarınıza göre uyarlamanız gerekir:
harici bool AlertON=yanlış;
harici bool EmailON=true;
harici bool SoundON=yanlış;
harici bool VoiceON=yanlış;
harici bool SMSON=yanlış;
extern string ExtSoundFileName = "";//silmek yerine harici ses dosyaları gerekli
FastMA = fastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAönceki < yavaşMAönceki))
{
if (i == 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON==true) Alert("Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime'da SATIN AL sinyali) ()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 BUY-ALP EUR","Satın Al sinyali at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SMSON==true) SendMail("2754 BUY-ALP EUR","Satın Al sinyali at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SoundON==true) PlaySound(ExtSoundFileName);//peep vb
if (VoiceON==true) PlaySound(ExtSoundFileName);// kendi konuşma wav
}
CrossUp = Düşük - Aralık*0.5;
}
else if ((fastMAnow yavaşMAönceki))
{
if (i == 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (AlertON==true) Alert("Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime'da SATIŞ sinyali) ()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 SATIŞ-ALP EUR", "Sinyal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SMSON==true) SendMail("2754 SATIŞ-ALP EUR", "Ask="+DoubleToStr(Ask,4)+" adresinde SAT sinyali, Bid="+DoubleToStr(Bid,4)+", Date=" +TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
if (SoundON==true) PlaySound(ExtSoundFileName);//peeps vb.
if (VoiceON==true) PlaySound(ExtSoundFileName);// kendi konuşma wav
}
CrossDown = Yüksek + Aralık*0.5;
}
}
dönüş(0);
}çok teşekkürler...ixbone
Çok kötü kod yazıyorum...Yani,kodunuzu anlayamıyorum....kullanmak için gösterge(.mq4) oluşturmama yardım edebilirsiniz.
eğer öyleyse çok teşekkür ederim
iyi bir çalışma günü dilerim!
Mevcut çubuğun yüksek olup olmadığını, önceki çubukların yüksekliğinden 2 pip daha büyük olup olmadığını nasıl kontrol edebilirim?
Bu soru için üzgünüm yanlış yer.
Lütfen bu yöneticiyi silin.
Teşekkürler!
Bir Siparişi Kısmen Kapatma
Merhaba,
İki düzeyde kar alacak bir EA kodlamaya çalışıyorum. Bunu yapmak için, ilk kâr hedefinde "x" lotlar ve ikinci kar hedefinde kalan lotlar çekilecek şekilde orijinal siparişi bölmek istiyorum. Bunu yapmak için iki OrderClose() işlevi kullanıyorum.
İlk OrderClose() işlevi mükemmel çalışıyor ancak aynı zamanda mevcut siparişi kapatıyor ve kalan partiler için yeni bir bilet oluşturuyor gibi görünüyor.
Birisi bana bu "yeni" biletin/siparişin ikinci CloseOrder() işlevi tarafından işlenebilmesi için nasıl ele alınacağı konusunda rehberlik edebilir mi?
Şerefe
Jim
Merhaba,
İki düzeyde kar alacak bir EA kodlamaya çalışıyorum. Bunu yapmak için, ilk kâr hedefinde "x" lotlar ve ikinci kar hedefinde kalan lotlar çekilecek şekilde orijinal siparişi bölmek istiyorum. Bunu yapmak için iki OrderClose() işlevi kullanıyorum.
İlk OrderClose() işlevi mükemmel çalışıyor ancak aynı zamanda mevcut siparişi kapatıyor ve kalan partiler için yeni bir bilet oluşturuyor gibi görünüyor.
Birisi bana bu "yeni" biletin/siparişin ikinci CloseOrder() işlevi tarafından işlenebilmesi için nasıl ele alınacağı konusunda rehberlik edebilir mi?
Şerefe
JimSadece bir fikir. Kısmi kâr elde etmek daha zorsa, bir yerine iki işlem kullanmayı deneyebilirsiniz. Ve bu işlemleri açık zamanlarına göre yönetmek.
Merhaba,
İki düzeyde kar alacak bir EA kodlamaya çalışıyorum. Bunu yapmak için, ilk kâr hedefinde "x" lotlar ve ikinci kar hedefinde kalan lotlar çekilecek şekilde orijinal siparişi bölmek istiyorum. Bunu yapmak için iki OrderClose() işlevi kullanıyorum.
İlk OrderClose() işlevi mükemmel çalışıyor ancak aynı zamanda mevcut siparişi kapatıyor ve kalan partiler için yeni bir bilet oluşturuyor gibi görünüyor.
Birisi bana bu "yeni" biletin/siparişin ikinci CloseOrder() işlevi tarafından işlenebilmesi için nasıl ele alınacağı konusunda rehberlik edebilir mi?
Şerefe
Jimİnsanların farklı referansları var, ben kısmi kapatmayı seviyorum çünkü komisyoncu için daha az işlem var.
Kısmi kapanış her gerçekleştiğinde, komisyoncu kalan emir yeni bir emirmiş gibi davranacaktır, bu nedenle yeni bir bilet atayın. Ancak, bir sonraki adımınız, alım satımları tanımlama yöntemi sipariş biletine dayalı olmadığı sürece , sipariş lotlarına dayalı olabilir veya EA'nın hangi aşamada olduğunu belirtmek için bir değişken atayabilirsiniz.
Aşağıdaki durum mevcutsa, kısmi kapatmanın tamamen doğru şekilde ele alınması biraz zordur:
1. Siparişleriniz MM nedeniyle farklı lot büyüklüğü olabilir.
2. Aynı anda farklı lot boyutunda birden fazla siparişiniz var.
EA'nız yukarıdaki durumlara sahipse ve kodlama konusunda deneyimli değilseniz, çoklu sipariş yaklaşımını kullanabileceğinizi düşünüyorum.
Basit sorun için hızlı düzeltme. Teşekkür ederim : )
Aşağıdaki değişkenleri döndürmek istiyorum:
1. Son kaydedilen Pazartesi'nin (Saat Çubuğu) ilk çubuk açılış fiyatı.
2. Kaydedilen son Çarşamba gününün son çubuk kapanış fiyatı (Saat Çubuğu).
Bunun nasıl yapılacağını bilen var mı ? Değişkenleri geçerken almayı denedim:
//------------------------------------------------ -------
if (güncel == 1 && geçerlizaman == 0)
{
PazartesiOpenPrice = iOpen(Symbol(),PERIOD_H1,0);
}
//------------------------------------------------ --------
Yukarıdakilerle ilgili sorun, bu değişkenleri korumak için metatrader'ımı tüm hafta boyunca her zaman çalıştıramam.
Bu yüzden EA'nın bir pazartesi günü kaydedilen ilk açılış fiyatı için geçmişe dönüp bakmasına ihtiyacım olacak.
Zaman ayırdığın için çok teşekkürler.