Hatalar, hatalar, sorular - sayfa 1418

 
Merhaba!
Yakın zamanda programlamaya başladım ve böyle bir sorunla karşılaştım, StopLoss ayarlı değil. Söyle bana, hata nerede?
int başlangıç()
{
if(CountTrades()==0)
{
double ima=iMA(Symbol(),PERIOD_H1,14,0,MODE_SMA, PRICE_CLOSE ,1);
eğer(Sor>ima)
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
if(bilet>0)
{
TP=NormalizeÇift(Sor+Kar Al*Puan,Rakamlar);
bool change1=OrderModify(ticket,OrderOpenPrice(),0,TP,0);
{
SL=NormalizeÇift(Ask-StopLoss*Point,Rakamlar);
bool değiştir=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
else if(Teklif<ima)
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0,Red);
if(bilet>0)
{
TP=NormalizeÇift(Teklif Al-Kar*Puan,Rakamlar);
bool change1=OrderModify(ticket,OrderOpenPrice(),0,TP,0);
{
SL=NormalizeÇift(Teklif+StopLoss*Puan,Rakamlar);
bool değiştir=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
başka
{
int order_type=FindLastOrderType();
if(order_type==OP_BUY)
{
fiyat=SonFiyat Bul(OP_BUY);
if(Sor<=fiyat-Adım*Puan)
{
lastlot = FindLastLots(OP_BUY);
lastlot = NormalizeDouble(lastlot * Çarpan, 2);
bilet=OrderSend(Symbol(),OP_BUY,lastlot,Ask,Slippage,0,0,"",Magic,0,Mavi);
if(bilet>0)
Siparişleri Değiştir(OP_BUY);
}
}
else if(order_type==OP_SELL)
{
fiyat=FindLastPrice(OP_SELL);
if(Teklif<=fiyat+Adım*Puan)
{
lastlot=FindLastLots(OP_SELL);
}
lastlot=NormalizeÇift(sonlot*Çarpan,2);
bilet=OrderSend(Symbol(),OP_SELL,lastlot,Bid,Slippage,0,0,"",Magic,0,Red);
if(bilet>0)
Siparişleri Değiştir(OP_SELL);
}
}
}
dönüş(0);
}
Şimdiden teşekkür ederim)))
 
Сергей Верещак :
eğer(Sor>ima)
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
if(bilet>0)
{
TP=NormalizeÇift(Sor+Kar Al*Puan,Rakamlar);
bool change1=OrderModify(ticket,OrderOpenPrice(),0,TP,0); Kar Al'ı ve Zarar Durdur'u 0'a ayarlıyoruz, daha ileri gidiyoruz
{
SL=NormalizeÇift(Ask-StopLoss*Point,Rakamlar);
bool değiştir=OrderModify(ticket,OrderOpenPrice(),SL,0,0); Zararı durdur ve karı al sıfıra ayarladık, yani daha önce ayarlanmış olanı sildik
}
}
}

Şimdiden teşekkür ederim)))
Dig, bir ipucu verdi ...
 
Vladimir Pastushak :
Dig, bir ipucu verdi ...
Volodya'ya teşekkürler. Boom kaz, bu yüzden çabucak çözeceğim)))
 
Vladimir Pastushak :
Dig, bir ipucu verdi ...

O zaman "yeni" MQL4 ve MQL5 standardına getirelim.

 //TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP= NormalizeDouble (Ask+TakeProfit* _Point , _Digits );
 
Alexey Volchanskiy :

O zaman onu "yeni" MQL4 ve MQL5 standardına getirelim.

 //TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP= NormalizeDouble (Ask+TakeProfit* _Point , _Digits );

Bu yıl 15 Mayıs'tan itibaren Renat Fatkhullin'den bir gönderi var aşağıdaki metnin olduğu yerde:

