Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 12

 

Lütfen bana kim bilir - MT4 terminalindeki bilgisayarın sistem saatine göre nasıl bağlanacağını söyleyin:

- çizelgeler

- açık siparişler

- işlem geçmişi

- dergiler

- kütükler

Sorun şu ki, zaman uyumsuz.

Sorun ne olabilir?

 

Tünaydın!

Hacim göstergelerinden birini temel aldım, parametrelerime uyacak şekilde değiştirdim, sadece ihtiyacım olanı bıraktım, şimdi okları sadece gerekli olanları gösteriyor.

ANCAK! Hiçbir şekilde bir UYARI ekleyemiyorum, böylece yeşil ok veya kırmızı ok yandığında bir mesaj çıkıyor.

Lütfen yardım et!

ZY Bir şeyin nasıl yapılacağına dair farklı derslere baktım, işe yaramıyor.

 
Refresh052 :

Tünaydın!

Hacim göstergelerinden birini temel aldım, parametrelerime uyacak şekilde değiştirdim, sadece ihtiyacım olanı bıraktım, şimdi okları sadece gerekli olanları gösteriyor.

ANCAK! Hiçbir şekilde bir UYARI ekleyemiyorum, böylece yeşil ok veya kırmızı ok yandığında bir mesaj çıkıyor.

Lütfen yardım et!

ZY İşe yaramayan bir şeyin nasıl yapılacağına dair farklı eğitimlere baktım.

hadi, tüm gösterge kodunu buraya gönderin
 
Stanislav Aksenov :
hadi, tüm gösterge kodunu buraya gönderin

#mülkiyet katı

#özellik göstergesi_chart_window


#özellik göstergesi_minimum 0

#özellik göstergesi_tamponları 2

#özellik göstergesi_renk1 Kırmızı

#özellik göstergesi_color2 Kireç




#özellik göstergesi_width1 4

#özellik göstergesi_width2 4


harici ENUM_APPLIED_PRICE fiyat = PRICE_CLOSE;

harici çift Aşırı Alış = 80;

harici çift Aşırı Satış = 20;

harici int NumberOfBars = 500;

extern string Note = "0, tüm çubukları görüntüle anlamına gelir";

extern int MAPeriod = 100;

harici int LookBack = 20;

extern bool Uyarı=Doğru;

çift kırmızı[],kireç[];

//+------------------------------------------- --------------------+

//| özel gösterge başlatma işlevi |

//+------------------------------------------- --------------------+

int init()

{

//---- göstergeler

SetIndexBuffer(0, kırmızı);

SetIndexStyle(0,DRAW_OK, STYLE_SOLID,3);

SetIndexArrow(0.234);

SetIndexLabel(0,"Doruk Yüksek");

SetIndexBuffer(1, kireç);

SetIndexStyle(1,DRAW_OK, STYLE_SOLID,3);

SetIndexArrow(1,233);

SetIndexLabel(1,"Climax Low");

SetIndexEmptyValue(0,0.0);

SetIndexEmptyValue(1,0.0);

SetIndexDrawBegin(0,0);

SetIndexDrawBegin(1,0);

GöstergeShortName("MKSP_Volume");


//----

dönüş(0);

}

//+------------------------------------------- --------------------+

//| özel gösterge sıfırlama işlevi |

//+------------------------------------------- --------------------+

int tanım()

{

//----

//----

dönüş(0);

}

//+------------------------------------------- --------------------+

//| özel gösterge yineleme işlevi |

//+------------------------------------------- --------------------+

int başlangıç()

