Sormak! - sayfa 38

 

Ian,

Straddle&Trail uzmanını kontrol edin. burada bulabilirsiniz https://www.mql5.com/en/forum/general

 

Hepinize merhaba,

Tüm siparişlerimi aynı anda kapatmak istiyorum ama yapamıyorum.

Bu kodu denedim ama işe yaramadı:

'''''''''''''''''''''''''''''''''

toplam = SiparişlerToplam();

for(i=0;i < toplam;i++)

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

OrderClose(OrderTicket(),OrderLots(),Ask,80, CLR_NONE );

OrderClose(OrderTicket(),OrderLots(),Bid,80,CLR_NONE);

}

}

'''''''''''''''''''''''''''''''''

Birisi bana yardım edebilir mi ?

bana yardımcı olabilirseniz çok minnettar olurum

 

Mehdi,

Bu kodu (prosedür) start() bölümünün dışına koyun ve tüm işlemleri kapatmak için koşul karşılandığında, prosedürü şöyle çağırın:

int başlangıç()

{ // kodunuz burada .....

If (buradaki durumunuz) ShutDownAllTrades();

}

ShutDownAllTrades'i geçersiz kıl

{ int Yeniden Dene;

while (OrdersTotal()>0)

{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderType()==OP_BUY)

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

Yenileme Oranları();

OrderClose(OrderTicket(),OrderLots(),Bid,Kayma,Sarı);

Uyku(1000);

}

else if (OrderType()==OP_SELL)

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

Yenileme Oranları();

OrderClose(OrderTicket(),OrderLots(),Ask,Kayma,Sarı);

Uyku(1000);

}

başka

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

OrderDelete(OrderTicket());

Uyku(1000);

}

}

}

}

HTH

Yannis

 

Sevgili Yannis,

Yardımın için teşekkürler.

Hakkında hayırlısı olsun.

 
Yannis:
Mehdi,

Bu kodu (prosedür) start() bölümünün dışına koyun ve tüm işlemleri kapatmak için koşul karşılandığında, prosedürü şöyle çağırın:

int başlangıç()

{ // kodunuz burada .....

If (buradaki durumunuz) ShutDownAllTrades();

}

ShutDownAllTrades'i geçersiz kıl

{ int Yeniden Dene;

while (OrdersTotal()>0)

{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if (OrderType()==OP_BUY)

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

Yenileme Oranları();

OrderClose(OrderTicket(),OrderLots(),Bid,Kayma,Sarı);

Uyku(1000);

}

else if (OrderType()==OP_SELL)

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

Yenileme Oranları();

OrderClose(OrderTicket(),OrderLots(),Ask,Kayma,Sarı);

Uyku(1000);

}

başka

{ Yeniden dene=0; while (Yeniden Dene<5 && !IsTradeAllowed()) { Yeniden Dene++; Uyku(1000); }

OrderDelete(OrderTicket());

Uyku(1000);

}

}

}

}

HTH

Yannis

Sevgili Yannis,

Prosedürünüzü dediğiniz gibi " int deinit() { } " (başlama dışı) arasına ekledim ama void ShutDownAllTrades { : '{' virgül veya noktalı virgül bekleniyor sonra derleme ile ilgili bir sorun var.

Cevabınızı sabırsızlıkla bekliyorum.

Çok teşekkürler

 

Ayy üzgünüm.

Eksik olan, () void ShutDownAllTrades ()' den sonraki

orderclose işlevindeki 'Slippage' adlı değişken için de dikkatli olun.

Bunu, siparişlerinizi verirken kullandığınızla değiştirmeniz gerekebilir.

Yannis

 
Yannis:
Ayy üzgünüm.

Eksik olan, () void ShutDownAllTrades ()' den sonraki

orderclose işlevinde 'Slippage' adlı değişken için de dikkatli olun.

Bunu, siparişlerinizi verirken kullandığınızla değiştirmeniz gerekebilir.

Yannis

çok iyi çalışıyor !

Tekrar teşekkürler

 

Çoklu Zaman Çerçevesi göstergeleri iş parçacığında MTF CCI göstergesi kullanıyorum, bu sarı bir adım çizgisi, ekteki resme bakın.

Çizgi 100 seviyesinin üzerinde olduğunda (aşırı alım)- fiyat düşecek ve -100'ün altına düştüğünde (aşırı satım)- fiyat yükselecektir.

Bununla ilgili tek sorun, her zaman yenilenmemesi, bunu grafiğe sağ tıklayıp 'Yenile'yi seçerek manuel olarak yapmam gerekiyor.

Programcılara bir soru: MQ4'te her tıklamada bu tür bir yenilemeyi otomatik olarak yapmak için herhangi bir işlev var mı?

Bir tavsiye için minnettar olurum.

Avrupalı

Dosyalar:
mtf_cci.jpg  37 kb
 

Bunu dene:

void ObjectsRedraw()

Grafikteki tüm nesneleri yeniden çizer

Örneklem

NesnelerRedraw();

Önce ObjectCreate kullanmanız gerekebilir .

 
richx7:
Bunu dene:

void ObjectsRedraw()

Grafikteki tüm nesneleri yeniden çizer

Örneklem

NesnelerRedraw();

Önce ObjectCreate kullanmanız gerekebilir.

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

Bildiğim kadarıyla ObjectsRedraw() henüz 'oluşturulmuş' ve 'ayarlanmış' nesneleri yeniler.

Nesne listesinde olmayan bir göstergeyi yenilemem gerekiyor, bu nedenle ObjectsRedraw() çalışmıyor.

Veya mevcut bir göstergeye nasıl atıfta bulunacağınızı biliyor musunuz?