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
Burada Orderselect YANLIŞ ise, EA kod satırına nasıl geri dönebilir: for(int cnt=OrdersTotal() ; cnt > 0; cnt-- )
???
Burada Orderselect YANLIŞ ise, EA kod satırına nasıl geri dönebilir: for(int cnt=OrdersTotal() ; cnt > 0; cnt-- )
???
O kod yanlış. . . .
cnt'nin OrdersTotal() - 1'den başlaması ve cnt >= 0'a düşürmesi gerekir. . . . ilk giriş 0 değil 1
Bu yüzden kodu görmek istedim. . . ve sorunu tanımlamaya yetecek kadar gösterdiniz. . . muhtemelen. ;-)
O kod yanlış. . . .
cnt'nin OrdersTotal() - 1'den başlaması ve cnt >= 0'a düşürmesi gerekir. . . . ilk giriş 0 değil 1
Bu yüzden kodu görmek istedim. . . ve sorunu tanımlamaya yetecek kadar gösterdiniz. . . muhtemelen. ;-)
Çok doğru. Teşekkürler Wizeman!
Çok doğru. Teşekkürler, Wizeman!
Ve başka bir fikir:
Çok şartım varsa yazabilirsiniz:
Eğer( X>b && B>S && NB<F......)
{
BBB= 5;
}fe
Burada EA, parantez içindeki her koşulu hesaplamak zorundadır.
Ancak, verimlilik arıyorsanız (4.000 kod satırı...) şunları yapmayı tercih ederim:
(X>b) ise
{
(B>S) iken
{
(NB<F..) iken
{
BBB=5;
}
kırmak;
}
kırmak;
}
2 varyasyon aynı mı?
Y.
crossy, kodu yazarken lütfen SRC butonunu kullanın, çok daha okunaklı olacaktır.
Yani bu şekilde gösterilecek
mql4 https://book.mql4.com/operators/assign içinde "if, while ve for" döngüsü hakkında açıklama var
İkinci kodda, break kullandığınız için sorun değil, ancak bu sadece BBB = 5 elde etmenin uzun bir yolu, ilk kodu tercih ediyorum, daha az kaynak kullanıyor
Ve başka bir fikir:
Çok şartım varsa yazabilirsiniz:
Eğer( X>b && B>S && NB<F......)
{
BBB= 5;
}fe
Burada EA, parantez içindeki her koşulu hesaplamak zorundadır.
Ancak, verimlilik arıyorsanız (4.000 kod satırı...) şunları yapmayı tercih ederim:
Daha iyi okumak için kodunuzu görüntülemek için SRC düğmesini kullanın, lütfen :)
OrderSelect() yanlış bir şekilde kodlanmış. Kodunuzu bununla karşılaştırın. O zaman hala sorun yaşıyorsanız veya değilseniz tekrar yazın :)
onewithzachy'ye özel teşekkürler,
ORDERSELECT'in yakalayamayacağını bilmiyordum, bu yüzden bilinmeyen hatalar olabilir.
4016 kod satırı olan kodum neredeyse 4500 satır oldu - ama hatasız.
Hepinize teşekkürler arkadaşlar.
Y.
merhaba arkadaşlar,
Burada uzun bir yolculuktan sonra, EA'mla iyi bir avantaj elde ettim, ancak aşağıdaki gibi bir sorunum daha var:
Aşağıdaki kod satırına sahibim:
CLOSE_Single_P(Çift1,"UZUN",SiparişT,SiparişL);
gibi:
Çift1 Semboldür,
"UZUN" uzun bir ticaretin işaretidir,
OrderT , sipariş Bilet numarasıdır,
OrderL , sipariş lotu boyutudur.
İşlev aşağıdaki gibidir:
void CLOSE_Single_P(string SYMB, string TREN, int TICKET, double LOTT)
{
çift ÇHC;
bool Kontrol = yanlış;
için ( int cntt=0; cntt<20000; cntt++ )
{
eğer (Kontrol et)
{
Check_Ini();
dönüş;
}
for ( int vvv = OrdersTotal()-1; vvv >= 0; vvv-- )
{
if ( OrderSelect(vvv, SELECT_BY_POS, MODE_TRADES))
{
Kontrol = yanlış;
if ( TREN == "UZUN")
ÇHC = MarketInfo(SYMB,MODE_BID);
başka
if (TREN == "KISA" )
ÇHC = MarketInfo(SYMB,MODE_ASK);
Kontrol = SiparişKapat(TICKET,LOTT,PRC,Kayma,Sarı);
eğer (Kontrol et)
kırmak;
}
}
}
dönüş;
}
SORUNUM: EA bazen ticareti çok iyi kapatır, ancak bazen EA tarde'yi kapatır ANCAK zaten kapalı olmasına rağmen onu kapatmak için bileti aramaya devam ediyor.
("Bilinmeyen bilet numarası.." hatası alıyorum.
Sanırım mantık hatası var.
Nazik yardımın için teşekkür ederim.
Y
Lütfen . . . . . .