Gösterge Çeşitli Sorular - sayfa 12

 

Bu print ifadesinin bir şey üretmemesi için hiçbir neden yok.

Göstergeyi yeni bir grafiğe eklerseniz, yazdırılır mı (zaman çerçevesini değiştirmek zorunda kalmadan)?

Eğer öyleyse, göstergenin zaten bir grafikte olması ve ardından değişikliği görmeyi bekleyerek yeniden derleme sorunu olabilir.

 
honest_knave :

Bu print ifadesinin bir şey üretmemesi için hiçbir sebep yok.

Göstergeyi yeni bir grafiğe eklerseniz, yazdırılır mı (zaman çerçevesini değiştirmek zorunda kalmadan)?

Eğer öyleyse, göstergenin zaten bir grafikte olması ve ardından değişikliği görmeyi bekleyerek yeniden derleme sorunu olabilir.


Hızlı yorum için teşekkürler, bunu takdir edin.

Evet! Aşağıdaki mesajı, Şablonu Yükle veya Gösterge Ekle'yi yazdırır.

 20 ...   ... EURUSD,M1: This Year1900

Ama bildiğiniz gibi bu kod bana "2017" verebilir.

//--- 2. kez düzenlendi

Yeniden derlediğimde doğru sonucu gösteriyor.

Ancak tekrar derlediğim MetaEditor'u gösterge eklemeye ve şablon yüklemeye çalıştığımda açamıyorum... Umarım ne demek istediğimi anlamışsınızdır.

 
Max Enrik :


Hızlı yorum için teşekkürler, bunu takdir edin.

Evet! Aşağıdaki mesajı, Şablonu Yükle veya Gösterge Ekle'yi yazdırır.

Ama bildiğiniz gibi bu kod bana "2017" verebilir.

//--- 2. kez düzenlendi

Yeniden derlediğimde doğru sonucu gösteriyor.

Ancak tekrar derlediğim MetaEditor'u gösterge eklemeye ve şablon yüklemeye çalıştığımda açamıyorum... Umarım ne demek istediğimi anlamışsınızdır.


Muhtemelen size "yanlış" yıl vermesinin nedeni, aracınıza bağlanmadan önce OnInit()'in çalışıyor olmasıdır.

Year() sunucu saatini temel alır ... bir bağlantı yoksa yılı bilmez.

Şununla karşılaştırın:

 TimeYear ( TimeLocal ())
 
honest_knave :


Muhtemelen size "yanlış" yıl vermesinin nedeni, aracınıza bağlanmadan önce OnInit()'in çalışıyor olmasıdır.

Year() sunucu saatini temel alır... bağlantı yoksa yılı bilmez.

Şununla karşılaştırın:


OnInit() ve OnCalculate(...) 'in farklı kod stiline ihtiyaç duyduğunu kesinlikle biliyorum ...
Göstergelerimi yeniden yazmayı deneyeceğim.
(muhtemelen pes edeceğim)

Yorumun için teşekkürler.

 

Sanırım önce tüm gösterge nesnelerini silmek için bir kod yazabilirim, sonra onları yeniden yazabilirim.
Aşağıdaki kod gibi denedim. Ama bu yöntemden şüpheliyim.

S: Bu yöntem, göstergenin tüm nesnelerini silmek için yeterli mi, lütfen?

Herhangi bir tavsiye daha iyi olurdu teşekkürler.

 int OnInit ()
 {
   ObjectsDeleteAll ( 0 , prefix );
  
   // then all my indicator code here...
 }
 
Max Enrik :

Sanırım önce tüm gösterge nesnelerini silmek için bir kod yazabilirim, sonra onları yeniden yazabilirim.
Aşağıdaki kod gibi denedim. Ama bu yöntemden şüpheliyim.

S: Bu yöntem, göstergenin tüm nesnelerini silmek için yeterli mi, lütfen?

Herhangi bir tavsiye daha iyi olurdu teşekkürler.


Mevcut grafikten 'önek' ile başlayan tüm nesneleri silmenin doğru yolu budur.
 
honest_knave :

Mevcut grafikten 'önek' ile başlayan tüm nesneleri silmenin doğru yolu budur.

Güzel! Cevabın için teşekkürler.
Şimdi, göstergemin ertesi gün nasıl çalışacağını görmem gerekiyor.

(ps Göstergemi Tester ile test etmeyi sevmiyorum)

 

(Bir kere söyledim)

Birkaç göstergem için aşağıdaki yöntem kodunu kullanıyorum, bu göstergelerin herhangi bir sorunu yok, ancak yalnızca MT4 platformunu başlattığımda sorun yaşıyorum, bu göstergelerin yalnızca doğru değerler için güncellenen platformu yeniden başlatması gerekiyor. Bu sorunla SADECE her gün bir kez karşılaşıyorum.

S: Yani, kodun aşağıdaki kısmı doğru değerleri güncelleyemeyen bir soruna neden olabilir mi?

Şimdiden teşekkürler.

 int OnInit ()
{
     //---
     datetime a = iTime ( Symbol (), 0 , 0 );
     int       b = iBarShift ( Symbol (), 0 , a );
     datetime c = iOpen ( Symbol (), 0 , b );
     //---
     return ( 0 );
}
 

OnInit() içindeki kod yalnızca bir kez çalışır.

Terminalinizi yeniden başlattığınızda OnInit(), aracınıza bağlanmadan önce bitirebilir.

Brokeriniz ile bir bağlantı olmadan, zaman yanlış olacak.

Kodunuzu OnInit()'ten çıkarmanızı veya en azından IsConnected()'i kontrol etmenizi öneririm.

 
honest_knave :

Kodunuzu OnInit()'ten çıkarmanızı veya en azından IsConnected()'i kontrol etmenizi öneririm.

Bunu asla IsConnected() kullanmayın, bunun hakkında araştırma yapacağım.

Çok teşekkürler.