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

 

Bahşiş için teşekkürler. Bu yüzden mesajın pek iyi görünmediğini düşündüm. Bileceğim. mesajı düzeltiyorum.

 //+------------------------------------------------------------------+
//|                                                    SimpleBars.mq4|
//|                                                  excelf@gmail.com|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Ivan Kornilov. All rights reserved."
#property link "excelf@gmail.com"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Red
#property indicator_color2 Green
#property indicator_color3 Red
#property indicator_color4 Green

#define SIGNAL_NONE         0 //Пустой сигнал
#define SIGNAL_BUY         1 //Сигнал на покупку 
#define SIGNAL_SELL       - 1 //Сигнал на продажу 
#define SIGNAL_TRADE_ALLOW 3 //Сигнал разрешающий торговлю


extern int period = 6 ;
extern bool useClose = true ;
extern int width = 1 ;

double bufferRed1[];
double bufferGreen1[];
double bufferRed2[];
double bufferGreen2[];
double trand[];

int init() {
    IndicatorBuffers( 5 );
 
     SetIndexBuffer ( 0 , bufferRed1);
     SetIndexBuffer ( 1 , bufferGreen1);
     SetIndexBuffer ( 2 , bufferRed2);
     SetIndexBuffer ( 3 , bufferGreen2);
     SetIndexBuffer ( 4 , trand);
    
    IndicatorDigits( Digits + 1 );
    SetIndexStyle( 0 , DRAW_HISTOGRAM , 0 , 1 );
    SetIndexStyle( 1 , DRAW_HISTOGRAM , 0 , 1 );
    SetIndexStyle( 2 , DRAW_HISTOGRAM , 0 , width);
    SetIndexStyle( 3 , DRAW_HISTOGRAM , 0 , width);
}


int start() {
   int counted_bars=IndicatorCounted();

   if (counted_bars > 0 ) {
       counted_bars--;
   }
   int limit = Bars - counted_bars;

   int j;
   double buyPrice;
   double sellPrice;
   for ( int i = limit - 1 ; i >= 0 ; i--) {
         if (useClose) {
            buyPrice = Close[i];
            sellPrice = Close[i];
        } else {
            buyPrice = Low[i];
            sellPrice = High[i];
        }
         if (trand[i + 1 ] == SIGNAL_NONE || trand[i + 1 ] == EMPTY_VALUE ) {
             if (Close[i] > Open[i]) {
               trand[i] = SIGNAL_BUY;
           } else {
               trand[i] = SIGNAL_SELL;
           }
        } else {
             if (trand[i + 1 ] == SIGNAL_BUY) {
                 if (buyPrice > Low[i + 1 ]) {
                   trand[i] = SIGNAL_BUY;
                } else {
                   for (j = 2 ; j <= period; j++) {
                         if (buyPrice > Low[i + j]) {
                           trand[i] = SIGNAL_BUY;
                         break ;
                        } else {
                           trand[i] = SIGNAL_SELL;
                        }
                   }
                }
            } else if (trand[i + 1 ] == SIGNAL_SELL) {
                 if (sellPrice < High[i + 1 ]) {
                   trand[i] = SIGNAL_SELL;
                } else {
                     for (j = 2 ; j <= period; j++) {
                         if (sellPrice < High[i + j]) {
                           trand[i] = SIGNAL_SELL;
                           break ;
                        } else {
                           trand[i] = SIGNAL_BUY;
                        }
                   }
                }
            }   
        }

         if (trand[i] == SIGNAL_SELL) { //RED BAR 
            bufferRed1[i]  = High[i];
            bufferGreen1[i] = Low[i]; 
            bufferRed2[i]  = MathMax (Open[i], Close[i]); 
            bufferGreen2[i] = MathMin (Open[i], Close[i]);   
        } else if (trand[i] == SIGNAL_BUY)  {
            bufferRed1[i]  = Low[i];
            bufferGreen1[i] = High[i]; 
            bufferRed2[i]  = MathMin (Open[i], Close[i]);  
            bufferGreen2[i] = MathMax (Open[i], Close[i]);    
        } 
    }
}
 
Kirill875 :

Bunu mu demek istediniz:

Ayrıca bu Buff8[i]=iMA(NULL,60,Period1, sh 0 ,MODE_SMA,PRICE_CLOSE, sh );

Ve gömme kodunu kullanın.

 
Roman_Bryansk :

