O kod değerler verebilir ama doğru değerleri vermez.
Lütfen önceki gönderilerime bakın
Merhaba Gumrai, kodunuzu ve buraya eklediğim Qjol sihirli kodunu derledim. qjol kodu olmadan grafiğin şekli 7 sayısı gibidir, ancak qjol kodu eklendiğinde daha iyi davranır. Resimde gördüğünüz gibi değer -1'e düştü. Arsa, buradaki önceki görüntü ile aynı şekle ancak farklı değere sahiptir. Lütfen bunun nasıl iyileştirileceğini tavsiye edin. Teşekkürler.
#property indicator_separate_window// Indicator is drawn in the main window#property indicator_buffers1// Number of buffers#property indicator_color1 Red // Color of the 1st line//#property indicator_color2 Yellow // Color of the 2nd line//extern int Multiplier=2; double Buf_0[];// Buf_1[]; // Declaring indicator arrays//THIS INDICATOR IS TO COUNT NUMBER OF M1 BARS WHICH HIGH[I] IS HIGHER AND LOW[I] IS LOWER THAN OPEN[1440].//--------------------------------------------------------------------int init() // Special function init()
{
//--------------------------------------------------------------------SetIndexBuffer(0,Buf_0); // Assigning an array to a bufferSetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Line style//--------------------------------------------------------------------// SetIndexBuffer(1,Buf_1); // Assigning an array to a buffer// SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Line style//--------------------------------------------------------------------return(0); // Exit the special funct.init()
}
//--------------------------------------------------------------------int start() // Special function start()
{
int i=0, iCht, Counted_bars;
//--------------------------------------------------------------------
Counted_bars=IndicatorCounted(); // Number of counted barsfor(iCht = Bars - 1 - Counted_bars; iCht >= 0; iCht--){ // Chart barsint iD1 = iBarShift(Symbol(), PERIOD_D1, Time[iCht]);
Buf_0[iCht] = EMPTY; // <<<<<<<<<<<< This is the magic code that gjol inserted and it worked. //----find the datetime of iD1. ie the Time[]datetime daystarttime = iTime(Symbol(),PERIOD_D1,iD1);
double openD1 = iOpen(Symbol(), PERIOD_D1, iD1);
//----find BarShift of daystarttime on current chart and take the nearest following bar if it doesn't existint iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,true);
if(iM1Beg<0)
iM1Beg = iBarShift(Symbol(),PERIOD_M1,daystarttime,false)+1;
//----find BarShift for end of day on current chart and take the nearest following bar if it doesn't existif(iD1>0)
{
datetime nextday = iTime(Symbol(),PERIOD_D1,iD1-1);
int iM1End = iBarShift(Symbol(),PERIOD_M1,nextday-1,true);
if(iM1End<0)
iM1End = iBarShift(Symbol(),PERIOD_M1,nextday,false);
for(Buf_0[i] = 0; iM1Beg > iM1End; iM1Beg--){
double hM1 = iHigh(Symbol(), PERIOD_M1, iM1Beg),
lM1 = iLow(Symbol(), PERIOD_M1, iM1Beg);
// count Bars of M1 Period that crisscross Open price of D1 Period if( hM1 >= openD1 && openD1 >= lM1) Buf_0[iCht]++;
}
}
}
//--------------------------------------------------------------------return(0);//
}
//--------------------------------------------------------------------
Lütfen bunu en iyi nasıl geliştirebileceğimizi önerin. Teşekkürler.
Görünüşe göre önerilerimi zaten uygulamışsınız.
Tampon[0] kodda hesaplanmadığı için indi satırı sıfıra düşüyor. Bu değerin 0'dan başlayıp gün geçtikçe artmasını mı yoksa daha düzenli görünmesini sağlamak için sadece buffer[0] == buffer[1] yapmak mı istediğinize karar vermelisiniz.
Tampon[0] kodda hesaplanmadığı için indi satırı sıfıra düşüyor. Bu değerin 0'dan başlayıp gün geçtikçe artmasını mı yoksa daha düzenli görünmesini sağlamak için sadece buffer[0] == buffer[1] yapmak mı istediğinize karar vermelisiniz.
Merhaba GumRai, 0'dan başlayıp gün ilerledikçe artan şekilde nasıl kodlayabilirim? Lütfen yardım et. Teşekkürler.
Merhaba GumRai, 0'dan başlayıp gün ilerledikçe artan şekilde nasıl kodlayabilirim? Lütfen yardım et. Teşekkürler.
Kodunuzda bazı değişiklikler yaptım
int start() // Special function start()
{
int i, iCht, Counted_bars, limit, iD1, iM1Beg, iM1End, counter ;
datetime daystarttime, nextday ;
double hM1, lM1, openD1 ;
//--------------------------------------------------------------------
Counted_bars= IndicatorCounted (); // Number of counted bars
limit = Bars - 1 - Counted_bars;
if (limit > Bars - 100 )
limit = Bars - 100 ;
for (iCht = limit; iCht >= 0 ; iCht--){ // Chart bars
iD1 = iBarShift ( Symbol (), PERIOD_D1 , Time [iCht]); //---Barshift on daily chart
daystarttime = iTime ( Symbol (), PERIOD_D1 ,iD1); //--Find datetime value for start of the day
openD1 = iOpen ( Symbol (), PERIOD_D1 , iD1);
//----find BarShift of daystarttime on current chart and take the nearest following bar if it doesn't exist
iM1Beg = iBarShift ( Symbol (), PERIOD_M1 ,daystarttime, true );
if (iM1Beg< 0 )
iM1Beg = iBarShift ( Symbol (), PERIOD_M1 ,daystarttime, false )+ 1 ;
//----find BarShift for end of day on current chart and take the nearest following bar if it doesn't existif (iD1> 0 ) //-- Change to iD1>=0 to show running total for the current day
{
nextday = iTime ( Symbol (), PERIOD_D1 ,iD1- 1 );
iM1End = iBarShift ( Symbol (), PERIOD_M1 ,nextday- 1 , true );
if (iM1End< 0 )
iM1End = iBarShift ( Symbol (), PERIOD_M1 ,nextday, false );
counter = 0 ;
for (i= iM1Beg; i >= iM1End; i--){
hM1 = iHigh ( Symbol (), PERIOD_M1 , i);
lM1 = iLow ( Symbol (), PERIOD_M1 , i);
// count Bars of M1 Period that crisscross Open price of D1 Period if ( hM1 >= openD1 && openD1 >= lM1)
counter++ ;
}
Buf_0[iCht] = counter;
}
}
//--------------------------------------------------------------------return ( 0 ); //
}
//--------------------------------------------------------------------//+------------------------------------------------------------------+
Bu istediğini yapmalı
Olduğu gibi bugün için bir değer vermeyecek
Değişikliği vurgulanan metindeki gibi yaparsanız , 0'dan başlayacak ve gün ilerledikçe artan bugün için bir değer içermelidir.
Neden arsa burada eksik. Ocak 2014'ten önce dolmuyor. Lütfen sorunu bildirin. Bu çizelge WHRoeder kodu kullanılarak yapıldı, ancak GumRai tarafından önerilen bile aynı durdurulan grafiği veriyor.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
O kod değerler verebilir ama doğru değerleri vermez.
Lütfen önceki gönderilerime bakın
O kod değerler verebilir ama doğru değerleri vermez.
Lütfen önceki gönderilerime bakın
O kod değerler verebilir ama doğru değerleri vermez.
Lütfen önceki gönderilerime bakın
Merhaba GumRai,
Lütfen bunu en iyi nasıl geliştirebileceğimizi önerin. Teşekkürler.
Merhaba GumRai,
Lütfen bunu en iyi nasıl geliştirebileceğimizi önerin. Teşekkürler.
Görünüşe göre önerilerimi zaten uygulamışsınız.
Tampon[0] kodda hesaplanmadığı için indi satırı sıfıra düşüyor. Bu değerin 0'dan başlayıp gün geçtikçe artmasını mı yoksa daha düzenli görünmesini sağlamak için sadece buffer[0] == buffer[1] yapmak mı istediğinize karar vermelisiniz.
Görünüşe göre önerilerimi zaten uygulamışsınız.
Tampon[0] kodda hesaplanmadığı için indi satırı sıfıra düşüyor. Bu değerin 0'dan başlayıp gün geçtikçe artmasını mı yoksa daha düzenli görünmesini sağlamak için sadece buffer[0] == buffer[1] yapmak mı istediğinize karar vermelisiniz.
Merhaba GumRai, 0'dan başlayıp gün ilerledikçe artan şekilde nasıl kodlayabilirim? Lütfen yardım et. Teşekkürler.
Merhaba GumRai, 0'dan başlayıp gün ilerledikçe artan şekilde nasıl kodlayabilirim? Lütfen yardım et. Teşekkürler.
Kodunuzda bazı değişiklikler yaptım
Bu istediğini yapmalı
Olduğu gibi bugün için bir değer vermeyecek
Değişikliği vurgulanan metindeki gibi yaparsanız , 0'dan başlayacak ve gün ilerledikçe artan bugün için bir değer içermelidir.
Neden arsa burada eksik. Ocak 2014'ten önce dolmuyor. Lütfen sorunu bildirin. Bu çizelge WHRoeder kodu kullanılarak yapıldı, ancak GumRai tarafından önerilen bile aynı durdurulan grafiği veriyor.