{
if(OrdersTotal()==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMin (up,down) < Bid )
OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
}
}
Bu bir çözüm ama devam ederseniz öğreneceğiniz gibi en iyi çözüm değil.
Ancak bu noktada size yardımcı olabilir.
Bu bir çözüm ama devam ederseniz öğreneceğiniz gibi en iyi çözüm değil.
Ancak bu noktada size yardımcı olabilir.
evet konudaki sorunu çözdü ama kapandığında yine bulutun üzerindeyse yeni bir düzen oluşturuyor. Bu yeni sorunu çözmeme yardım eder misin?
İlkini başarıyla kapattıktan sonra tüm yeni siparişler nasıl engellenir?
Peki bir bayrak oluşturabilirsiniz.
Ardından, sipariş verildiğinde değeri bir olarak ayarlayabilirsiniz.
{
if (order== 0 )
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMin (up,down) < Bid )
OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
order= 1 ;
}
}
Ancak size orderend fonksiyonunun dönüş değerini kontrol etmeniz gerektiği uyarısını verecektir.
{
if (order== 0 )
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMin (up,down) < Bid )
int ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
{
if (ticket!=- 1 )
{
order= 1 ;
}
}
}
}
Neden siparişin başarıyla verilip verilmediğine bağlı olarak bayrağı ayarlamıyorsunuz?
Bu durumda siparişiniz başarısız olursa denemeye devam edecektir.
evet konudaki sorunu çözdü ama kapandığında yine bulutun üzerindeyse yeni bir düzen oluşturuyor. Bu yeni sorunu çözmeme yardım eder misin?
İlkini başarıyla kapattıktan sonra tüm yeni siparişler nasıl engellenir?
Marco'nun zaten ima ettiği gibi, muhtemelen başka sorunlarla karşılaşacaksınız.
Ya başka bir sembolde açık bir emir varsa?
Ya başka bir EA tarafından kontrol edilen siparişler varsa?
Ya bekleyen siparişler varsa?
İlkini kapattığınızda tetikleyici hala etkinse ne olur?
İkincisine yanıt olarak, Marco'nun önerdiği gibi bir bayrak kullanabilirsiniz. Bayrağı ne zaman sıfırlayacağınıza karar vermeniz gerektiğini unutmayın, yoksa EA bir daha asla takas yapmaz.
Alternatif olarak, bulutun altından/içinden bulutun üstüne bir çapraz/durum değişikliği olup olmadığını kontrol edebilirsiniz.
kodunu girdim ve biletin açıklanmadığını söylüyor, bu yüzden ilan ettim, ancak şimdi kod birden fazla sipariş açıyor, tıpkı eskisi gibi, şimdi nasıl ilerlenir?
{
bool order= 0 ;
int ticket;
if (order== 0 )
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMax (up,down) < Bid )
int ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
{
if ( ticket!= 1 )
{
order= 1 ;
}
}
}
}
kodunu girdim ve biletin açıklanmadığını söylüyor, bu yüzden ilan ettim, ancak şimdi kod birden fazla sipariş açıyor, tıpkı eskisi gibi, şimdi nasıl ilerlenir?
{
bool order= 0 ;
int ticket;
if (order== 0 )
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMax (up,down) < Bid )
int ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
{
if ( ticket!= 1 )
{
order= 1 ;
}
}
}
}
Muhtemelen değişkenlerin kapsamı hakkında okumanıza yardımcı olacaktır.
Her tik sırasının değerine ne olur?
Tamam, bileti boole bayrağıyla ilan ediyorsunuz.
int ticket;
Ve daha sonra
{
if (order== 0 )
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMax (up,down) < Bid )
ticket= OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
{
if ( ticket>0)
{
order= 1 ;
}
}
}
}
Onları OnTick()'te bildiremezsiniz çünkü değerleri elbette her tikte sıfırlanacaktır.
Ayrıca, OrderSend'in ya bilet numarasını döndürdüğünü ya da başarısız olursa -1 eksi bir olduğunu unutmayın.
Koydum
bool düzeni ve
int bilet
global değişkenlerde ve kodun geri kalanında OnTick'te, ancak şimdi hala herhangi bir giriş yapmıyor
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
mql4'te yeniyim ve bu kod birden fazla sipariş açıyor, bundan nasıl kaçınabilirim? kapanana kadar sadece 1 sipariş açmalı,
bunu nasıl yapabilirim?
teşekkürler
{
double up= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 3 , 0 );
double down= iIchimoku ( NULL , 5 , 9 , 26 , 52 , 4 , 0 );
if ( MathMin (up,down) < Bid )
OrderSend ( NULL , 0 , 0.01 , Ask , 3 , Bid - 150 * Point , Bid + 100 * Point );
}