Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 351
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit()>= NormalizeDouble (TP*Point,Digits))
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);
if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}
}
evet ve ayrıca, bir açık sipariş için yalnızca bir kez çalışmasını nasıl sağlayabilirim?
Lütfen bu işlevdeki hataları düzeltmeme yardım edin. Zaten tüm suyu benden sıktı. Fonksiyonun özü, belirli bir kâra ulaşıldığında, fonksiyonun emrin yarısını kapatması gerekir.
evet ve ayrıca, bir açık sipariş için yalnızca bir kez çalışmasını nasıl sağlayabilirim?
Lütfen bu işlevdeki hataları düzeltmeme yardım edin. Zaten tüm suyu benden sıktı. Fonksiyonun özü, belirli bir kâra ulaşıldığında, fonksiyonun emrin yarısını kapatması gerekir.
void CloseHalfOrder(){
for (int i = 0; i<=OrdersTotal(); i++)
{
if (OrderSelect (i,SELECT_BY_POS,MODE_TRADES) == true)
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic){//Нефига тут профиту делать, это так, для убыстрения....
if(OrderProfit()>= NormalizeDouble (TP*Point,Digits)) //А тут вообще непонятки что с чем сравниваете....
{
if (OrderType() == OP_BUY)
double Lots = OrderLots();
double HalfLot = NormalizeDouble (Lots*0.5,2);// Тут озаботится чтобы лот не стал меньше минимального
OrderClose(OrderTicket(),HalfLot,Bid,0,HotPink);
if (OrderType() == OP_SELL)
double Lots1 = OrderLots();
double HalfLot1 = NormalizeDouble (Lots*0.5,2);
OrderClose(OrderTicket(),HalfLot1,Ask,0,HotPink);
}
}
}
}
}
evet ve ayrıca, bir açık sipariş için yalnızca bir kez çalışmasını nasıl sağlayabilirim?
Emirlerin kısmi kapanma prensibini buradan görebilirsiniz.
Teşekkür ederim. Ama yine de önce hatalarımı anlamak istiyorum. Ben de aynı şekilde çalışıyorum .. Dahası, bana gerçeğe çok yakınım gibi geliyor.
tekrar.. Fonksiyon çalışmıyor. Hataları anlamak istiyorum. + 1 açık sipariş için sadece 1 kez çalışması nasıl yapılır? Şimdiden çok teşekkür ederim)
tekrar.. Fonksiyon çalışmıyor. Hataları anlamak istiyorum. + 1 açık sipariş için sadece 1 kez çalışması nasıl yapılır?
Sipariş için bir kez çok net bir durum değil. Peki burada muhtemelen global değişkenler kullanılmalıdır. Birkaç sipariş olabilir ve her biri yalnızca bir kez olabilir mi?
tekrar.. Fonksiyon çalışmıyor. Hataları anlamak istiyorum. + 1 açık sipariş için sadece 1 kez çalışması nasıl yapılır?
Aşağıdaki duruma sahibim. Expert Advisor'ın birkaç modülü vardır, her modül birkaç kullanıcı işlevine sahiptir. Kodda boğulmamak için her modülü betiklere koymaya karar verdim. İşte bir Uzman Danışmandan komut dosyası çağırmak için bir satış seçeneği. Ancak burada şu sorun ortaya çıkıyor: komut dosyasını çağırırken, ona bazı parametreler iletmeniz gerekiyor. Global değişkenleri kullanabilirsiniz. Başka hangi seçenekleri düşünebilirsiniz?
Hemen söylüyorum: iCustom () aracılığıyla "daha basit" seçenek iki nedenden dolayı bana uymuyor. İlk olarak, modüle yapılan çağrı kalıcı değil, bellekte epizodik olmalıdır. İkincisi, gösterge dizileri kullanmıyorum.
Sipariş için bir kez çok net bir durum değil. Peki burada muhtemelen global değişkenler kullanılmalıdır. Birkaç sipariş olabilir ve her biri yalnızca bir kez olabilir mi?
Piyasada sadece bir sipariş olabilir. Şu anda, bu işlev hiç çalışmıyor .. nedense. Ama normal çalışıyorsa, kazancı belirlenen puan sayısından fazla olduğu sürece sürekli çalışacağını anlıyorum. Tabii ki, pozisyonun sadece bir kez yarısını kapatması gerekiyor ve hepsi bu. Ama yeni başlayanlar için, en azından kazanırdı)
Aşağıdaki duruma sahibim. Expert Advisor'ın birkaç modülü vardır, her modül birkaç kullanıcı işlevi görür. Kodda boğulmamak için her modülü betiklere koymaya karar verdim. İşte bir Uzman Danışmandan komut dosyası çağırmak için bir satış seçeneği. Ancak burada şu sorun ortaya çıkıyor: komut dosyasını çağırırken, ona bazı parametreler iletmeniz gerekiyor. Global değişkenleri kullanabilirsiniz. Başka hangi seçenekleri düşünebilirsiniz ?
Hemen söylüyorum: iCustom () aracılığıyla "daha basit" seçenek iki nedenden dolayı bana uymuyor. İlk olarak, modüle yapılan çağrı kalıcı değil, bellekte epizodik olmalıdır. İkincisi, gösterge dizileri kullanmıyorum.
Bir seçenek olarak kütüphane sorunu.