{


double VolDüşük,Aralık,Değer2,Değer3,HiValue2,HiValue3,LoValue3,tempv2,tempv3,tempv;

int limiti;

int counted_bars=IndicatorCounted();

//---- son sayılan çubuk yeniden sayılacak

if(counted_bars>0) counted_bars--;

if ( NumberOfBars == 0 )

NumberOfBars = Barlar-counted_bars;

limit=Çubuk Sayısı; //Barlar-sayılan_barlar;

for(int i=0; i<limit; i++)

{

kırmızı[i] = 0; kireç[i] = 0;

Value2=0;Value3=0;HiValue2=0;HiValue3=0;LoValue3=99999999;tempv2=0;tempv3=0;tempv=0;

HacimDüşük = Hacim[iDüşük(NULL,0,MODE_VOLUME,20,i)];

if (Hacim[i] == HacimDüşük)

{

}

Aralık = (Yüksek[i]-Düşük[i]);

Değer2 = Hacim[i]*Aralık;

if ( Aralık != 0 )

Değer3 = Hacim[i]/Aralık;

for ( int n=i;n<i+MAPeriod;n++ )

{

tempv= Hacim[n] + tempv;

}

for (int n=i;n<i+LookBack;n++)

{

tempv2 = Hacim[n]*((Yüksek[n]-Düşük[n]));

if ( tempv2 >= HiValue2 )

YüksekDeğer2 = tempv2;

if ( Hacim[n]*((Yüksek[n]-Düşük[n])) != 0 )

{

tempv3 = Hacim[n] / ((Yüksek[n]-Düşük[n]));

if (tempv3 > HiValue3)

HiValue3 = tempv3;

if ( tempv3 < LoValue3 )

LoValue3=tempv3;

}

}

if ( Değer2 == YüksekDeğer2 && Kapat[i] > (Yüksek[i] + Düşük[i]) / 2 )

{

kırmızı[i] = Yüksek[i]+10*Nokta;

}

if ( Değer3 == YüksekDeğer3 )

{

NormalizeDouble(Volume[i],0);

kırmızı[i]=0;

}

if ( Değer2 == YüksekDeğer2 && Değer3 == YüksekDeğer3 )

{

NormalizeDouble(Volume[i],0);

kırmızı[i]=0;

}

if ( Değer2 == YüksekDeğer2 && Kapat[i] <= (Yüksek[i] + Düşük[i]) / 2 )

{

kireç[i] = Düşük[i]-10*Nokta;

}

}

//----

//----

dönüş(0);

}

//+------------------------------------------- --------------------+

ve ekran

Dosyalar:
 
Stanislav Aksenov :
hadi, tüm gösterge kodunu buraya gönderin
Uyarıyı nereye koyacağımı anlamıyorum
 
Refresh052 :


ve ekran

if ( Value2 == HiValue2  && Close [i] > ( High [i] + Low [i]) / 2 )

            {

               red[i] = High [i]+ 10 * Point ;

             Alert ( "===================" );  

            }  

            

           if ( Value3 == HiValue3 )

            {

               NormalizeDouble ( Volume [i], 0 );                

               red[i]= 0 ;

            }

           if ( Value2 == HiValue2 && Value3 == HiValue3 )

            {

               NormalizeDouble ( Volume [i], 0 );

               red[i]= 0 ;

              

            }

         if ( Value2 == HiValue2  && Close [i] <= ( High [i] + Low [i]) / 2 )

            {

               lime[i] = Low [i]- 10 * Point ;

               Alert ( "===================" );            

              }
 
Alekseu Fedotov :
if ( Value2 == HiValue2  && Close [i] > ( High [i] + Low [i]) / 2 )

            {

               red[i] = High [i]+ 10 * Point ;

             Alert ( "===================" );  

            }  

            

           if ( Value3 == HiValue3 )

            {

               NormalizeDouble ( Volume [i], 0 );                

               red[i]= 0 ;

            }

           if ( Value2 == HiValue2 && Value3 == HiValue3 )

            {

               NormalizeDouble ( Volume [i], 0 );

               red[i]= 0 ;

              

            }

         if ( Value2 == HiValue2  && Close [i] <= ( High [i] + Low [i]) / 2 )

            {

               lime[i] = Low [i]- 10 * Point ;

               Alert ( "===================" );            

              }
her mum her saniye daha hassas bip sesi çıkarır
 

