[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 270

 
Solree :
Ahahah. Valla ben o kadar yeni değilim...

Peki o zaman, ya stüdyoya ya da telepatlara şifre.
 

Tüm kodu atamam, müşteri yemin eder. Ve başarısız olduğu kısım zaten atıldı. Gerisi bu konuyla alakasız. Nedense, MT'yi daha önce üzerine asılmış bir hindi ile başlattığımda yanlış değerler veren o döngüdür. Tüm kodu sağlamadan hiçbir fikir yoksa, kendi başınıza düşünmek zorunda kalacaksınız :(

 
MT'yi yeniden başlatırsanız düzgün çalıştığını fark ettim ...
 
Solree :

Tüm kodu atamam, müşteri yemin eder. Ve başarısız olduğu kısım zaten atıldı. Gerisi bu konuyla alakasız. Nedense, MT'yi daha önce üzerine asılmış bir hindi ile başlattığımda yanlış değerler veren o döngüdür. Tüm kodu sağlamadan hiçbir fikir yoksa, kendi başınıza düşünmek zorunda kalacaksınız :(


Baskıları daha sık düzenleyin ve günlüğü analiz edin.

Bu arada, bu kodda "count" değişkeninin hangi değere sahip olduğu açık değil.

 
sayım - daha sonra analiz edilecek çubuk sayısı . Ama nedense, şimdi olan ilk bardan değil, MT'nin bir hindi ile kapanışındaki ilk bardan başlayan y'dir. i = başlangıç konumu, y daha sonra ara döngülerde kullanılacak, bu yüzden bilerek yaratıldım. z, her şeyin sayılacağı çubuktur. Burada MT'nin kapanmasından önceki eski çubuğu veriyor ve diğer her şey ondan saymaya başlıyor.
 

Merhaba! Söyle bana, lütfen, bu nasıl olabilir??

i = 2, Açık[i-2] = 1.5715
14:21:15 2011.01.12 18:08 Cum Chekulaeva1 GBPUSD,M1: Düşük[i] = 1.5713, Düşük[i-1] = 1.5714
14:21:15 2011.01.12 18:08 Cum Chekulaeva1 GBPUSD,M1: Düşük[i+1] = 1.5714, Düşük[i-2] = 1.5715
14:21:15 2011.01.12 18:08 Cum Chekulaeva1 GBPUSD,M1: Açık[i-2]-(Düşük[i]-1*PointX) = 0.0004
14:21:15 2011.01.12 18:08 Cum Chekulaeva1 GBPUSD,M1: 1*PuanX = 0.0001

Bu, test günlüğü verilerinden bir alıntıdır. 15-(13-1) 3 olmalı ve test cihazında 4 çıkıyor. Sorun ne?

 

Herkese merhaba, bir kez daha MACD ile ilgili yardım istiyorum. Belirli bir MACD histogram değeri (çubuk boyutu) bulamıyorum. Geçerli (örneğin =-0.001131) sütununun, önceki - herhangi birinin değerini hesaplamam ve örneğin mevcut ile önceki arasındaki farkı bulmam gerekiyor.

 
Ivan1 :

Herkese merhaba, bir kez daha MACD ile ilgili yardım istiyorum. Belirli bir MACD histogram değeri (çubuk boyutu) bulamıyorum. Geçerli (örneğin =-0.001131) sütununun, önceki - herhangi birinin değerini hesaplamam ve örneğin mevcut ile önceki arasındaki farkı bulmam gerekiyor.

https://www.mql5.com/ru/forum/134688/page256
 
Solree :
MT'yi yeniden başlatırsanız düzgün çalıştığını fark ettim ...

Göstergenin istenen duruma değiştirilmesi oldukça kolaydır. Ve çoğu sorun ortadan kalkacak. Ama çok az sorunlu alan var. sorun biraz daha geniş
 

Peki o zaman şöyle bir şey:

 #property indicator_chart_window

extern int count = 1500 ;

color colors[ 4 ];
bool check = true;
int tempCount;

int init()
{
    colors[ 0 ] = Blue ;
    colors[ 1 ] = Purple ;
    colors[ 2 ] = Orange ;
    colors[ 3 ] = Red ;

    tempCount = count;

     return ;
}

int deinit()
{
     ObjectDelete ( "ResistLine0" );
     ObjectDelete ( "ResistLine1" );
     ObjectDelete ( "ResistLine2" );
     ObjectDelete ( "ResistLine3" );

     return ;
}

int start()
{
     if ( Period () != 60 )
    {
         ObjectDelete ( "ResistLine0" );
         ObjectDelete ( "ResistLine1" );
         ObjectDelete ( "ResistLine2" );
         ObjectDelete ( "ResistLine3" );
        
        check = true;
    }
    
     if ( TimeHour (Time[ 1 ]) == 8 && !check)
        check = true;
    
     if (count != tempCount)
    {
        tempCount = count;
        check = true;
    }

     if (check && Period () == 60 )
    {
         ObjectDelete ( "ResistLine0" );
         ObjectDelete ( "ResistLine1" );
         ObjectDelete ( "ResistLine2" );
         ObjectDelete ( "ResistLine3" );
    
         int temp[ 20 ];
         int i, y, x, z;
         double price; //Она нужна для заполнения и выбора
        
         for (y = 1 ; y <= 24 ; y++)
             if ( TimeHour (Time[y]) == 8 )
            { //Тут y будет не корректным, когда запускаешь МТ с уже повешенным индюком
                i = y;
                z = y;
                x = i+count;
                
                 break ;
            }

         for (; i <= x; i++)
        {
             //Тут заполняется temp
        }
        
         double levels[ 4 ];
        i = z;
        
         //Тут выбираются нужные элементы из temp

         for (y = 0 ; y < 4 ; y++)
            createLine( "ResistLine" +y, levels[y], colors[y], i);
        
        check = false;
    }

     return ;
}

void createLine( string name, double price, color c, int i)
{
     ObjectCreate (name, OBJ_TREND , 0 , Time[i], NormalizeDouble (price, Digits ), Time[i]+( 24 * 3600 ), NormalizeDouble (price, Digits ));
     ObjectSet (name, OBJPROP_COLOR , c);
     ObjectSet (name, OBJPROP_WIDTH , 2 );
     ObjectSet (name, OBJPROP_BACK , true);
     ObjectSet (name, OBJPROP_RAY, false);
}

Aslında, yalnızca istenen öğeyi seçme ve belirleme algoritmaları kaldırıldı.