EA'yı düzeltmeye yardım edin

 

Biri bana bir EA'ya ince ayar yapmama yardım edebilir mi lütfen

daha iyisini yapabilir - tüm gördüğüm yanlış yerlerde alıp sattığını

Dosyalar:
jbtest3.mq4  5 kb
 
delcor wrote >>

Biri bana bir EA'ya ince ayar yapmama yardım edebilir mi lütfen

daha iyisini yapabilir - tüm gördüğüm yanlış yerlerde alıp sattığını

Stratejinizi açıklamak ister misiniz? İnce ayar yapmadan önce belirtilen stratejiye göre kodlanıp kodlanmadığını kontrol etmemiz gerekiyor.

Kodlar doğruysa ve EA'dan zayıf alım satımlar alıyorsak, o zaman strateji hatalı mı? Strateji, manuel ticaretten iyi çalışıyor mu?

 
ronaldosim :

Stratejinizi açıklamak ister misiniz? İnce ayar yapmadan önce belirtilen stratejiye göre kodlanıp kodlanmadığını kontrol etmemiz gerekiyor.

Kodlar doğruysa ve EA'dan zayıf alım satımlar alıyorsak, o zaman strateji hatalı mı? Strateji, manuel ticaretten iyi çalışıyor mu?

geri döndüğün için teşekkürler

strateji şudur - yalnızca ema kesiştiğinde satın almalı veya satmalıdır. iyi çalışan bir ayar var ve sadece haçlarda alıp satarsa kar eder

olduğu gibi bağladım ama 2 ema'nın çaprazında satın almıyor

açık siparişi kapatmalı ve kısa ema uzun ema'yı geçtiğinde ve tam tersi şekilde satın almalıdır. Bu aşamada sadece bunu yapmasını istiyorum.

sonra 2. aşamayı yapabiliriz. bu aşamada para yönetimi yok. programlamada yeniyim ama daha fazlasını öğrenmek istiyorum

bana yardım edebilir misin

olduğu gibi, işi eur/usd 15 ve 1h tf'de yapıyor - ama yeterli değil

 
delcor wrote >>

geri döndüğün için teşekkürler

strateji şudur - yalnızca ema kesiştiğinde satın almalı veya satmalıdır. iyi çalışan bir ayar var ve sadece haçlarda alıp satarsa kar eder

olduğu gibi bağladım ama 2 ema'nın çaprazında satın almıyor

açık siparişi kapatmalı ve kısa ema uzun ema'yı geçtiğinde ve tam tersi şekilde satın almalıdır. Bu aşamada sadece bunu yapmasını istiyorum.

sonra 2. aşamayı yapabiliriz. bu aşamada para yönetimi yok. programlamada yeniyim ama daha fazlasını öğrenmek istiyorum

bana yardım edebilir misin

olduğu gibi eur/usd 15 ve 1h tf'de işi yapıyor - ama yeterli değil

ben öyle şüpheleniyorum; EMA çaprazları için kodunuz yanlış

Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);

longema ve shortema için her biri iki iMA'ya ihtiyacınız var

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,KısaEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

ve çapraz kontrolü yapmak için

(SEMA1>LEMA1 && SEMA2<LEMA2) satın alma siparişi gönderirse

ve satmak için

eğer (SEMA1<LEMA1 && SEMA2>LEMA2) satış emri gönderirse

 
ronaldosim :

ben öyle şüpheleniyorum; EMA çaprazları için kodunuz yanlış

Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);

longema ve shortema için her biri iki iMA'ya ihtiyacınız var

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,KısaEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

ve çapraz kontrolü yapmak için

(SEMA1>LEMA1 && SEMA2<LEMA2) satın alma siparişi gönderirse

ve satmak için

eğer (SEMA1<LEMA1 && SEMA2>LEMA2) satış emri gönderirse

tamam yani

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,KısaEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

"Açık sipariş koşullarını kontrol et - "hareketli ortalama al" altına yerleştirilmelidir

ve "

(SEMA1>LEMA1 && SEMA2<LEMA2) satın alma siparişi gönderirse " nerede ?

ayrıca LEMA1 VE LEMA2'yi en üstte tanımlamalıyım


bu konuda henüz yeni

skype'ım delcor59, eğer benimle skype yapmak istersen

Yardımlarınız için teşekkürler

 
delcor wrote >>

tamam yani

SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);

LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);

SEMA2=iMA(NULL,0,KısaEma,0,MODE_EMA,PRICE_CLOSE,2);

LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

"Açık sipariş koşullarını kontrol et - "hareketli ortalama al" altına yerleştirilmelidir

ve "

(SEMA1>LEMA1 && SEMA2<LEMA2) satın alma siparişi gönderirse" nerede ?

ayrıca LEMA1 VE LEMA2'yi en üstte tanımlamalıyım

bu konuda henüz yeni

skype'ım delcor59, eğer benimle skype yapmak istersen

Yardımlarınız için teşekkürler

kendi kodlarını değiştirmek gibi bir şey ....

geçersiz CheckForOpen()
{
çift Ema;
int res;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüş;
//---- Hareketli Ortalamayı al
Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);
double SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
double LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
double SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
double LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

//---- satış koşulları
// if(Aç[1]>Ema && Kapat[1]<Ema)
eğer (SEMA1<LEMA1 && SEMA2>LEMA2)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Kırmızı);
dönüş;
}
//---- satın alma koşulları
// if(Aç[1]<Ema && Kapat[1]>Ema)
eğer (SEMA1>LEMA1 && SEMA2<LEMA2)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Mavi);
dönüş;
}
//----
}

