Hatalar, hatalar, sorular - sayfa 849

 
Heroix :

Bu, 1 bilgisayarda 2 terminaldir. Terminalden güncellemek için tüm tekliflere - "evet" cevabını veriyorum.

Dosya başka bir bilgisayardan flash sürücüye .mql5 şeklinde aktarıldı, iki terminalin farklı editörleri tarafından açıldı ve derlendi.

Genel olarak anladığım kadarıyla MT'yi güncellemeniz gerekiyor..

El ile yükseltme yaparken, kullandığınız çok sayıda standart kitaplık içerdiğinden /MQL5 klasörünü de aktarmanız gerekir.

Sadece çalıştırılabilir dosyaları ve kaynak kodunuzu mq5 dosyası şeklinde aktardığınız için hata yapmışsınız.

 
OrderLots() ve iClose MQL 5'te nasıl mümkün olabilir???
 

695 oluşturmak için güncellendi. Object.mqh include dosyasını derlerken bir hata görünmeye başladı.


 
denkir :

695'i oluşturmak için güncellendi. Object.mqh include dosyasını derlerken bir hata görünmeye başladı.

Otomatik olarak güncellendiler mi yoksa sadece dosyaları mı aktardılar?

Dosyaları UserData'da depolamak normalse, /MQL5 dizinini program kökünden veri dizinine kopyalayın (Dosya menüsünden açılır).

 
geliştiriciler

Ekonomik takvime ne oldu, var mı?

Ek soru: Hangi verilere dayanarak oluşturuldu ve DC'ye nasıl "bağlanacak"?

 
papaklass : Veriler eşleşmiyor, ancak eşleşmesi gerekiyor çünkü ikinci ve üçüncü durumlar, birinci koşulun ayrı parçalarıdır. Sorunun ne olduğunu anlayamıyorum.

İşte durum

 if ( mn < STP || mn >= STP )

Neden bu şekilde ifade ediliyor? Mevcut haliyle, herhangi bir mn ve STP için çalışacaktır. O zaman neden onu dahil ediyorsun? Ve sonraki iki seçenek - bireysel durumların belirli bir kesintisi var.

Ve böylece her şey mantıklı görünüyor: üç seçenekte bir + iki == tri (bir, iki ve tri hesaplamalarının ayrıntılarına girmeden).

 
papaklass :

İşte bundan bahsediyoruz. Toplam alanın (durum 1) iki gruba (durum 2 ve 3) bölünmesini istiyorum. Mantıksal olarak, bir + iki == tri ifadesi doğru olmalı, ama benim için çalışmıyor. Birinci koşulda bir=148, ikinci koşulda 172. Ayrıca iki ve üçlü için bir eşleşme değil. Ve sorun nedir anlayamadım.

Belki de sorun genel durumda? Bu kod başka bir şeye mi bağlı?

Sadece banal bir örnek:

koşul (a): H1'deki çubuk artarsa açın. TP=SL=100

koşul (b): H1'deki çubuk azalırsa açın. TP=SL=100

ek koşul: Halihazırda bir pozisyon varsa koşulları ikinci kez kontrol etmiyoruz.

Daha sonra (a) artı (b)'yi açtığınızda, her seferinde TP/SL çalışır çalışmaz açacağız.

(a) açarsak ilk tüm durumlarda artı (!!!!) açmadığımızda birkaç kez daha açacağız çünkü ondan önce (b) koşuluna göre açtık

ve sadece (b) koşulunu benzer şekilde dahil etmek

 
papaklass : Mantıksal olarak, bir + iki == tri ifadesi doğru olmalı, ama benim için çalışmıyor.

Evet, daha yakından bakın: seçeneklerin her biri için yalnızca aynı karşılaştırma (bir + iki == tri) yapılır.

papaklass : Birinci koşulda bir=148, ikinci koşulda 172.

Peki, bu tamamen farklı bir soru, yani: neden birinci seçenekten birinin değeri, ikinci ve üçüncü seçenekten birinin değerine eşit değil.

İkinci ve üçüncü seçeneklerde, birinci seçeneğe kıyasla kısıtlayıcı bir koşul getiriyorsunuz. Örneğin, ikinci seçenekte, birinci seçeneğe kıyasla neden birinin değerinin arttığını düşünün. Kodun verilen kısmından henüz net değil.

 
papaklass :

Bir önceki gönderiye.

Üçüncü durumda: bir=0, iki=124, tri=124.

Veriler eşleşmiyor, ancak eşleşmesi gerekiyor, çünkü ikinci ve üçüncü durumlar, birinci koşulun ayrı parçalarıdır. Sorunun ne olduğunu anlayamıyorum.

Not: giriş int STP=200;

Değişen bir veri seti ile doğru sonuç, çünkü boşluk mn<STP hariç tuttunuz.

 if ( /*mn < STP || */ mn >= STP ){
 
papaklass : Örneklerimde sadece bir seçim yapıyorum:

1. Hem boşluk2 (bir) hem de boşluk3 (iki) seçiyorum; 230 = 148 + 82 yani boşluk2 (bir) = 148 ve boşluk3 (iki) = 82.

2. ... 148 kalmalıydı ama 172 oldu.

3. ... 82 kalmalı, ancak 124 olmalı.

Bahsettiğim şey bu: size soru, neden birinci seçenekten birinin değerinin ikinci ve üçüncü seçenekten birinin değerine eşit olmadığı .

papaklass : space2 ve space3 değerleri sabit olmalıdır çünkü önceki gönderilerde verdiğim üç örnekte de bu boşlukları elde etme koşulları değişmedi.

Bu mantıksal varsayımda bir hata bulmak için, bunu çok basit bir şekilde yapmayı öneriyorum: her üç seçenekte de "X boşluklarında" bir artış durumunu yazdırın, sonuçları karşılaştırın ve "boşluk2 ve boşluk3 değerlerinin" neden analiz edildiğini analiz edin. aynı değil.

Ek. ilunga , bir seçenekten diğerine geçerken bazı anlaşmaların kaybedilebileceğini zaten ima etti. Sonuçta, if () operatörünün gövdesine bir öldürücü işlev / yöntem OpenPosition () eklediniz. Ve if() deyimi tarafından kontrol edilen koşula bağlı olarak, farklı zamanlarda tetiklenir.