Gösterge Çeşitli Sorular - sayfa 6

 
Yakından bakarak cevap verdi.
 
Marco vd Heijden :

Eh, zaman dilimlerini değiştirmekle ilgiliyse, zamanlayıcı iyi bir seçenek değildir çünkü zamanlayıcı , kare değiştirildiğinde yok olur.

OnInit() işlevinde satırlarınızı oluşturabilir ve bunları OnTick() veya OnTimer() işlevlerinde güncelleyebilirsiniz.

Ayrıca OnDeint() işlevindeki ObjectsDeleteAll() işlevine dikkat edin; bu, yeni karenizde yeniden oluşturulmadan önce her şeyin kaldırılmasını sağlayacaktır.

---

Ek olarak, yeni bir mum ortaya çıktığında satırları güncellemek istiyorsanız , size şunu vermek için önceki sayfadaki örneği sonuncusu ile birleştirebilirsiniz:

...

Daha fazla sorun varsa, lütfen biraz kod gösterin .

Son yorumlarınızı araştırdım.

2 güzel yorum daha. Bu koda benziyor (#18 yorumunuz) ama bu benim için çok farklı.

Yani, evet, çerçeveyi değiştirdiğimde 'Zamanlayıcı'nın yok olduğunu hissediyordum. Ancak bu benim için çok faydalı çünkü göstergem PERIOD_**'larda bir kez güncelleniyor.

Evet! init() özel işlevinde zaten ana satırlar oluşturuyorum ve bunlar OnTimer() işlevinde güncelleniyor.

(aşağıdaki koddan beni daha net anlayabilirsiniz)

...birleştirebileceğiniz yeni mum doğar ...

Daha fazla sorun varsa...

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------

Dediğim gibi bir sorun var, daha fazla zaman alıyor . Şu anda size gösterge kodumdan bazılarını göstermem gerekiyor. Ve göstergemde 'operatörü değiştir ve ObjectMove()' kullanmıyorum .

@Marco

Lütfen aşağıdaki kodun iyi olduğunu veya ne olduğunu bana bildirin.

Tavsiyeniz nedir, son iki yorumunuzu kapsamlı bir şekilde araştırmaya başlayabilir miyim ve göstergeme 'switch() ve ObjectMove()' ekleyebilir miyim? (Neden daha önce soruyorum? - çünkü uzun sürüyor.)

(gördüğünüz gibi #18 yorumunuzdan daha fazla faydalandım - ve şimdi aşağıdaki kodum ile son iki harika yorumunuz arasında ikilemle karşı karşıyayım)

//|+--------------------------------------------------------------------------------+
int   init()
{
     EventSetMillisecondTimer ( 1250 );
    _CreateLines_M5();

     return ( INIT_SUCCEEDED );
}
//|+--------------------------------------------------------------------------------+
int   start()
{
     return ( 0 );
}
//|+--------------------------------------------------------------------------------+
int   deinit()
{
     ObjectsDeleteAll ( 0 , _prefix );
     return ( 0 );
}
//|+--------------------------------------------------------------------------------+
void OnTimer ()
{
     //---
     if ( _dt_Prd_M5 != iTime ( Symbol (), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime ( Symbol (), _prd_M5, 0 );
         _CreateLines_M5();
    }
     return ;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
     //---
     int _dayCnt_M5 = _prd_cnt + 0 ;
     int     _cnt_M5 = iBarShift ( Symbol (), 0 , iTime ( Symbol (), PERIOD_W1 , _dayCnt_M5 ) );
     for ( i = 0 ; i < _cnt_M5; i++ )
    {
        _time_M5     = Time [i];
        _prdCvrt_M5  = PeriodSeconds ( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr ( _timeCvrt_M5, TIME_DATE | TIME_MINUTES );

         if ( _Period < PERIOD_M15 )
        {
             if (
                    ...
                     TimeHour ( _timeCvrt_M5 ) == 12
               )
            {
                 ObjectCreate ( _vlineName_M5, OBJ_VLINE , 0 , _timeCvrt_M5, 0   );
            }
        }
    }
     return ;
}

Senin için en iyisi adamım.

 
Keith Watford :

Başka kimse hakkında bilgim yok ama yazı tipi, renkler, kalın ve italik vb. karışımınızı dikkat dağıtıcı ve sinir bozucu buluyorum. Aslında bu yazıyı okumaya cesaret edemedim.

Tamamen katılıyorum, konunun başından beri tüm bu yorumların üstünde "zıplıyorum".
 
Max Enrik :

Son yorumlarınızı araştırdım.

2 güzel yorum daha. Bu kod benzer görünüyor (#18 yorumunuz) ama bu benim için çok farklı.

Yani, evet, çerçeveyi değiştirdiğimde 'Zamanlayıcı'nın yok olduğunu hissediyordum. Ancak bu benim için çok faydalı çünkü göstergem PERIOD_**'larda bir kez güncelleniyor.

Evet! init() özel işlevinde zaten ana satırlar oluşturuyorum ve bunlar OnTimer() işlevinde güncelleniyor.

(aşağıdaki koddan beni daha net anlayabilirsiniz)

...birleştirebileceğiniz yeni mum doğar ...

Daha fazla sorun varsa...

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------------

Dediğim gibi bir sorun var, daha fazla zaman alıyor . Şu anda size gösterge kodumdan bazılarını göstermem gerekiyor. Ve göstergemde 'operatörü değiştir ve ObjectMove()' kullanmıyorum .

@Marco

Lütfen aşağıdaki kodun iyi olduğunu veya ne olduğunu bana bildirin.

Tavsiyeniz nedir, son iki yorumunuzu kapsamlı bir şekilde araştırmaya başlayabilir miyim ve göstergeme 'switch() ve ObjectMove()' ekleyebilir miyim? (Neden daha önce soruyorum? - çünkü uzun sürüyor.)

(gördüğünüz gibi #18 yorumunuzdan daha fazla faydalandım - ve şimdi aşağıdaki kodum ile son iki harika yorumunuz arasında ikilemle karşı karşıyayım)

//|+--------------------------------------------------------------------------------+
int   init()
{
     EventSetMillisecondTimer ( 1250 );
    _CreateLines_M5();

     return ( INIT_SUCCEEDED );
}
//|+--------------------------------------------------------------------------------+
int   start()
{
     return ( 0 );
}
//|+--------------------------------------------------------------------------------+
int   deinit()
{
     ObjectsDeleteAll ( 0 , _prefix );
     return ( 0 );
}
//|+--------------------------------------------------------------------------------+
void OnTimer ()
{
     //---
     if ( _dt_Prd_M5 != iTime ( Symbol (), _prd_M5, 0 ) )
    {
         _dt_Prd_M5  = iTime ( Symbol (), _prd_M5, 0 );
         _CreateLines_M5();
    }
     return ;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
     //---
     int _dayCnt_M5 = _prd_cnt + 0 ;
     int     _cnt_M5 = iBarShift ( Symbol (), 0 , iTime ( Symbol (), PERIOD_W1 , _dayCnt_M5 ) );
     for ( i = 0 ; i < _cnt_M5; i++ )
    {
        _time_M5     = Time [i];
        _prdCvrt_M5  = PeriodSeconds ( _prd_M5 );
        _timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;

        _vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr ( _timeCvrt_M5, TIME_DATE | TIME_MINUTES );

         if ( _Period < PERIOD_M15 )
        {
             if (
                    ...
                     TimeHour ( _timeCvrt_M5 ) == 12
               )
            {
                 ObjectCreate ( _vlineName_M5, OBJ_VLINE , 0 , _timeCvrt_M5, 0   );
            }
        }
    }
     return ;
}

Senin için en iyisi adamım.

Peki işe yararsa ve denemeye devam etmezse.

 
Marco vd Heijden :

Peki işe yararsa ve denemeye devam etmezse.

Çok teşekkürler!
 

#Broker Time - Yeniden Aç

Burada ve orada birkaç forum okudum. Belki benim çözümüm ikisinden biri. Ama anlayamadım.

Bu yorumdan önce - Bir kez daha denedim. Ama çözüm bulamıyorum.
Yani, 2 brokerim var, A ve B.

  • C: Vline nesneleri doğru zamanı yerleştirir. Hangisini istiyorum. örneğin: Zaman 2017.02.18 0 :00 ayrıca aynı zamanda yerleştirilen vline nesnesi.
  • B: Vline nesnesi yanlış zaman yerleştirdi (belki yanılıyorum). örneğin: Zaman 2017.02.18 1 :00 ancak vline nesne yeri 0 :00.
Yani biri endişemi anlarsa, herhangi bir yorum benim için daha iyi olur.

İyi haftasonları.

 
Max Enrik :

#Broker Time - Yeniden Aç

Burada ve orada birkaç forum okudum. Belki benim çözümüm ikisinden biri. Ama anlayamadım.

Bu yorumdan önce - Bir kez daha denedim. Ama çözüm bulamıyorum.
Yani, 2 brokerim var, A ve B.

  • C: Vline nesneleri doğru zamanı yerleştirir. Hangisini istiyorum. örneğin: Zaman 2017.02.18 0 :00 ayrıca aynı zamanda yerleştirilen vline nesnesi.
  • B: Vline nesnesi yanlış zaman yerleştirdi (belki yanılıyorum). örneğin: Zaman 2017.02.18 1 :00 ancak vline nesne yeri 0 :00.
Yani biri endişemi anlarsa, herhangi bir yorum benim için daha iyi olur.

İyi haftasonları.

kodu görmen lazım
 

Aşağıdaki kod bana iki farklı Broker'da farklı sonuçlar veriyor.
(Bir önceki yorumum beni anlamanıza yardımcı olabilir)

Şimdiden teşekkürler.

void PerioDay()
  {
// High

   ObjectSet ( "PeriodHigh" , OBJPROP_PRICE1 , iHigh ( Symbol (), PERIOD_D1 , 0 ));
   ObjectSet ( "PeriodHigh" , OBJPROP_PRICE2 , iHigh ( Symbol (), PERIOD_D1 , 0 ));

   ObjectSet ( "PeriodHigh" , OBJPROP_TIME1 , TimeCurrent ());
   ObjectSet ( "PeriodHigh" , OBJPROP_TIME2 , TimeCurrent () -( TimeCurrent ()- iTime ( Symbol (), PERIOD_D1 , 0 )));

// Low

   ObjectSet ( "PeriodLow" , OBJPROP_PRICE1 , iLow ( Symbol (), PERIOD_D1 , 0 ));
   ObjectSet ( "PeriodLow" , OBJPROP_PRICE2 , iLow ( Symbol (), PERIOD_D1 , 0 ));

   ObjectSet ( "PeriodLow" , OBJPROP_TIME1 , TimeCurrent ());
   ObjectSet ( "PeriodLow" , OBJPROP_TIME2 , TimeCurrent () -( TimeCurrent ()- iTime ( Symbol (), PERIOD_D1 , 0 )));
  }
 

iHigh ve iLow değerlerinin brokerlar arasında farklılık gösterdiğini kastediyorsanız, bu oldukça yaygındır.

2 neden:

1. Fiyatlar komisyoncular arasında biraz farklılık gösterir ve

2. Aracıların sunucularının farklı GMT ofsetleri varsa, çubuklar farklı zamanlarda başlar.

 
honest_knave :

iHigh ve iLow değerlerinin brokerlar arasında farklılık gösterdiğini kastediyorsanız, bu oldukça yaygındır.
2 neden:
1. Fiyatlar komisyoncular arasında biraz farklılık gösterir ve
2. Aracıların sunucularının farklı GMT ofsetleri varsa, çubuklar farklı zamanlarda başlar.

Sadece farklı Zaman demek istiyorum.

Yani, bu sorunu çözme şansı yok, lütfen?

Çok teşekkürler.