
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Merhaba Ustalar ......, Bir seferde açık alım veya açık satış için EA yapmama yardım eder misiniz ...
Yazınızı buraya taşıdım.
İlk gönderiden itibaren bu konuyu okuyun ve birkaç EA bulacaksınız.
Günde sadece bir alış ve bir satış açın!
Merhaba millet,
EA ile küçük bir sorunum var. Fiyat hareketine dayalıdır ve bir gün içerisinde birden fazla pozisyon açar. Bunu sınırlamak istiyorum ama nasıl yapacağımı anlamadım.
Yapmak istediğim şey şöyle bir şey:
Eğer o gün içinde zaten bir alış pozisyonu açtıysanız, başka bir ALIŞ pozisyonu açmayın. Ancak bir satış sinyali bulursanız, bir satış sinyali açın. Bu durumda, bundan sonra başka bir satış sinyali bulursanız, başka satış pozisyonları açmayın.
Bunu nasıl yazacağımı bilmiyorum ve doğru pozisyon nedir? Bana yardımcı olabilir misiniz?
Çok teşekkürler!!!
Saygılarımızla,
Mauro
DÜZENLE:
Başka bir konuda bu kodu buldum ama nereye ve nasıl eklendiğini bilmiyorum:
{
if(TimeToStr(OrderOpenTime(),TIME_DATE ) != TimeToStr(CurTime(),TIME_DATE ))
{
//open new order
}
}Bu başlıkta aradığım şeyle ilgili hiçbir şey yok... bu konu aynı anda hem alıp hem de satmakla ilgili...Ama bahsettiğim şey şu ki, EA'mda zaten bir Satın Alma emri açtıysam. gün açık yeni satın alma emri yok. Aynı şey zaten bir satış emri açtıysa .
Ancak gün içerisinde alış emri açarsa yukarıda yazılı kurallara uyarak sadece satış emri açabilir.
Misal:
Zaman: bugün
EA bir Satın Alma emri açar.
Pozisyon TakeProfit veya StopLoss'a ulaşır, bu nedenle kapanır.
Şimdi, EA başka bir satın alma sinyali görebiliyor, ancak önceki seferde zaten bir ALIM SİPARİŞİ açtığını gördü, bu siparişi açmıyor.
Şimdi EA bir SAT sinyali görüyor ve henüz bir SATIŞ EMRİ açmadığını görünce SAT pozisyonu açıyor.
Pozisyon TakeProfit veya StopLoss'a ulaşır, bu nedenle kapanır.
Şimdi, EA başka bir satış sinyali görebiliyor ancak önceki seferde zaten bir SATIŞ EMRİ açmış olduğunu gördü, bu emri açmıyor.
Aradığım bu....
Bu durumda şu 2 konuya ihtiyacınız var:
https://www.mql5.com/en/forum/176322
https://www.mql5.com/en/forum/173026
Tamam, cevabınız için teşekkürler NewDigital. Şimdi, kodumun şu olduğunu düşünüyorum:
{
ticket=OrderSend(....
DayOfLastTrade=(TimeDayOfYear(TimeCurrent());
}
[/CODE]
So, can you check if I have added this code in the right way on my code?Here it is
[CODE]if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}
if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
if (TimeDayOfYear(TimeCurrent())!=DayOfLastTrade)
{
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "MaxPower Buy Order", MagicNumber, 0, DodgerBlue);
DayOfLastTrade=(TimeDayOfYear(TimeCurrent());
}
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}Yukarıdaki kod sadece alış pozisyonu içindir, bu yüzden sadece alış pozisyonu açmalıdır. Aynı şeyi SAT ile ilgili kod için de yapsam sadece satış pozisyonu açmalı değil mi?
Yardımın için teşekkürler.
Mauro
MMM...Metaeditör bir hata olduğunu söylüyor...
Demek ki bu
and
[CODE]}dengesizdir.
Kodu kontrol edin .
Üzgünüm, ben bir kodlayıcı değilim, bu yüzden fazla yardımcı olamam.
Merhaba yenidijital...evet, farentez için biliyorum....ama tüm kodları kontrol ettim ve farentez dengeli...
mmm....Sorun nerede anlamıyorum....Ancak, kontrol etmeye devam edeceğim...Bir çözüm bulmayı umuyorum!
Her şey için teşekkürler...
Mauro
Örneğin bu:
MT4 hatalarını ayıklamak baş belası ama sabırlıysanız sorunu çözebilirsiniz.
Söyleyeceğim ilk şey, MT4'ün size sorunu söylediği yerde… değil! Yapacağım bir sonraki şey, büyük olasılıkla sorunlara neden olan karmaşık IF ifadesinde BÜYÜK kod parçalarını kesmeye başlamak.
Örneğin, eğer varsa...
if(){
//second if
if(){
//third if
if(){
}
}
}
Eğer 2 ve 3'ü keserdim ve sadece 1 ise bırakırdım. Derlemeye çalışın. Derlenirse, daraltmışsınızdır. Ardından 2 ve 3'ü geri yapıştırın ve ardından 3'ü kesin. Tekrar test edin. Bunu birkaç dakika yapmaya devam edin ve sonunda sorunu bulacaksınız.
İyi şanlar.
Lüks