Bahşiş için teşekkürler. Bu yüzden mesajın pek iyi görünmediğini düşündüm. Bileceğim. mesajı düzeltiyorum.

Mesajlarınızın altında sağ altta "sil" ve "düzenle" sihirli seçenekleri var, aynı şeyi yeni bir mesajla yazmanıza gerek yok, orada düzeltmeniz yeterliydi ;)
 
evillive :
Kod için, mesaj düzenleme panelinde üstte bir buton veya Ctrl+Alt+M kombinasyonu var, kod güzel ve okunabilir hale geliyor. Kayıplara gelince , SetIndexStyle () işlevinin bir renk parametresi vardır, bunu kullanmaktan çekinmeyin.

Zor değilse, daha fazlasını söyle. Sadece renk ve genişlik ayarlarında böyle olmasına ihtiyacım var:

Hayır. Renk Genişlik Stili

0. Siyah 0 0

1 siyah 0 0

2. Kırmızı 2 0

3.Yeşil20

genişlik her zaman kaybolur, yani. sanki her zaman standart ayarlara dönüyormuş gibi.

Kesin olarak yargılamayın, görünüşe göre size verilenler bana verilmemiş. Bu tür 2 mesajı derlerken bile: tüm kontrol yolları bir değer döndürmez SimpleBars.mq4 115 1.

 
Anladım. Özür dilerim. Kirlenmiş.
 
Roman_Bryansk :

Zor değilse, daha fazlasını söyle. Sadece renk ve genişlik ayarlarında böyle olmasına ihtiyacım var:

Hayır. Renk Genişlik Stili

0 Siyah 0 0

..

genişlik her zaman kaybolur, yani. sanki her zaman standart ayarlara dönüyormuş gibi.

Kesin olarak yargılamayın, görünüşe göre size verilenler bana verilmemiş. Bu tür 2 mesajı derlerken bile: tüm kontrol yolları bir değer döndürmez SimpleBars.mq4 115 1.


 void   SetIndexStyle(
   int      index,       // номер линии
   int      type,         // тип
   int      style=EMPTY, // стиль линии
   int      width=EMPTY, // ширина линии
   color    clr= clrNONE    // цвет
   );

Yani, sizin durumunuzdaki ilk arabellek için:

SetIndexStyle( 0 , DRAW_HISTOGRAM , EMPTY,width,Red);

Ayarlar kaydedilmezse, terminalin veri dizinine yazmak için yeterli izniniz olmayabilir. Bu, sistem bölümüne yüklediğinizde ve normal modda çalıştığınızda olur. Terminali /portable modunda çalıştırmayı deneyin (tuş, terminali başlatmak için kısayolda yazılıdır).

Ve her zaman tüm kullanıcılara tavsiye ettim ve sistem dışı bir bölüme yükleyebileceğiniz tüm programları önermeye devam edeceğim.

 
Простите меня за наглость)
 
evillive :


Yani, durumunuzdaki ilk arabellek için:

Ayarlar kaydedilmezse, terminalin veri dizinine yazmak için yeterli izniniz olmayabilir. Bu, sistem bölümüne yüklediğinizde ve normal modda çalıştığınızda olur. Terminali /portable modunda çalıştırmayı deneyin (tuş, terminali başlatmak için kısayolda yazılıdır).

Ve her zaman tüm kullanıcılara tavsiye ettim ve sistem dışı bir bölüme yükleyebileceğiniz tüm programları önermeye devam edeceğim.

Sen bir sihirbazsın)) onu EMPTY ile değiştirdim ve iki göstergeye göre her şey yolunda. Çok teşekkürler. "/taşınabilir" ile ilgili: Bir nesne satırının ayarlarına kaydolduğumda doğru şekilde yazmıyor.
 
Roman_Bryansk :
Sen bir sihirbazsın)) onu EMPTY ile değiştirdim ve iki göstergeye göre her şey yolunda. Çok teşekkürler. "/taşınabilir" ile ilgili: Bir nesne satırının ayarlarına kaydolduğumda doğru şekilde yazmıyor.
Ve anahtarı tırnakların arkasına koymanız yeterli.
 
Kirill875 :
Derlemeden sonra terminal donuyor. Nereden girileceğini bir örnekle gösterebilir misiniz?

Burada

Dosyalar:
testmtf.mq4  4 kb