geçersiz CheckForClose()
{
çift Ema;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüş;
//---- Hareketli Ortalamayı al
Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);
double SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
double LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
double SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
double LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) devam ediyor;
//---- sipariş tipini kontrol et
if(OrderType()==OP_BUY)
{
// if(Aç[1]>Ema && Kapat[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2) OrderClose(OrderTicket(),OrderLots(),Bid,3,Beyaz);
kırmak;
}
if(OrderType()==OP_SEL)
{
// if(Aç[1]<Ema && Kapat[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2) OrderClose(OrderTicket(),OrderLots(),Ask,3,Beyaz);
kırmak;
}
}
//----
}

 
ronaldosim :

kendi kodlarını değiştirmek gibi bir şey ....

geçersiz CheckForOpen()
{
çift Ema;
int res;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüş;
//---- Hareketli Ortalamayı al
Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);
double SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
double LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
double SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
double LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);

//---- satış koşulları
// if(Aç[1]>Ema && Kapat[1]<Ema)
eğer (SEMA1<LEMA1 && SEMA2>LEMA2)
{
res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Kırmızı);
dönüş;
}
//---- satın alma koşulları
// if(Aç[1]<Ema && Kapat[1]>Ema)
eğer (SEMA1>LEMA1 && SEMA2<LEMA2)
{
res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Mavi);
dönüş;
}
//----
}

geçersiz CheckForClose()
{
çift Ema;
//---- sadece yeni çubuğun ilk tikleriyle işlem yap
if(Volume[0]>1) dönüş;
//---- Hareketli Ortalamayı al
Ema=iMA(NULL,0,KısaEma,UzunEma,MODE_EMA,PRICE_CLOSE,0);
double SEMA1=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
double LEMA1=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,1);
double SEMA2=iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,2);
double LEMA2=iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,2);
//----
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==yanlış) ara;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) devam ediyor;
//---- sipariş tipini kontrol et
if(OrderType()==OP_BUY)
{
// if(Aç[1]>Ema && Kapat[1]<Ema)
if (SEMA1<LEMA1 && SEMA2>LEMA2) OrderClose(OrderTicket(),OrderLots(),Bid,3,Beyaz);
kırmak;
}
if(OrderType()==OP_SEL)
{
// if(Aç[1]<Ema && Kapat[1]>Ema)
if (SEMA1>LEMA1 && SEMA2<LEMA2) OrderClose(OrderTicket(),OrderLots(),Ask,3,Beyaz);
kırmak;
}
}
//----
}

tekrar teşekkürler

bazışeyler doğru değil. Ea'yı tekrar test ettiğimde sadece alımları gösteriyor ve satış yok

 
delcor wrote >>

tekrar teşekkürler

bazışeyler doğru değil. Ea'yı tekrar test ettiğimde sadece alımları gösteriyor ve satış yok

İlk önce hangi emrin verildiğine bağlı olarak, yani al veya sat, cross başladığında bir emir başlattığınızı ve zıt cross olduğunda emri kapattığınızı fark ettiniz; yr start() içinde, piyasa emrinin varlığını kontrol ettiğinizde, emir türlerinden birinin asla tetiklenmemesini önleyeceksiniz, yani al ile başladığınızda, her zaman satın alınacaktır; bir satış emriyle başladığınızda, her zaman bir satış emri olacaktır; bu kontrol koşulunu kaldır

 
ronaldosim :

İlk önce hangi emrin verildiğine bağlı olarak, yani al veya sat, cross başladığında bir emir başlattığınızı ve zıt cross olduğunda emri kapattığınızı fark ettiniz; yr start() içinde, piyasa emrinin varlığını kontrol ettiğinizde, emir türlerinden birinin asla tetiklenmemesini önleyeceksiniz, yani al ile başladığınızda, her zaman satın alınacaktır; bir satış emriyle başladığınızda, her zaman bir satış emri olacaktır; bu kontrol koşulunu kaldır

EA'nın altındaki kontrol koşulundan mı bahsediyorsunuz?

//+------------------------------------------- -------------------+
//| Başlatma işlevi |
//+------------------------------------------- -------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
başka CheckForClose();
//----

}


çünkü ayrıca var

geçersiz CheckForOpen()

geçersiz CheckForClose()

 
delcor :

EA'nın altındaki kontrol koşulundan mı bahsediyorsunuz?

//+------------------------------------------- -------------------+
//| Başlatma işlevi |
//+------------------------------------------- -------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
başka CheckForClose();
//----

}


çünkü ayrıca var

geçersiz CheckForOpen()

geçersiz CheckForClose()




söyle bana, bu EA çalıştığında ne olduğunu adım adım göstermek için EA programlamasında bir test sistemi var mı?

 
delcor wrote >>

EA'nın altındaki kontrol koşulundan mı bahsediyorsunuz?

//+------------------------------------------- -------------------+
//| Başlatma işlevi |
//+------------------------------------------- -------------------+
geçersiz başlangıç()
{
//---- geçmişi ve ticareti kontrol et
if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
başka CheckForClose();
//----

}

çünkü ayrıca var

geçersiz CheckForOpen()

geçersiz CheckForClose()

if(Bars<100 || IsTradeAllowed()==yanlış) dönüş;
//---- açık siparişleri mevcut sembole göre hesapla
CheckForOpen();
CheckForClose();
//----

Neden: