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
Üstün bir inceleme, çalışması gerektiğini gösteriyor. Ancak verimliliği artırabilirsiniz.
Grafiğinize kaç farklı nesne çizdiğinizi düşünün. Bu nesnelerden *herhangi birine* tıklarsanız, her bir siparişte dolaşacak ve bir eşleşme bulmaya çalışacaksınız. Birçok nesnenin muhtemelen siparişlerle hiçbir ilgisi yoktur. Bu verimsiz.
Bu yüzden "#" için ilk sparam karakterini kontrol etmeyi önerdim. Bu, nesneyi otomatik olarak bir siparişle ilgili olarak tanımlar.
Ayrıca, siparişler arasında dolaşmaya gerek yoktur. Nesne adı ve/veya nesne metni bilet numarasını zaten içeriyor. Bu yüzden oradan bilet numarasını çıkarın ve siparişi kapatın
Misal:
Bir sipariş açarsın. 12345 numaralı bilet verilir.
" #12345 " adında bir OBJ_BUTTON oluşturun
OnChartEvent() içindeki kod şuna benzer (derlenmemiş, denenmemiş, gece geç saatlerde...):
{
int ticket=( int ) StringSubstr (sparam, 1 ); // extract the ticket number
if ( OrderSelect (ticket, SELECT_BY_TICKET )) // select the order
{
if (! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 3 ,CLR_NONE)) // close the order
{
Print ( "# Error " , GetLastError ());
}
}
}
Vay! Bunu bilmiyordum.
Yani, iki kez bahsettiniz ve bunu tam olarak anlamadım.
Şimdi kendim test edeceğim ve ana EA dosyama getireceğim.
Çok daha fazla teşekkürler.
Diğer nesneler için OrderTicket() kullanıyorum, şimdi o nesnelere tıkladığımda görüyorum - sipariş kapat.
Yöntemini beğendim ama görünüşe göre diğer nesneleri etkiliyor.
Buradaki gibi diğer nesneler de onlardan biri.
Şimdiden teşekkürler.
Diğer nesneler için OrderTicket() kullanıyorum, şimdi o nesnelere tıkladığımda görüyorum - sipariş kapat.
Yöntemini beğendim ama görünüşe göre diğer nesneleri etkiliyor.
Buradaki gibi diğer nesneler de onlardan biri.
Şimdiden teşekkürler.
Daha zarif çözüm, adlandırma sisteminizi değiştirmektir
Bununla birlikte, yine de sipariş numarasını çıkarabilirsiniz. Bu sadece tam adlandırma biçimine bağlıdır.
Ama tüm bunlardan önce, düğmenin OBJPROP_TEXT'i nedir? Aynı OBJPROP_TEXT'e sahip başka nesneler var mı?
Daha zarif çözüm, adlandırma sisteminizi değiştirmektir
Bununla birlikte, yine de sipariş numarasını çıkarabilirsiniz. Bu sadece tam adlandırma biçimine bağlıdır.
Ama tüm bunlardan önce, düğmenin OBJPROP_TEXT'i nedir? Aynı OBJPROP_TEXT'e sahip başka nesneler var mı?
Evet! Düğme adlarını değiştirirsem, Button nesne adlarının adlarını değiştirebileceğimi biliyorum (ayrıca Prefix kullanıyorum), o zaman birçok şeyi değiştirebilirim, örneğin sistemi sil ve hepsi birbirine bağlı olan diğer şeyler.
Aşağıda Buton ve Hline isimleri bulunmaktadır.
"#" + IntegerToString ( OrderTicket ())+ " -" + "Object Button"
(tabii ki nesne isimleri biraz daha farklı ama yöntem aynı)
Şimdiden teşekkürler.
Piyasa Kapalı
Belki buldum ama emin değilim.
Bu iyi değilse, lütfen bana bildirin.
Şimdiden teşekkürler.
//--- 2. kez düzenlendi
Hey! Adam!
Çok teşekkürler. Şimdiye kadar sorun yok. Doğru çalışıyor!
#Crossover Nesneleri - Aç
Bu sorunla birkaç kez karşılaştım, bazen geçtim bazen vazgeçtim, şimdi bir kez daha pes etmek istemiyorum.
2 nesnem var " HLine ve Button " kesişiyorlar, yani birine tıkladığımda ikisi de seçili bu benim için iyi bir şey değil. ( BUTON Genişliği = 20, HLINE Genişliği = bildiğiniz gibi )
S: BUTTON nesnesine tıkladığımda geçiş yaparken HLINE nesnesi seçilmiyor nasıl yapabilirim, lütfen?
(Çapraz olmadıkları yerde kolayca HLINE'ı seçebilirim)
Şimdiden teşekkürler.
(Üzerinde çalışıyorum, herhangi bir iyi yorum daha iyi olur, lütfen.)
#Pipte Kâr - Açık | #Pipte Kâr - Şimdilik kapalı - Ben çözdüm
Bay William - "Pip, Point..." hesaplama kodlarınızı kullanıyorum.
Şimdi aşağıdaki kodlarla Profit in pip değerini almaya çalışıyorum. 2 siparişim var, biri doğru gösteriyor ( OP_BUY ), 2'si doğru görünmüyor - 399 - gerçek 400 ( OP_SELL ).
S: Pip hesaplamasında kâr için yanlış mı yapıyorum, lütfen?
Şimdiden teşekkürler.
(geçen gün farklı web sitelerindeki forumlara baktım - bu benim için faydalı olmadı)
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
MetaTrader 4 Build 574, Güncellenmiş MQL4 Dili ve Yayınlanan Uygulama Pazarı ile
whroeder1 , 2014.01.27 14:11
Bay William'dan karmaşık bir koşulun şaşırtıcı " if " operatörü örneğinden biri.
Sadece teşekkürler!
" if " operatörü karmaşık durumumu düzeltmek için en son 2 gün uğraştım, ancak yukarıdaki harika örneği bulana kadar sorunumu çözemiyorum.
Lütfen biri bana yardım etsin, bu sorunu çözmek için gerçekten mücadele ediyorum.
#296
Şimdiden teşekkürler.
Aşağıdaki kod bazen mükemmel çalışıyor, bazen çalışmıyor. Bu sorunu çözemiyorum. Tekli sipariş kullandığımda mükemmel çalışıyor ancak birden fazla sipariş açtığımda bu işlev düzgün çalışmıyor.
Lütfen bana yardım edin ve biraz daha açıklar (aşağıdaki kodda neyin yanlış olduğunu) bu benim için daha iyi olurdu.
(Şimdi üzerinde çalışıyorum.)
{
ticketnumber=( int ) StringSubstr (sparam, 1 );
if ( OrderSelect (ticketnumber, SELECT_BY_TICKET ))
{
if ( StringFind (sparam,Button_1, 0 )>= 0 )
{
// ...
}
if ( StringFind (sparam,Button_2, 0 )>= 0 )
{
//...
}
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
{
if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ;
if ( Symbol ()!= OrderSymbol ()) continue ;
update_1();
update_2();
update_3();
}
}
}
Şimdiden teşekkürler.