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
Bu EA'yı kodlamaya yardımcı olacak biri var mı?
Merhaba,
Şu anda maksimum 4 seviye emir açacak bir martingale EA ile işlem yapıyorum. Sadece bu EA'yı kullanma riskini azaltabilecek bir riskten korunma stratejisi düşünüyorum. Aşağıda stratejimin bir açıklaması var:
1. Riskten korunma EA, açılış emirlerinin geri çekilmesini izleyecektir. Toplam değişken kayıplar önceden belirlenmiş bir miktardan daha büyükse, EA'yı açılış emirlerinin aksine korunan bir emir açması için tetikleyecektir.
2. Hedge edilen emrin lot büyüklüğü, son açılış emrinin lot büyüklüğünün bir katına (kullanıcı katını ayarlayabilir) göre hesaplanır (örneğin, son seviye emrin lot büyüklüğü 1,6 ise ve kat, 2, daha sonra korunan sipariş 3.2'de lot büyüklüğü ile açılacaktır.
3. Hedge edilen emir açılış seviyesine döndüğünde, korunan emir otomatik olarak kapatılacaktır.
4. Toplam sepet (açılış emirleri + korunan emir) önceden belirlenmiş bir net kar tutarına ulaştığında, tüm emirler kapatılacaktır.
İyi bir programcının bu riskten korunma EA'sını benim için kodlayıp yazamayacağını merak ediyorum. Diğer martingale EA için de çok faydalı olacağını düşünüyorum. Çok teşekkürler!
Saygılarımla,
Wallace
vay..
teşekkürler beyler..
al stop sat stop'a ne dersin?
oradaki "SATIN AL"ı değiştirmek mi?
sadece 1 çift için 2 pozisyon istiyorum, daha fazla değil..
üzgünüm hala acemi..
Bu indis EA'ya nasıl kodlanır?
Merhaba, ben yeni bir öğrenciyim ve mql öğrenmekle ilgileniyorum, biri bana bunu EA'ya nasıl kodlayacağımı söyleyebilir mi?
extern int Fast.MA.Period = 5;
extern int Slow.MA.Period = 34;
harici int Signal.period = 5;
//---- arabellekler
çift Tampon1[],
arabellek2[],
b2[],
b3[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- göstergeler
// saymak için kullanılan iki ek tampon
Gösterge Tamponları(4);
GöstergeShortName("MA_5_34");
SetIndexStyle(0,DRAW_OK,STYLE_SOLID,3);
SetIndexArrow(0,242); // aşağı 226 234 242
SetIndexBuffer(0,b2);
SetIndexStyle(1,DRAW_OK,STYLE_SOLID,3);
SetIndexArrow(1,241); //YUKARI 225 233 241
SetIndexBuffer(1,b3);
// Bu tamponlar çizilmez, sadece okları belirlemek için kullanılır
SetIndexBuffer (2,Buffer1);
SetIndexBuffer (3,Buffer2);
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Müşteri göstergesi sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Özel gösterge yineleme işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
int i, counted_bars=IndicatorCounted();
çift MA5,MA34;
int limit=Barlar-sayılan_barlar;
Print("baskı sınırı = ", sınır);
if(counted_bars>0) limit++; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Ana hat
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
{
MA5=iMA(NULL,0,Hızlı.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
Tampon1=MA5-MA34;
}
// Sinyal hattı
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);
} <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Oklar
for(i=0; i<limit; i++)
{
if(Tampon1 > Tampon2 && Tampon1 < Tampon2)
b2 = Yüksek+10*Puan;
if(Tampon1 Tampon2)
b3 = Düşük-10*Puan; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
}
//----
dönüş(0);
}
Teşekkürler arkadaşlar =^_^=
if(counted_bars>0) limit++; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Ana hat
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Sinyal hattı
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);
} <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Oklar
for(i=0; i<limit; i++)
{
if(Tampon1 > Tampon2 && Tampon1 < Tampon2)
b2 = Yüksek+10*Puan;
if(Tampon1 Tampon2)
b3 = Düşük-10*Puan; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
Teşekkürler arkadaşlar =^_^=Bu kolay.
İndi'nizi başlattığınızda, Bars=1000 (örneğin) ve counted_bars=0. Yani limit=1000 ve indi'niz 1000 çubuğun tamamını hesaplar. Bundan sonra counted_bars=1000 ve her yeni tik indi sadece son (sıfır) çubuğu hesaplar. Bir sonraki çubuk geldiğinde limit=1 ve indi son iki çubuğu yeniden hesaplar.
b3 = Düşük-10*Puan; - bu sadece barın minimumundan 10 puan daha düşük bir çizgi.
Merhaba, ben yeni bir öğrenciyim ve mql öğrenmekle ilgileniyorum, biri bana bunu EA'ya nasıl kodlayacağımı söyleyebilir mi?
extern int Fast.MA.Period = 5;
extern int Slow.MA.Period = 34;
harici int Signal.period = 5;
//---- arabellekler
çift Tampon1[],
arabellek2[],
b2[],
b3[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- göstergeler
// saymak için kullanılan iki ek tampon
Gösterge Tamponları(4);
GöstergeShortName("MA_5_34");
SetIndexStyle(0,DRAW_OK,STYLE_SOLID,3);
SetIndexArrow(0,242); // aşağı 226 234 242
SetIndexBuffer(0,b2);
SetIndexStyle(1,DRAW_OK,STYLE_SOLID,3);
SetIndexArrow(1,241); //YUKARI 225 233 241
SetIndexBuffer(1,b3);
// Bu tamponlar çizilmez, sadece okları belirlemek için kullanılır
SetIndexBuffer (2,Buffer1);
SetIndexBuffer (3,Buffer2);
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Müşteri göstergesi sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Özel gösterge yineleme işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
int i, counted_bars=IndicatorCounted();
çift MA5,MA34;
int limit=Barlar-sayılan_barlar;
Print("baskı sınırı = ", sınır);
if(counted_bars>0) limit++; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Ana hat
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
{
MA5=iMA(NULL,0,Hızlı.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
MA34=iMA(NULL,0,Slow.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);
Tampon1=MA5-MA34;
}
// Sinyal hattı
for(i=0; i<limit; i++) <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
{
Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);
} <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
// Oklar
for(i=0; i<limit; i++)
{
if(Tampon1 > Tampon2 && Tampon1 < Tampon2)
b2 = Yüksek+10*Puan;
if(Tampon1 Tampon2)
b3 = Düşük-10*Puan; <----birisi bana bunun ne anlama geldiğini açıklayabilir mi?
}
//----
dönüş(0);
}
Teşekkürler arkadaşlar =^_^=Bu göstergeyi bir adette kullanmak istiyorsanız, ona erişmek için icustom() işlevini kullanabilirsiniz. göstergenin herhangi bir kodunu gerçekten anlamanız gerekmez, sadece tükürdüğü verileri anlamanız gerekir. En azından bunu yapmanın kolay yolu bu.
Bu göstergeyi bir adette kullanmak istiyorsanız, ona erişmek için icustom() işlevini kullanabilirsiniz. göstergenin herhangi bir kodunu gerçekten anlamanız gerekmez, sadece tükürdüğü verileri anlamanız gerekir. En azından bunu yapmanın kolay yolu bu.
Anlamı, indis'i geri çağırmak için EA'daki icustom() işlevini kullanmak mı? EA'da kodlama nasıl yazılmalı? bana biraz rehberlik edebilir mi?
Çok teşekkürler
vay..
teşekkürler beyler..
al stop sat stop'a ne dersin?
oradaki "SATIN AL"ı değiştirmek mi?
sadece 1 çift için 2 pozisyon istiyorum, daha fazla değil..
üzgünüm hala acemi..
Oku bunu
MQL4 Eğitimi
Bu doğru kodlama mı?
harici çift TakeProfit=100;
dış çift Lot=1;
harici çift TrailingStop=35;
harici int KısaEma = 5;
harici int UzunEma = 34;
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//----
//----
dönüş(0);
}
//+------------------------------------------- -------------------+
//| uzman sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{
//----
//----
dönüş(0);
}
int Çapraz (çift satır1, çift satır2)
{
statik int son_yön = 0;
statik int akım_yön = 0;
if(line1>line2)current_direction = 1; //yukarı
if(line1<line2)current_direction = 2; //aşağı
if(current_direction != last_direction) //değiştirildi
{
last_direction = current_direction;
dönüş (son_yön);
}
başka
{
dönüş (0);
}
}
//+------------------------------------------- -------------------+
//| uzman başlatma işlevi |
//+------------------------------------------- -------------------+
int başlangıç()
{
//----
int toplam;
çift kısaEma, uzunEma;
shortEma = iCustom(NULL,0,"Test_Demo",13,0,0);
longEma = iCustom(NULL,0,"Test_Demo",54,0,0);
Print("shortEma = " + shortEma + " : longEma = " + longEma);
int Çapraz = 0;
isCrossed = Çapraz (UzunEma,KısaEma);
toplam = SiparişlerToplam();
if(toplam < 1)
{
if(isCrossed == 1)
{
1=SiparişGönder(Symbol(),OP_BUY,Lots,Sor,3,0,Ask+TakeProfit*Puan,"My EA",12345,0,Yeşil);
eğer(1>0)
{
if(OrderSelect(1,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());
}
else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());
dönüş(0);
}
if(isCrossed == 2)
{
2=SiparişGönder(Symbol(),OP_SELL,Lots,Bid,3,0,Teklif-AlKar*Noktası,"Benim EA",12345,0,Kırmızı);
eğer(2>0)
{
if(OrderSelect(2,SELECT_BY_TICKET,MODE_TRADES)) Print(" SAT emri açıldı : ",OrderOpenPrice());
}
else Print("SATIŞ emrini açarken hata: ",GetLastError());
dönüş(0);
}
dönüş(0);
}
}
1 ve 2 beklenmeyen belirteç derken bir hata alıyorum, bu ne anlama geliyor? bana rehberlik edebilir mi?
teşekkürler
Sanırım bir şeyi sildin ve unuttun:
saçmalık.
harici çift TakeProfit=100;
dış çift Lot=1;
harici çift TrailingStop=35;
1 ve 2 beklenmeyen belirteç derken bir hata alıyorum, bu ne anlama geliyor? bana rehberlik edebilir mi?
teşekkürlerOrderSend(....