Merhaba WHRoeder, göstergeyi derlemeyi başardım ve buraya grafiğin görüntüsünü ekledim. Kırmızı gösterge çizgisi üstte düz bir çizgi oluşturur ve Bar0'a düşer. Buraya en son kodları ekledim, kodun nerede iyileştirileceğini tavsiye eder, böylece gösterge çapraz geçişli M1'in değerlerini çizer. Şimdiden çok 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 linedouble Buf_0[]; // 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_DOT,1);// 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 ( NULL , PERIOD_D1 , Time [iCht]);
double openD1 = iOpen ( NULL , PERIOD_D1 , iD1);
int iM1Beg = iBarShift ( NULL , PERIOD_M1 , Time [iCht]),
iM1End = - 1 ;
if (iCht > 0 ) iM1End = iBarShift ( NULL , PERIOD_M1 , Time [iCht- 1 ]);
for (Buf_0[i] = 0 ; iM1Beg > iM1End; iM1Beg--){
double hM1 = iHigh ( NULL , PERIOD_M1 , iM1Beg),
lM1 = iLow ( NULL , 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 ); // Exit the special funct. start()
}
//--------------------------------------------------------------------
#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 linedouble Buf_0[]; // 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_DOT,1);// 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 ( NULL , PERIOD_D1 , Time [iCht]);
double openD1 = iOpen ( NULL , PERIOD_D1 , iD1);
int iM1Beg = iBarShift ( NULL , PERIOD_M1 , Time [iCht]),
iM1End = - 1 ;
if (iCht > 0 ) iM1End = iBarShift ( NULL , PERIOD_M1 , Time [iCht- 1 ]);
for (Buf_0[i] = 0 ; iM1Beg > iM1End; iM1Beg--){
double hM1 = iHigh ( NULL , PERIOD_M1 , iM1Beg),
lM1 = iLow ( NULL , 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 ); // Exit the special funct. start()
}
//--------------------------------------------------------------------
Vurgulanan kod satırı, yalnızca indi günlük grafiğe eklenmişse doğru kaymayı verecektir.
Daha önceki mesajımda da belirttiğim gibi
" Yani D1 mumunun açılışı için tarih saat değerine ihtiyacınız var. Bunu yapabilir misiniz?"
Vurgulanan kod satırı, yalnızca indi günlük grafiğe eklenmişse doğru kaymayı verecektir.
Daha önceki mesajımda da belirttiğim gibi
" Yani D1 mumunun açılışı için tarih saat değerine ihtiyacınız var. Bunu yapabilir misiniz?"
Merhaba GumRai, bir çok kez denedim ama derleyemedim bile, benim anlayışımı aşıyor. En iyisi, biri bana nasıl öğreneceğimi gösterebilirse, örnekler varsa hızlı öğrendiğimi fark ettim. Şu anda gösterge, Bar1 içindeki Open[1] fiyatını çaprazlayan M1 çubuklarını sayıyor. Ancak sayım oradan durur ve grafiği tamamlamak için ilerlemez. Göstergeyi bir EA'ya bağlamaya çalıştım ama EA bile geri test yaparken sinyali gönderemiyor. Lütfen bu göstergeyi tamamen tamamlayacak bazı kodlar gösterin. Teşekkür ederim.
Merhaba GumRai, bir çok kez denedim ama derleyemedim bile, benim anlayışımı aşıyor. En iyisi, biri bana nasıl öğreneceğimi gösterebilirse, örnekler varsa hızlı öğrendiğimi fark ettim. Şu anda gösterge, Bar1 içindeki Open[1] fiyatını çaprazlayan M1 çubuklarını sayıyor. Ancak sayım oradan durur ve grafiği tamamlamak için ilerlemez. Göstergeyi bir EA'ya bağlamaya çalıştım ama EA bile geri test yaparken sinyali gönderemiyor. Lütfen bu göstergeyi tamamen tamamlayacak bazı kodlar gösterin. Teşekkür ederim.
Derlenmedi veya test edilmedi, ancak size yardımcı olabilir
Counted_bars= IndicatorCounted (); // Number of counted barsfor (iCht = Bars - 1 - Counted_bars; iCht >= 0 ; iCht--){ // Chart barsint iD1 = iBarShift ( Symbol (), PERIOD_D1 , Time [iCht]);
//----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]++;
}
}
Buf_0[iCht] = EMPTY; eklemeyi başardım. WHRoeder koduna ve bir şekilde gösterge çalıştı. Lütfen resmi ve en son derlenmiş kodları kontrol edin. Ancak onu EA'ma bağladığımda, sanki bir ayyaş süt kusanmış gibi yüklemeye ve boşaltmaya devam etti. Aynı EA ile bağlantılı diğer göstergeler iyi çalıştı. Aldığım mesaj şu:
2014.02.25 17:17:08.8062014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.7992014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.7942014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.7872014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.7832014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.7742014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.7682014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
Lütfen neyin yanlış gittiğini bana bildirin. 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 lineexternint 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(NULL, PERIOD_D1, Time[iCht]);
double openD1 = iOpen(NULL, PERIOD_D1, iD1);
int iM1Beg = iBarShift(NULL, PERIOD_M1, Time[iCht]),
iM1End = -1;
if(iCht > 0) iM1End = iBarShift(NULL, PERIOD_M1, Time[iCht-1]);
Buf_0[iCht] = EMPTY; // <<<<<<<<<<<< This is the magic code that gjol inserted and it worked. for(Buf_0[i] = 0; iM1Beg > iM1End; iM1Beg--){
double hM1 = iHigh(NULL, PERIOD_M1, iM1Beg),
lM1 = iLow(NULL, PERIOD_M1, iM1Beg);
// count Bars of M1 Period that crisscross Open price of D1 Period if( hM1 >= openD1 && openD1 >= lM1) Buf_0[iCht]++;
// Buf_1[iCht]= Multiplier*Buf_0[iCht];
}
}
//--------------------------------------------------------------------return(0);//
}
//--------------------------------------------------------------------
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.
M1 geçmişiniz var mı?
Evet bende var.
Vurgulanan kod satırı, yalnızca indi günlük grafiğe eklenmişse doğru kaymayı verecektir.
Daha önceki mesajımda da belirttiğim gibi
" Yani D1 mumunun açılışı için tarih saat değerine ihtiyacınız var . Bunu yapabilir misiniz?"
Vurgulanan kod satırı, yalnızca indi günlük grafiğe eklenmişse doğru kaymayı verecektir.
Daha önceki mesajımda da belirttiğim gibi
" Yani D1 mumunun açılışı için tarih saat değerine ihtiyacınız var . Bunu yapabilir misiniz?"
Merhaba GumRai, bir çok kez denedim ama derleyemedim bile, benim anlayışımı aşıyor. En iyisi, biri bana nasıl öğreneceğimi gösterebilirse, örnekler varsa hızlı öğrendiğimi fark ettim. Şu anda gösterge, Bar1 içindeki Open[1] fiyatını çaprazlayan M1 çubuklarını sayıyor. Ancak sayım oradan durur ve grafiği tamamlamak için ilerlemez. Göstergeyi bir EA'ya bağlamaya çalıştım ama EA bile geri test yaparken sinyali gönderemiyor. Lütfen bu göstergeyi tamamen tamamlayacak bazı kodlar gösterin. Teşekkür ederim.
Buf_0[iCht] = EMPTY;Merhaba GumRai, bir çok kez denedim ama derleyemedim bile, benim anlayışımı aşıyor. En iyisi, biri bana nasıl öğreneceğimi gösterebilirse, örnekler varsa hızlı öğrendiğimi fark ettim. Şu anda gösterge, Bar1 içindeki Open[1] fiyatını çaprazlayan M1 çubuklarını sayıyor. Ancak sayım oradan durur ve grafiği tamamlamak için ilerlemez. Göstergeyi bir EA'ya bağlamaya çalıştım ama EA bile geri test yaparken sinyali gönderemiyor. Lütfen bu göstergeyi tamamen tamamlayacak bazı kodlar gösterin. Teşekkür ederim.
Derlenmedi veya test edilmedi, ancak size yardımcı olabilir
Buf_0[iCht] = EMPTY; eklemeyi başardım. WHRoeder koduna ve bir şekilde gösterge çalıştı. Lütfen resmi ve en son derlenmiş kodları kontrol edin. Ancak onu EA'ma bağladığımda, sanki bir ayyaş süt kusanmış gibi yüklemeye ve boşaltmaya devam etti. Aynı EA ile bağlantılı diğer göstergeler iyi çalıştı. Aldığım mesaj şu:
2014.02.25 17:17:08.806 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.799 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.794 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.787 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.783 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı
2014.02.25 17:17:08.774 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: başarıyla yüklendi
2014.02.25 17:17:08.768 2014.01.02 07:48 Özel gösterge MamaMaryII EURPLN,Günlük: kaldırıldı