#property strict
#property indicator_chart_window
#property indicator_minimum 0
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Lime
#property indicator_width1 4
#property indicator_width2 4

extern ENUM_APPLIED_PRICE price = PRICE_CLOSE ;
extern double Overbought = 80 ;
extern double Oversold   = 20 ;
extern int      NumberOfBars = 500 ;
extern string   Note = "0 means Display all bars" ;
extern int      MAPeriod = 100 ;
extern int      LookBack = 20 ;
extern bool Alert = True ;
double red[],lime[];
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
       SetIndexBuffer ( 0 ,red);
       SetIndexStyle ( 0 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 0 , 234 );
       SetIndexLabel ( 0 , "Climax High " );
       SetIndexBuffer ( 1 ,lime);
       SetIndexStyle ( 1 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 1 , 233 );
       SetIndexLabel ( 1 , "Climax Low " );
       SetIndexEmptyValue ( 0 , 0.0 );
       SetIndexEmptyValue ( 1 , 0.0 );
       SetIndexDrawBegin ( 0 , 0 );
       SetIndexDrawBegin ( 1 , 0 );
       IndicatorShortName ( "MKSP_Volume" );
   return ( 0 );
  }
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
int start()
{
   double VolLowest,Range,Value2,Value3,HiValue2,HiValue3,LoValue3,tempv2,tempv3,tempv;
   int limit;
   int counted_bars= IndicatorCounted ();
//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
   if ( NumberOfBars == 0 ) NumberOfBars = Bars -counted_bars;
   limit=NumberOfBars; //Bars-counted_bars;

   for ( int i= 0 ; i<limit; i++)  
      {
         red[i] = 0 ; lime[i] = 0 ;
         Value2= 0 ;Value3= 0 ;HiValue2= 0 ;HiValue3= 0 ;LoValue3= 99999999 ;tempv2= 0 ;tempv3= 0 ;tempv= 0 ;
         VolLowest = Volume [ iLowest ( NULL , 0 , MODE_VOLUME , 20 ,i)];
         if ( Volume [i] == VolLowest)
            {
                           }

         Range = ( High [i]- Low [i]);
         Value2 = Volume [i]*Range;

         if (  Range != 0 ) Value3 = Volume [i]/Range;

         for ( int n=i;n<i+MAPeriod;n++ )
            {
               tempv= Volume [n] + tempv;
            }

           for ( int n=i;n<i+LookBack;n++)
            {
               tempv2 = Volume [n]*(( High [n]- Low [n]));
               if ( tempv2 >= HiValue2 )
                  HiValue2 = tempv2;

               if ( Volume [n]*(( High [n]- Low [n])) != 0 )
                  {          
                     tempv3 = Volume [n] / (( High [n]- Low [n]));
                     if ( tempv3 > HiValue3 )  HiValue3 = tempv3;
                     if ( tempv3 < LoValue3 ) LoValue3 = tempv3;
                  }
            }
           if ( Value2 == HiValue2  && Close [i] > ( High [i] + Low [i]) / 2 )
            {
               red[i] = High [i]+ 10 * Point ;

if(i==0) Alert("Вроде бы красная стрелка"); 

            }  

           if ( Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );                
               red[i]= 0 ;
            }
           if ( Value2 == HiValue2 && Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );
               red[i]= 0 ;
            }
         if ( Value2 == HiValue2  && Close [i] <= ( High [i] + Low [i]) / 2 )
            {
               lime[i] = Low [i]- 10 * Point ;

if(i==0) Alert("Вроде бы зеленая стрелка");  

              }
      }
   return ( 0 );
  }

Kodu mesaja düz metin olarak eklemeyin, bunun için özel bir tasarım kullanın.

gerçekten anlamadım

kural olarak, son çubukta (sıfır) bir sinyal varsa bir uyarı verilir.

 
Stanislav Aksenov :

#property strict
#property indicator_chart_window
#property indicator_minimum 0
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Lime
#property indicator_width1 4
#property indicator_width2 4

