Nasıl kodlanır? - sayfa 269

 

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!

 
lequoctrieu:
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

ixbone:
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

 
jimdee:
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

Sadece 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.

 
jimdee:
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.