Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 182

 

Merhaba.

Böyle bir NewBar(sy, TF) işlevi vardır. Yeni barın açılıp açılmadığını görmek istiyor. Saatlik grafikte 5 dakikalık bir gecikmeyle yeni bir çubuğun görünümü hakkında bir sinyal almam gerekiyor. Yani 0,05, 1,05, 2,05, ..........., 10.05, 11.05 vb.'de bir sinyal almak istiyorum. Merhaba


Nasıl yapılır ? İşlevin kendisini bir şekilde değiştirmek mümkün müdür?

 
hoz :

Peki, #property kitaplığını kaldırdım ve hiçbir uyarı yoktu, başlatma işlevi de yok..

Uyarılar ne hakkında?
 
Vinin :

Uyarılar ne hakkında?


Peki ne... İşte:

sergeev :
eksik başlangıçla ilgili uyarıları görmek istemiyorsanız gereklidir

 
gince :

Merhaba.

Böyle bir NewBar(sy, TF) işlevi vardır. Yeni bir bar açılıp açılmadığını görmek istiyor. Saatlik grafikte 5 dakikalık bir gecikmeyle yeni bir çubuğun görünümü hakkında bir sinyal almam gerekiyor. Yani 0,05, 1,05, 2,05, ..........., 10.05, 11.05 vb.'de bir sinyal almak istiyorum. Merhaba


Nasıl yapılır ? İşlevin kendisini bir şekilde değiştirmek mümkün müdür?


Global olarak beyan edersiniz:

 datetime = bdt_lastBarTime;

INIT'TE:

bdt_lastBarTime = 0 ;

BAŞLANGIÇTA:

 if (g_lastBarTime == Time[ 0 ])         // На текущем баре все необходимые действия..
       return ( 0 );                     // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

g_lastBarTime = Time[ 0 ];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

Zaman[ 0 ] Yerine; iTime()'ı mevcut zamandan değil, başka bir zaman diliminden yeni bir çubuk almak için işaretleyebilirsiniz.

 
hoz :


Global olarak beyan edersiniz:

INIT'TE:

BAŞLANGIÇTA:

Zaman[ 0 ] Yerine; iTime()'ı mevcut zamandan değil, başka bir zaman diliminden yeni bir çubuk almak için işaretleyebilirsiniz.


Sorun sadece burada. Değişken isimleri eşleşmiyor. A-yay-yay. Dikkatsizlik mi yoksa alışkanlık mı?
 
Vinin :

Sorun sadece burada. Değişken isimleri eşleşmiyor. A-yay-yay. Dikkatsizlik mi yoksa alışkanlık mı?

Bu dikkatsizlik. düzelteceğim.

Global olarak beyan edersiniz:

 datetime = bdt_lastBarTime;

INIT'TE:

bdt_lastBarTime = 0 ;

BAŞLANGIÇTA:

 if (bdt_lastBarTime == Time[ 0 ])         // На текущем баре все необходимые действия..
       return ( 0 );                     // ..уже были выполнены

// если ...
//.. бар новый...
//.. делаем то..
//.. что нужно выполнить на очередном..
//.. новом баре

bdt_lastBarTime = Time[ 0 ];               // На текущем баре все необходимые действия..
                                       // .. успешно выполнены

Zaman[ 0 ] Yerine; iTime()'ı mevcut zamandan değil, başka bir zaman diliminden yeni bir çubuk almak için işaretleyebilirsiniz.

 

hazırlıksız, yalnızca bu görev için özel olarak.

 bool NewBar05()
{
static bool newbar;
if (Minute()== 5 && !newbar) 
   {
   newbar= true ;
   return true ;
   } 
if (Minute()> 5 && newbar)  newbar= false ;
   return    false ;
}
    
 
xxxKillxxx :

Yoldaş, tekrar kusura bakmayın ama bir sorunum vardı... Kapatarak, sözdizimini gözlemleyerek gerekli blokları çıkarabildim (aslında, programlamada hiç bum-boom değilim) ve hiçbir şey yoktu. hatalar ve uyarılar.Ancak danışman başlatıldığında, fırsatlar hala kapanmadı. Sorun şu ki, danışmanın kodunu gönderemiyorum, ancak sorunu çözmek için çok gerekli, eğer sizin için zor değilse, değerli zamanınızı tekrar bana harcayın, lütfen çözmek için hangi seçeneklerin olabileceğini bana açıklayın. sorun, eğer önemliyse, sadece danışmanın forex jeneratörü 4 üzerinde oluşturulduğunu söyleyebilirim.

Lütfen nedenlerini açıklamak zor değilse.(tercihen parmaklarda tyk-myk yöntemini kullanarak, yoksa sadece bu şekilde programlayacağım) Şimdiden teşekkür ederim.


Benim kodum veya danışmanınızın kodunun zaten bir bölümü, belirtilen karı %0,1 ve üzerinde kapatıyor. Forex jeneratörü 4'te, öz sermayeyi bakiyeden daha yüksek hale getirmek için bir şeyler yapabildiniz mi?
 
Roger :

hazırlıksız, yalnızca bu görev için özel olarak.


Yardımcı olan herkese teşekkürler.

Soru şuydu.

< NewBar(sy, TF) gibi bir fonksiyon var. Yeni bir bar açılıp açılmadığını görmek istiyor. Saatlik grafikte 5 dakikalık bir gecikmeyle yeni bir çubuğun görünümü hakkında bir sinyal almam gerekiyor. Yani 0.05, 1.05, 2.05, ........., 10.05, 11.05, vb.'de bir sinyal almak istiyorum. >

soruyu açıklıyorum. İşlev, her saat başı true değerini döndürmelidir, ancak 5 dakikalık bir gecikmeyle. Yani, çubuk 1.05'in oluşumu sona erdiğinde ve çubuk 2.05 göründüğünde, ikincisinin görünümü ile işlev true değerini döndürür. İşlev, 1.10, 2.10, vb.'de bir çubuğun görünümü ile true değerini döndürür.

Resimde sarı çizgi, bir sonraki çubukta doğru olduğunu gösteriyor.

Öneriniz üzerine denedim ama olmadı.

 bool isNewBar5 ()
{

     static int    LastBar = 0 ; 
     datetime       curbar = iTime ( Symbol (), 60 , 0 ) + 300 ; 
     int                 h = Hour();
     if (LastBar != curbar && h == h + 1 && Minute() == 5 )
    {
        LastBar = curbar;
         return ( true );
    }
     else
    { return ( false );}
}
 
gince :

Merhaba.

Böyle bir NewBar(sy, TF) işlevi vardır. Yeni bir bar açılıp açılmadığını görmek istiyor. Saatlik grafikte 5 dakikalık bir gecikmeyle yeni bir çubuğun görünümü hakkında bir sinyal almam gerekiyor. Yani 0,05, 1,05, 2,05, ..........., 10.05, 11.05 vb.'de bir sinyal almak istiyorum. Merhaba


Nasıl yapılır ? Fonksiyonun kendisini bir şekilde değiştirmek mümkün müdür?


int bt=((TimeCurrent()-5*60)/3600)*3600;

bt değeri her saatin 5 dakikasında değişecektir. Sonunda 3600 ile çarpamazsınız, çağın başından itibaren bir çubuk numarası olacaktır, bu yeni bir çubuk belirlemek için yeterlidir.