extern ENUM_APPLIED_PRICE price = PRICE_CLOSE ;
extern double Overbought = 80 ;
extern double Oversold   = 20 ;
extern int      NumberOfBars = 500 ;
extern string   Note = "0 means Display all bars" ;
extern int      MAPeriod = 100 ;
extern int      LookBack = 20 ;
extern bool Alert = True ;
double red[],lime[];
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
       SetIndexBuffer ( 0 ,red);
       SetIndexStyle ( 0 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 0 , 234 );
       SetIndexLabel ( 0 , "Climax High " );
       SetIndexBuffer ( 1 ,lime);
       SetIndexStyle ( 1 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 1 , 233 );
       SetIndexLabel ( 1 , "Climax Low " );
       SetIndexEmptyValue ( 0 , 0.0 );
       SetIndexEmptyValue ( 1 , 0.0 );
       SetIndexDrawBegin ( 0 , 0 );
       SetIndexDrawBegin ( 1 , 0 );
       IndicatorShortName ( "MKSP_Volume" );
   return ( 0 );
  }
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
int start()
{
   double VolLowest,Range,Value2,Value3,HiValue2,HiValue3,LoValue3,tempv2,tempv3,tempv;
   int limit;
   int counted_bars= IndicatorCounted ();
//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
   if ( NumberOfBars == 0 ) NumberOfBars = Bars -counted_bars;
   limit=NumberOfBars; //Bars-counted_bars;

   for ( int i= 0 ; i<limit; i++)  
      {
         red[i] = 0 ; lime[i] = 0 ;
         Value2= 0 ;Value3= 0 ;HiValue2= 0 ;HiValue3= 0 ;LoValue3= 99999999 ;tempv2= 0 ;tempv3= 0 ;tempv= 0 ;
         VolLowest = Volume [ iLowest ( NULL , 0 , MODE_VOLUME , 20 ,i)];
         if ( Volume [i] == VolLowest)
            {
                           }

         Range = ( High [i]- Low [i]);
         Value2 = Volume [i]*Range;

         if (  Range != 0 ) Value3 = Volume [i]/Range;

         for ( int n=i;n<i+MAPeriod;n++ )
            {
               tempv= Volume [n] + tempv;
            }

           for ( int n=i;n<i+LookBack;n++)
            {
               tempv2 = Volume [n]*(( High [n]- Low [n]));
               if ( tempv2 >= HiValue2 )
                  HiValue2 = tempv2;

               if ( Volume [n]*(( High [n]- Low [n])) != 0 )
                  {          
                     tempv3 = Volume [n] / (( High [n]- Low [n]));
                     if ( tempv3 > HiValue3 )  HiValue3 = tempv3;
                     if ( tempv3 < LoValue3 ) LoValue3 = tempv3;
                  }
            }
           if ( Value2 == HiValue2  && Close [i] > ( High [i] + Low [i]) / 2 )
            {
               red[i] = High [i]+ 10 * Point ;

if(i==0) Alert("Вроде бы красная стрелка"); 

            }  

           if ( Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );                
               red[i]= 0 ;
            }
           if ( Value2 == HiValue2 && Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );
               red[i]= 0 ;
            }
         if ( Value2 == HiValue2  && Close [i] <= ( High [i] + Low [i]) / 2 )
            {
               lime[i] = Low [i]- 10 * Point ;

if(i==0) Alert("Вроде бы зеленая стрелка");  

              }
      }
   return ( 0 );
  }

Mesajlara düz metin olarak kod eklemeyin , kod tasarımı kullanın.

gerçekten anlamadım

Kural olarak, son çubukta bir sinyal varsa, o yerlere yerleştirdiğim gibi bir uyarı verilir...

Tamam teşekkürler, eğitim programı için de ayrı bir program deneyeceğim)))
 
Stanislav Aksenov :

#property strict
#property indicator_chart_window
#property indicator_minimum 0
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Lime
#property indicator_width1 4
#property indicator_width2 4

