EA'ları ve göstergeleri al/sat - sayfa 4

 
cifox:
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(OrderSelect(1, SELECT_BY_POS)==true)

{

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

 
 

Tamam, cevabınız için teşekkürler NewDigital. Şimdi, kodumun şu olduğunu düşünüyorum:

if (TimeDayOfYear(TimeCurrent())!=DayOfLastTrade)

{

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

'\end_of_program' - unbalanced left parenthesis (259, 1)
 

Demek ki bu

{[/CODE]

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:

DayOfLastTrade=(TimeDayOfYear(TimeCurrent());
 

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

Neden: