Hatalar, hatalar, sorular - sayfa 647

 
Gönderdiğiniz için teşekkürler, burayı düzelttik. Kendimizi test edeceğiz.
 

Sevgili programcılar! Yardımınıza ihtiyaçım var.


MT4 kodunda bir düzenleme yapmam gerekiyor. Martin EA, belirli bir delta boyunca sırayla bir dizi sipariş verir ve belirlediğimiz bazı anlaşmaların sayısından (örneğin, 4. olandan) başlayarak bu deltayı bir faktörle artırmaya başlar.
Tüm seri bitene kadar bu deltanın süresiz olarak uzamamasına ihtiyacım var. Ancak ayarlarda belirlediğimiz belirli bir seviyeye kadar (örneğin, Max_delta = 50 s.). Ve delta >= Max_delta olduğunda, seri bitene kadar bu değeri sürekli alacaktır. Ve sonra her şey en başından.

Deltanın uzatıldığı program kodu:


int Delta(int OrdNum){
if(Start_order_delta>1){
if(OrdNum>Start_order_delta){
int p=OrdNum-Start_order_delta;
dönüş(Take_profit*MathPow(Delta_exp,p));
}
}
dönüş(Take_profit);
}

Lütfen bu kodda bir delta limiti eklememe yardım edin.
 

CHART_BRING_TO_TOP mülkü

Ayarlayabilirsiniz, ancak mevcut değeri belirleyemezsiniz.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - çalışır.

ChartGetInteger (0,CHART_BRING_TO_TOP,0) - çalışmıyor.

 
MoneyJinn :

CHART_BRING_TO_TOP mülkü

Ayarlayabilirsiniz, ancak mevcut değeri belirleyemezsiniz.

ChartSetInteger(0,CHART_BRING_TO_TOP,true) - çalışır.

ChartGetInteger(0,CHART_BRING_TO_TOP,0) - çalışmıyor.

Eh, her şey mantıklı. Sonuçta üç parametre ile arayın, yoksa yanılıyor muyum?

İkinci seçeneği kullanarak, mevcut değeri belirlemek yerine SET değerini yanlış olarak alacağız.

Değeri almak için dört parametreye ihtiyaç vardır (geçerli değer sonuncuya yazılacaktır).

 bool    ChartGetInteger (
   long     chart_id,     // идентификатор графика
   int      prop_id,      // идентификатор свойства
   int      sub_window,       // номер подокна
   long &   long_var      // сюда примем значение свойства
   );
 
Interesting :

Eh, her şey mantıklı. Sonuçta üç parametre ile arayın, yoksa yanılıyor muyum?

İkinci seçeneği kullanarak, mevcut değeri belirlemek yerine SET değerini yanlış olarak alacağız.

Değeri almak için dört parametreye ihtiyaç vardır (geçerli değer sonuncuya yazılacaktır).


Evet, yanılıyorsunuz. ChartGetInteger için birden çok gösterime izin verilir .

Ancak ChartGetInteger gösteriminin biçiminden bağımsız olarak, CHART_BRING_TO_TOP özelliğinin geçerli değerini almak imkansızdır.

 
MoneyJinn :

ChartGetInteger gösteriminin çeşitli biçimlerine izin verilir.

Ancak ChartGetInteger gösteriminin biçiminden bağımsız olarak , CHART_BRING_TO_TOP özelliğinin geçerli değerini almak imkansızdır.

Ve ChartGetInteger işlevinin (4 parametreli) ikinci sürümü hangi değeri döndürür? Ve hata kodu?

 
Yedelkin :

Ve ChartGetInteger işlevinin (4 parametreli) ikinci sürümü hangi değeri döndürür? Ve hata kodu?

Değer 0; 4109 hatası - yani böyle bir mülk yok.
 
MoneyJinn :
Değer 0; 4109 hatası - yani böyle bir mülk yok.

Referansa göre, bu özellik basitçe desteklenmiyor:

İkinci çağrı seçeneği için, özellik destekleniyorsa ve değer bir long_var'a yerleştirilmişse true, aksi takdirde false döndürür.

Hata kodu da aynı şeyi söylüyor. CHART_BRING_TO_TOP grafik özelliğinin neden desteklenmediği sorusu geliştirici düzeyindedir ve özellik gerçekten destekleniyorsa soru yine onların düzeyindedir: Bu durumda ChartGetInteger işlevi neden false döndürür ?

 
OnTick olayı neden strateji test cihazında oluşmuyor? 586 oluşturun. İlk başta hatanın programımda olduğunu düşündüm. Hata ayıklama için Moving Average.mq5 örneğini başlattı. Kesme noktası, OnTick olayının ilk operatöründe ayarlandı. Bir saatten fazladır cevap gelmedi.
 
tor30515 :

OnTick olayı neden strateji test cihazında oluşmuyor? 586 oluşturun. İlk başta hatanın programımda olduğunu düşündüm. Hata ayıklama için Moving Average.mq5 örneğini başlattı. Kesme noktası, OnTick olayının ilk operatöründe ayarlandı. Bir saatten fazladır cevap gelmedi.

ve test cihazı hata ayıklamada boşaltıldı mı?