Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 749

 
Vinin :

Bu formülü, gereksinimlerinize uyacak şekilde değiştirmek oldukça kolaydır. Sadece minimum lotu hesaba katmanız gerekir

biraz farklı görünecek

lot=Min_Lot+lotstep* MathRound ((AccountBalance()-X)* 0.001 /lotstep);

Nerede X - Minimum lotu açmak için bakiye,

Ancak minimum lotun kontrol edilmesi yine de gerekli olacaktır.

Bu yüzden tüm bu zorluklar, ayrı ayrı hesaplanması gereken bir tür X? Ve evet, tekrar kontrol etmeniz gerekecek...

Formülü oluşturan tüm değerlerin geçerliliğini ve kabul edilebilirliğini doğrudan ve dürüstçe kontrol etmek ve sonra dürüstçe hesaplamak daha kolay olmaz mıydı?

Bu arada, MathRound() en yakın tamsayıya yuvarlar, yani yasa dışı olarak kolayca fazla tahmin edebilir, bu da zaten ek sonuçlara neden olabilir.

 

Fakir.

 
simpleton :
Senin için değil.
 
Merhaba. Söyleyin kim bilir - Bekleyen bir emir verdikten sonra sırasıyla al ve sat için 1. çubuğun en düşük ve en yüksek seviyesinden StopLoss'u hesaplamaya çalışıyorum. Bu sadece sıfır, bir hata 130'un sonucu ve hepsi bu. Şimdiden teşekkürler.
 if (ticket> 0 )
           {
            SL = NormalizeDouble (Low[ 1 ] - StopLoss* Point , Digits );
            {
               if (OrderModify(ticket, OrderOpenPrice(), SL, 0 , 0 ))
...
//+-------------------------------------------------------------------------+
if (ticket> 0 )
           {
SL = NormalizeDouble (High[ 1 ] + StopLoss* Point , Digits );
            {
               if (OrderModify(ticket, OrderOpenPrice(), SL, 0 , 0 ))
...                     																							
 
Normalleştirmeyin.
 
Petiyashaket :
işte tam bir kopya, sadece for sayacını anlamıyorum, çünkü onu sondaki duraktan kopyaladım, bu yüzden durdurma kaybını fraktallara bağlayamıyorum, çünkü onları nasıl arayacağımı bilmiyorum. kısacası herşey bir döngü üzerine kurulu bir önceki koddaki gibi yorumlar yaparsanız çok minnettar kalırım.

"Belirsiz şüpheler beni rahatsız ediyor" ve her şeyin piyasa ortamını önbelleğe alma mekanizmasında olduğu hissi bırakmıyor.

Terminalin OrdersTotal(), OrderSymbol() ve benzeri her nedenden dolayı "sunucuya koşmak" zorunda kalmaması için piyasa ortamı belirli bir önbelleğe kopyalanır ve görünüşe göre farklı bir önbelleğe alınır. her komut dosyası ve komut dosyasının zaten yalnızca bu önbellekle işi var. Sunucudaki piyasa ortamını değiştiren OrderSend() gibi işlevlerin başarılı bir şekilde yürütülmesinden sonra bile, komut dosyasının ana işlevinin tüm yürütülmesi sırasında önbellek otomatik olarak GÜNCELLENMEZ, bu nedenle komut dosyasının içinden görünen sipariş "değil" görünür", yani yokluğu yanılsaması yaratılır. Sadece for döngüsünde görünmez, bu nedenle OrderModify() da çağrılmaz. Böyle bir hipotez, belirsiz şüpheler ve hiç bitmeyen duyumlar temelinde ortaya çıktı.

Tanımlanan önbellek, örneğin OrderSend() çağrıldıktan hemen sonra RefreshRates() çağrılarak güncellenmeye zorlanabilir. Hipotezin doğru olup olmadığını kontrol edin.

Diğer şeylerin yanı sıra, RefreshRates() true değerini döndürürse, bu, hipotezin ek bir dolaylı teyidi olacaktır.

 
Petiyashaket :
işte tam bir kopyası, sadece for counter'ı anlamıyorum çünkü onu sondaki stoptan kopyaladım, bu yüzden fraktallara stop loss ekleyemiyorum çünkü onları nasıl arayacağımı bilmiyorum.Kısacası , her şey bir döngüye bağlı, bir önceki koddaki gibi yorumlar yaparsanız çok minnettar kalırım.
Anlamadıysan burayı oku. Ve burada . Ardından, değişkenlerin her tikte değerlerini kaybetmediğinden emin olun ve döngüyü normal şekilde düzenleyin.
 
simpleton :

"Belirsiz şüpheler beni rahatsız ediyor" ve her şeyin piyasa ortamını önbelleğe alma mekanizmasında olduğu hissi bırakmıyor.

Terminalin OrdersTotal(), OrderSymbol() ve benzeri her nedenle "sunucuya koşmak" zorunda kalmaması için piyasa ortamı belirli bir önbelleğe kopyalanır ve görünüşe göre farklı bir önbelleğe alınır. her komut dosyası ve komut dosyasının zaten yalnızca bu önbellekle işi var. Sunucudaki piyasa ortamını değiştiren OrderSend() gibi işlevlerin başarılı bir şekilde yürütülmesinden sonra bile, komut dosyasının ana işlevinin tüm yürütülmesi sırasında önbellek otomatik olarak GÜNCELLENMEZ, bu nedenle komut dosyasının içinden görünen sipariş "değil" görünür", yani yokluğu yanılsaması yaratılır. Sadece for döngüsünde görünmez, bu nedenle OrderModify() da çağrılmaz. Böyle bir hipotez, belirsiz şüpheler ve hiç bitmeyen duyumlar temelinde ortaya çıktı.

Tanımlanan önbellek, örneğin OrderSend() çağrıldıktan hemen sonra RefreshRates() çağrılarak güncellenmeye zorlanabilir. Hipotezin doğru olup olmadığını kontrol edin.

Diğer şeylerin yanı sıra, RefreshRates() true değerini döndürürse, bu, hipotezin ek bir dolaylı teyidi olacaktır.

Uyuşturucu alıyor musun?
 
noob1 :
Merhaba. Söyle bana, kim bilir - Bekleyen bir emir verdikten sonra sırasıyla al ve sat için 1. çubuğun en düşük ve en yüksek seviyesinden StopLoss'u hesaplamaya çalışıyorum. Bu sadece sıfır, bir hata 130'un sonucu ve hepsi bu. Şimdiden teşekkürler.

OrderOpenPrice() öğesinin SL'ye çok yakın olup olmadığını ve durakların "fiyatın yanlış tarafına" yerleştirilip yerleştirilmediğini kontrol edin. Burada okuyabilirsiniz:

StopLoss ve TakeProfit fiyatları piyasaya çok yakın olamaz. Nokta cinsinden minimum durma mesafesi, MODE_STOPLEVEL parametresi ile MarketInfo() işlevi kullanılarak elde edilebilir. Hatalı ve normalleştirilmemiş duruşlar durumunda Hata 130 (ERR_INVALID_STOPS) oluşturulur.

Bu durumda, yani bekleyen bir emir için "piyasa", "bekleyen açılış fiyatı"dır.

 
tara :
Normalleştirmeyin.
Belgelerden: