Nasıl kodlanır? - sayfa 84

 

100'lerde al ve sat

zamanib,

Yazdıklarını anlıyorum ama nasıl bir kârla kapatıyorsun anlamıyorum.

Bu bana Hedge tipi bir EA gibi görünüyor.

Forex-tsd'de bunlardan birkaçı var,

ve Martingale zorunda değilsiniz.

büyük olmak

 
european:
Herkes TakeProfit değerinde bir Siparişin Nasıl Kapatılacağına dair fikir/kod paylaşabilir.

Nedense OrderSend() işlevindeki 'TakeProfit' MT4'teki açığa/satış siparişlerinde her zaman çalışmaz, ancak uzun/alış siparişlerinde iyi çalışır.

Siparişin TakeProfit değerini mevcut fiyatla karşılaştıran bir kod yazdım ama düzgün çalışmıyor. Herhangi bir fikir?

euro

uzunlar "alış" fiyatından, şortlar "ask" fiyatından kapatılır.

 
Big Be:
zamanib,

Yazdıklarını anlıyorum ama nasıl bir kârla kapatıyorsun anlamıyorum.

Bu bana Hedge tipi bir EA gibi görünüyor.

Forex-tsd'de bunlardan birkaçı var,

ve Martingale zorunda değilsiniz.

büyük olmak

Piyasanın bir hafta yukarı ve aşağı dalgalar halinde hareket ettiğini görüyorum, 2 döngü yukarı/aşağı olsun, trend olduğunda farklı bir stratejim var. manuel ticaret yapıyorum

lütfen beni çit ea'ya yönlendirin. çok görüyorum. ama tam olarak ne istediğimi değil.

 

kod veya platform sorunu?

ralph.ronnquist:
uzunlar "alış" fiyatından, şortlar "ask" fiyatından kapatılır.

Cevabınız için teşekkürler.

Nedense kodum çalışmıyor:

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Kapat[0] >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Kapat[0] <= OrderTakeProfit()) CloseOrder(orderNo); }

tavsiye için minnettar olurum.

euro

 
european:
Cevabınız için teşekkürler.

Nedense kodum çalışmıyor:

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Close[0] >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Close[0] <= OrderTakeProfit()) CloseOrder(orderNo); }

[/PHP]

I would be grateful for advice.

euro

Doğru; "Kapat[0]", bir OP_SELL'in kapatıldığı fiyat olmayan "teklif" fiyatıdır. Bir OP_SELL, "teklif" fiyatının birkaç pip (diğer adıyla spread) üzerinde olan "ask" fiyatına karşı kapatılır.

EA'nız çalıştığında, "teklif" fiyatı, "Teklif" adlı değişken olarak ve "Sor" fiyatı, "Sor" adlı değişken olarak da mevcuttur. Yani kod parçacığı şöyle görünse daha iyi olurdu:

[PHP]if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Sor <= OrderTakeProfit()) CloseOrder(orderNo); }

 

Lütfen kod konusunda yardım edin, teşekkürler...

Merhaba,

EA yazarken yeniyim, aşağıdakini deniyordum ama "OrderModify işlevi için geçersiz bilet" hatası alıyorum, Birisi lütfen bir göz atıp yardım edebilir mi? şimdiden teşekkür ederim.

geçersiz ModifyHedgeSL(int SL) {

(SL<1) dönerse;

bool bres;

çift sl,openadj;

if (lastopenbuy==1 && lastopensell==0) {openadj=Teklif Sor;} else {openadj=0;}

for (int i = 0; i < OrdersTotal(); i++) {

OrderSelect (i, SELECT_BY_POS,MODE_TRADES);

if ( OrderSymbol() == Symbol() || OrderMagicNumber() == ExpertId && OrderType() == OP_BUY )

{

sl = GetLastLongOpenPrice()-openadj-SL*Point;

bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, Beyaz);

if (bres) Print("Çit Alımının Değiştirilmesi tamamlandı");

if (!bres) Print("Hedge SATIN AL emrini değiştirirken hata oluştu : ",ErrorDescription(GetLastError()));

}

if ( OrderSymbol() == Symbol() || OrderMagicNumber() == ExpertId && OrderType() == OP_SELL )

{

sl = GetLastShortOpenPrice()-openadj+SL*Noktası;

bres = OrderModify (OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, Altın);

if (bres) Print("Hedge SATIŞI tamamlandı");

if (!bres) Print("Hedge SATIŞ emrini değiştirirken hata oluştu : ",ErrorDescription(GetLastError()));

}

}