Kullanımdan kaldırılmış durumlarını göstermek için alt çizgi. Global düzeyde bildirilen, ancak normal yerel değişkenler gibi görünen bu tür basit değişkenleri kullanamazsınız.

Dilin ve kodun saflığı için Symbol(), Period()'a geçmeniz gerekir. İşte sadece düşünceli olmak ve eskinin mirasından kurtulmak.

Gerekirse, alıntı yapılan bir anın olduğu bir gönderiyi arayabilirsiniz. Renat'ın Topluluk üyelerinden birinin sorularından birine şöyle başlayan cevabıydı:

MT4'te Point, Digits... değişkenleri MT5'te aynı değişkenler bir alt çizgi ile başlar...


P./S.: Buna göre, altını çizmenin kullanımdan kaldırılmış bir durum (eski veya onaylanmamış veya gelecekte kullanılması önerilmez) olduğu gerçeğine dayanarak, Nokta() ve Digits()'in altını çizmeden kullanılması. /*Ayrıca Point() ve Digits() 'i MQL4'teki isimlerden sonra parantez içinde kullanıyorum, MQL5'te olduğu gibi, işlem sırasında hata üretmiyor ve derleme sırasında hata ve uyarı üretmiyor*/

 

Merhaba! Çok ilginç bir sorum var - Bilgisayarımda 3 MT4 platformu var, 1 numara gerçek hesabın açıldığı ana platform. No.2 ve No.3 yardımcıdır, test danışmanları için orada demo hesaplar açılır. https://www.mql5.com sitesinden bir sinyal kopyalamaya çalıştığımda (istediğim sinyali seçiyorum, kopyalamaya başla'yı tıklayın, ardından yazıtlı bir pencere açılır - MetaTrader4'ü başlatın ve platforma abone olun, buna tıklayın yazıt), istenen 1 numaralı platform yerine 3 numaralı platform açılır. Nasıl düzeltilir? Tam olarak 1 numaralı platform açılacak şekilde nasıl yapılır?

 
Mihail Kuzmin :

Merhaba! Çok ilginç bir sorum var - Bilgisayarımda 3 MT4 platformu var, 1 numara gerçek hesabın açıldığı ana platform. No.2 ve No.3 yardımcıdır, test danışmanları için orada demo hesaplar açılır. https://www.mql5.com sitesinden bir sinyal kopyalamaya çalışırken (istenen sinyali seçiyorum, kopyalamaya başla'yı tıklayın, ardından yazıtlı bir pencere açılır - MetaTrader4'ü başlatın ve platforma abone olun), platform No. İstenilen 1 numaralı platform yerine 3 açılır. Nasıl düzeltilir? Tam olarak 1 numaralı platform açılacak şekilde nasıl yapılır?

Birkaç terminalden oluşan bir "hayvanat bahçeniz" varsa, kopyalamak istediğiniz terminalden doğrudan bir sinyal aramanız gerekir.
 
Karputov Vladimir :
Birkaç terminalden oluşan bir "hayvanat bahçeniz" varsa, kopyalamak istediğiniz terminalden doğrudan bir sinyal aramanız gerekir.
terminalden çalışmıyor, hata veriyor...
 
Mihail Kuzmin :
terminalden çalışmıyor, hata veriyor...
Hata tam olarak nedir? Ne yapıyorsun, hangi sırayla?
 
Karputov Vladimir :
Hata tam olarak nedir? Ne yapıyorsun, hangi sırayla?

terminalde sinyaller sütununda, istenen sinyali seçiyorum, ardından 20 usd için imzalamak için işarete tıklıyorum, ardından bir şifre girmenizi isteyen bir pencere, şifreyi girdikten sonra bir yazı çıkıyor - abonelik başarısız oldu.

bir ay önce site üzerinden bir sinyal için kaydoldum ve tam olarak ihtiyacım olan 1 numaralı platform açıldı. bu sefer nedense bambaşka bir platform açılıyor.

Neden: