KimIV'ten faydalı özellikler - sayfa 22

 
rid :

Şimdi yoruma bir fonksiyon ekledim - Comment (isCloseLastPosByStop());

Bir test cihazında mı test ediyorsunuz? Test cihazındaysa, o zaman, iki veya daha fazla son kapatılan pozisyonun farklı bir OrderCloseTime () olmayacağı bir durum ortaya çıkabilir.

 

Açık. Test cihazında aynı anda (bir sinyalde) birkaç konum kapatılırsa, isCloseLastPosByStop() işlevi "başarısız olabilir" ve çalışmayabilir mi? Ve çevrimiçi, görünüşe göre, işe yarayacak.

Evet, bir pozisyonla çalışırken test cihazında kontrol ettim. Her şey doğru çalışıyor! İşlev, Açıklama'da (isCloseLastPosByStop()) stop-loss kapanışını doğru bir şekilde görüntüler ve farklı bir nedenle kapatırken bayrağı zamanında değiştirir.

 
rid писал (а):
Açık. Test cihazında aynı anda birkaç pozisyon kapatılırsa, isCloseLastPosByStop() işlevi "başarısız olabilir" ve çalışmayabilir mi?

Evet, çünkü isCloseLastPosByStop() işlevi, saniye cinsinden ölçülen maksimum kapanma süresiyle son kapatılan konumu tanımlar. Bu nedenle, birkaç pozisyonun kapanması arasında bir saniyeden fazla geçiş yapılması gerekir. Test cihazında bir saniyeden az bir süre geçebilir.

kurtulmak yazdı:
Ve çevrimiçi, görünüşe göre, işe yarayacak.
Çevrimiçi olarak da hatalar olabilir, ancak test cihazından çok daha az sıklıkla. Yine de, bir DC makinesinin bile pozisyonları kapatmak için biraz zamana ihtiyacı vardır. Son kapatılan pozisyonun nasıl daha güvenilir bir şekilde tanımlanacağına dair herhangi bir fikriniz varsa, bunu minnetle kabul edeceğim ve işlevi yeniden yapmaya çalışacağım.
 

İyi günler, KimIV. Tavsiyene, daha doğrusu yardımına ihtiyacım var. Başlat () işlevine tık tık değil, yeni bir kene gelip gelmediğine bakılmaksızın her saniye çalışması için ihtiyacım var. Bu görevi şu şekilde uygulamaya çalıştım:

 int start ()
   {
   if ( first == true ) return ( 0 ) ; 
   else 
   {    
      for ( int j = 0 ; j < 10 ; j ++ )
         {
         RefreshRates () ; //обновляем котировки 

         //Код эксперта

         first = true ;
         Sleep ( 1000 ) ; //задержка в 1 секунду
         j = 0 ;
         }
   }
   return ( 0 ) ;
   }
 
StatBars писал (а):
Başlat () işlevine tık tık değil, yeni bir kene gelip gelmediğine bakılmaksızın her saniye çalışması için ihtiyacım var.

Ben şöyle yaptım:

 void start () {
   while ( IsExpertEnabled () && ! IsStopped ()) {
     // код .............
     Sleep ( 1000 ) ;
   }
}
 

Çok teşekkürler!!!! Kodumun çalışıp çalışmadığını söyleyebilir misin? Test cihazında değil... Ama gerçek hayatta olacak mı?... Yoksa gerekli mi?

Boş başlatma()...

 
StatBars писал (а):
Kodumun çalışıp çalışmadığını söyleyebilir misin?

bilmiyorum... kontrol etmedim...

statbars yazdı:
Test cihazında değil... Gerçek hayatta olacak mı?...

Döngüsel herhangi bir şey test cihazında çalışmaz. Sadece keneler üzerinde çalışanlar işe yarar...

Kodunuz çevrimiçi çalışmalıdır. En azından mantıksal olarak işe yarıyor gibi görünüyor...

istatistik çubukları :

yoksa gerekli mi

Boş başlatma()...

hayır, zorunlu değil. Sadece neden herhangi bir değer döndürmüyorsa ve dönerse, bu değer hiçbir şekilde kullanılmazsa, yazılan bir işlev ilan edilir?
 

Açık. Tekrar teşekkürler.

 
KimIV :
. Son kapatılan pozisyonun nasıl daha güvenilir bir şekilde tanımlanacağına dair herhangi bir fikriniz varsa, bunu minnetle kabul edeceğim ve işlevi yeniden yapmaya çalışacağım.

Nazik teklif için teşekkürler. Ne yazık ki, iyi fikirler nadiren (ne yazık ki...) kafamda dolaşıyor! Çok uzun zaman önce, örneğin, işlevlerinizin pratik olarak "bileşeni" kullanmadığını fark ettim - OrderComment

Bununla birlikte, belki de bu işlevin kullanımı size yeni fikirler verecektir (mevcut olan herkesi memnun edecek şekilde).

Örneğin, if (OrderComment()==" [sl]" && .... - gerçekleştirilen görevlerin aralığını genişletebilir!

//------------------------------------------------ ---------------------------------

"Daha fazla fonksiyon - iyi ve farklı!" (ile)

 
rid :
Kim IV :
. Son kapatılan pozisyonun nasıl daha güvenilir bir şekilde tanımlanacağına dair herhangi bir fikriniz varsa, bunu minnetle kabul edeceğim ve işlevi yeniden yapmaya çalışacağım.

Örneğin, if ( OrderComment ()==" [sl]" && .... - gerçekleştirilen görevlerin kapsamını genişletebilir!

rid , Sipariş yorumlarında bir giriş tarafından tetiklenen bir durağı tanımlamanın bir yolunu önerdiniz. Teşekkürler, ancak yorumlarda [sl] dışında başka girdiler olabilir.

Aynı sorunu kapanış fiyatını stop fiyatı ile karşılaştırarak çözüyorum.