dönüş;

}

çift GetLastLongOpenPrice() {

int ord;

çift LastLongOpenPrice=0;

//----

for (int i = 0; i <= OrdersTotal(); i++)

{

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if (OrderSymbol() == Symbol() && OrderMagicNumber()==expertId && OrderType() == OP_BUY)

{

LastLongOpenPrice=OrderOpenPrice();

}

}

if (LastLongOpenPrice>0) {return(LastLongOpenPrice);}

başka {dönüş(-1);}

}

 

SL vurulduğunda alım/satım emirleri nasıl kodlanır?

Örneğin, 164.30'da 1 lot EUR/JPY ve 164.00'da Sl alırsam.

SL vurulursa, o zaman aynı fiyattan, 164,30'dan, aynı SL'nin 164'ten ve daha fazla lotla, diyelim ki 1.5'ten başka bir satın alma emri vereceğim. Daha sonra SL tekrar vurulursa, aynı SL ile aynı fiyattan 2 lot satın almak için başka bir satın alma emri verilir.

Bunun için herhangi bir kod var mı? Teşekkürler!

 
boostrade:
Örneğin, 164.30'da 1 lot EUR/JPY ve 164.00'da Sl alırsam.

SL vurulursa, o zaman aynı fiyattan, 164,30'dan, aynı SL'nin 164'ten ve daha fazla lotla, diyelim ki 1.5'ten başka bir satın alma emri vereceğim. Daha sonra SL tekrar vurulursa, aynı SL ile aynı fiyattan 2 lot satın almak için başka bir satın alma emri verilir.

Bunun için herhangi bir kod var mı? Teşekkürler!

Frank EA ile ilgili bu konuya bakın https://www.mql5.com/en/forum

Bence ihtiyacın olan şey bu ya da örnek olarak kullanabilirsin.

 

tamam

newdigital:
Frank EA ile ilgili bu konuya bakın https://www.mql5.com/en/forum Sanırım ihtiyacınız olan şey bu veya örnek olarak kullanabilirsiniz.

tks çok yenidijital, buraya koyacağım herhangi bir soru. tekrar tskler

 

TP sorunu

if (OrderSelect(orderNo, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY && Bid >= OrderTakeProfit()) CloseOrder(orderNo);

if (OrderType() == OP_SELL && Ask <= OrderTakeProfit()) CloseOrder(orderNo); }

Ralph,

Gördüğünüz gibi, önerdiğiniz gibi 'Sor' ve 'Teklif'i kullandığım ayrı bir CloseOrder() işlevi çağırıyorum, ancak sorun hala devam ediyor.

// İşlev KapatSipariş *************************************************** ***************

bool CloseOrder(int orderT) {

çift sA;

if (OrderSelect(orderT, SELECT_BY_TICKET)==true) {

if (OrderType() == OP_BUY) sA = Teklif;

başka sA = Sor;

bool bClosed = OrderClose(orderT,OrderLots(),sA,0, CLR_NONE );

if (bKapalı == 1) {

pTicaret = 0; dönüş(1); }

başka dönüş (0); }}

******************************************************* ********

TP vurulduğunda ticaretin kapanacağını garanti edeceğini umuyordum, ancak durum böyle değil, 104.03'te TP ile 103.79'da kısa siparişin açıldığı ekli tabloya bakın. Fiyat isabet etmesine rağmen (TP) sipariş kapatılmadı.

Dosyalar:
tp_failed.jpg  32 kb