extern ENUM_APPLIED_PRICE price = PRICE_CLOSE ;
extern double Overbought = 80 ;
extern double Oversold   = 20 ;
extern int      NumberOfBars = 500 ;
extern string   Note = "0 means Display all bars" ;
extern int      MAPeriod = 100 ;
extern int      LookBack = 20 ;
extern bool Alert = True ;
double red[],lime[];
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
       SetIndexBuffer ( 0 ,red);
       SetIndexStyle ( 0 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 0 , 234 );
       SetIndexLabel ( 0 , "Climax High " );
       SetIndexBuffer ( 1 ,lime);
       SetIndexStyle ( 1 , DRAW_ARROW , STYLE_SOLID , 3 );
       SetIndexArrow ( 1 , 233 );
       SetIndexLabel ( 1 , "Climax Low " );
       SetIndexEmptyValue ( 0 , 0.0 );
       SetIndexEmptyValue ( 1 , 0.0 );
       SetIndexDrawBegin ( 0 , 0 );
       SetIndexDrawBegin ( 1 , 0 );
       IndicatorShortName ( "MKSP_Volume" );
   return ( 0 );
  }
//+------------------------------------------------------------------+
int deinit()
  {
   return ( 0 );
  }
int start()
{
   double VolLowest,Range,Value2,Value3,HiValue2,HiValue3,LoValue3,tempv2,tempv3,tempv;
   int limit;
   int counted_bars= IndicatorCounted ();
//---- last counted bar will be recounted
   if (counted_bars> 0 ) counted_bars--;
   if ( NumberOfBars == 0 ) NumberOfBars = Bars -counted_bars;
   limit=NumberOfBars; //Bars-counted_bars;

   for ( int i= 0 ; i<limit; i++)  
      {
         red[i] = 0 ; lime[i] = 0 ;
         Value2= 0 ;Value3= 0 ;HiValue2= 0 ;HiValue3= 0 ;LoValue3= 99999999 ;tempv2= 0 ;tempv3= 0 ;tempv= 0 ;
         VolLowest = Volume [ iLowest ( NULL , 0 , MODE_VOLUME , 20 ,i)];
         if ( Volume [i] == VolLowest)
            {
                           }

         Range = ( High [i]- Low [i]);
         Value2 = Volume [i]*Range;

         if (  Range != 0 ) Value3 = Volume [i]/Range;

         for ( int n=i;n<i+MAPeriod;n++ )
            {
               tempv= Volume [n] + tempv;
            }

           for ( int n=i;n<i+LookBack;n++)
            {
               tempv2 = Volume [n]*(( High [n]- Low [n]));
               if ( tempv2 >= HiValue2 )
                  HiValue2 = tempv2;

               if ( Volume [n]*(( High [n]- Low [n])) != 0 )
                  {          
                     tempv3 = Volume [n] / (( High [n]- Low [n]));
                     if ( tempv3 > HiValue3 )  HiValue3 = tempv3;
                     if ( tempv3 < LoValue3 ) LoValue3 = tempv3;
                  }
            }
           if ( Value2 == HiValue2  && Close [i] > ( High [i] + Low [i]) / 2 )
            {
               red[i] = High [i]+ 10 * Point ;

if(i==0) Alert("Вроде бы красная стрелка"); 

            }  

           if ( Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );                
               red[i]= 0 ;
            }
           if ( Value2 == HiValue2 && Value3 == HiValue3 )
            {
               NormalizeDouble ( Volume [i], 0 );
               red[i]= 0 ;
            }
         if ( Value2 == HiValue2  && Close [i] <= ( High [i] + Low [i]) / 2 )
            {
               lime[i] = Low [i]- 10 * Point ;

if(i==0) Alert("Вроде бы зеленая стрелка");  

              }
      }
   return ( 0 );
  }

Kodu mesaja düz metin olarak eklemeyin, bunun için özel bir tasarım kullanın.

gerçekten anlamadım

kural olarak, son çubukta (sıfır) bir sinyal varsa bir uyarı verilir.

her saniye bir uyarı var