[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 221

 

Bu, Expert Advisors tarafından uygulanan işlevlerden biridir. Tabii ki, yalnızca sondaki bir durağı içerecek bir danışman yazabilirsiniz (ve bu tür danışmanlar elbette çok sayıda yazılmıştır)

MT terminalinde ayrıca herhangi bir Expert Advisor ile ilişkili olmayan düzenli bir takip vardır.

 
alsu :


MT terminalinde ayrıca herhangi bir Expert Advisor ile ilişkili olmayan düzenli bir takip vardır.

Teşekkür ederim. Sorduğum onunla ilgiliydi. Sonra başka bir soru. Birinin MQL4'ü anlaması ne kadar sürdü? Yani profesyonel olup A'dan Z'ye harika bir danışman yazmak istemiyorum. Ama en azından hazır olanı nerede kurcalayacağınızı bilin. Kendimle ilgili daha açık hale getirmek için: Bu aşamada operatörleri anlıyorum. Araştırmanın üzerinden iki hafta geçti. Sizce şansı nedir. Tekrarlıyorum. Yakınlarda kimseye soracak bir öğretmen yok.

Cevaplar için minnettarım.

 

Beyler, bu sadece teneke!!! (((

Yabancı bir DC seçip yurtdışında bir hesap açmak istiyorum ... bulamıyorum .... İncelemelere göre her şey dolandırıcı ve "SHARASHKINA OFİSİ" gibi görünüyor .... ((

Çocuklara MT4 ile ofisten bahset... Çok minnettar olacağım!!!!!

 
Mesela, yeni Pinokyo güvenilir bir Mucizeler Alanı arıyor. Beni güldürme.:)
 

Tek hat göstergesi.

 #property indicator_separate_window    
#property indicator_buffers 1         
#property indicator_color1 Aqua      

   int index;
   double TickPrice[1000];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer ( 0 ,TickPrice);          
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); 
   return ;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index++;

   return ;                         
  }
//--------------------------------------------------------------------

Soru.

Neden sağdan sola doğru bir çizgi çiziyor ?

 

Ve eğer yaparsan?

 #property indicator_separate_window    
#property indicator_buffers 1         
#property indicator_color1 Aqua      

   int index= 1000 ;
   double TickPrice[ 1000 ];
//--------------------------------------------------------------------
int init()                          
  {
   SetIndexBuffer ( 0 ,TickPrice);          
   SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 ); 
   return ;                          
  }
//--------------------------------------------------------------------
int start()                         
  {
  
      TickPrice[index] = Bid;
      index -- ;

   return ;                         
  }
//--------------------------------------------------------------------
 

Merhaba, lütfen bana günlük çubukları farklı bir zamanda başlayacak şekilde yeniden çizen göstergeyi nerede bulacağımı söyle.

Örneğin: Terminal saati 00:00'dır. Göstergenin giriş parametrelerinde şunları ayarlayın: +4. Gündüz barları artık 4:00'te başlıyor.

Şimdiden teşekkürler.

 
DhP :

Ve eğer yaparsan?


Evet, bu daha iyi. Doğru yönde çizmeye başladım. Ama eğer index--, o zaman bir gün index==0 olur ve her şey kapanır.

Hareket nasıl devam ettirilir?

 
artmedia70 :
Ve dizinin boyutundaki artış nerede? Değer nereye yazılır? ( ArrayResize() işlevi )


sipariş türlerine ve pozisyonlara göre dizilere ayırmanın şöyle olduğu ortaya çıktı:

 int OrderStatus() {
   int z1= 1 , z2= 1 , z3= 1 , z4= 1 ;
   if (B> 0 ) { ArrayResize (TicketB,B);}
   if (S> 0 ) { ArrayResize (TicketS,S);}
   if (BS> 0 ) { ArrayResize (TicketBS,BS);}
   if (SS> 0 ) { ArrayResize (TicketSS,SS);}
   int i, k= OrdersTotal ();
      for (i= 1 ; i<=k; i++) {
         if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
             if (OrderType()==OP_BUYSTOP && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket();
            z1++;
            }
             if (OrderType()==OP_SELLSTOP && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
             if (OrderType()==OP_BUY && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketB[z3]=OrderTicket();
            z3++;
            }
             if (OrderType()==OP_SELL && OrderSymbol()== Symbol () && OrderMagicNumber()==MG) {
            TicketS[z4]=OrderTicket();
            z4++;
            }
         }
      }
}

ancak alım ve satım pozisyonlarının karlılığına göre daha fazla sıralama işe yaramadı: mevcut sıfırları ekler:

 int OrderVBezubitok() {
   int k1= 0 , k2= 0 ;
   ArrayResize (TicketBez,B+S);
   ArrayResize (TicketTral,B+S);
   int i;
   if ( ArraySize (TicketB)> 0 ) {
       for (i= 1 ; i< ArraySize (TicketB)+ 1 ; i++) {
             OrderSelect (TicketB[i], SELECT_BY_TICKET, MODE_TRADES);
             if (OrderProfit()> 0 ) {k1++; TicketTral[k1]=TicketB[i];} 
             else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }
   if ( ArraySize (TicketS)> 0 ) {
       for (i= 1 ; i< ArraySize (TicketS)+ 1 ; i++) {
             OrderSelect (TicketS[i], SELECT_BY_TICKET, MODE_TRADES);
             if (OrderProfit()> 0 ) {k1++; TicketTral[k1]=TicketB[i];} 
             else {k2++; TicketBez[k2]=TicketB[i];}
                       
         
      }
   }      
}

Niye ya? Anlayamıyorum

 

Merhaba arkadaşlar!

Burası doğru adres mi bilmiyorum, forumdaki ilk mesajım.

Lütfen yardım et.

Belki birileri buna benzer bir şey yaşamıştır.

Sorun şu. Dönem için maksimum ve minimum fiyatları aramak için bir gösterge yazıyorum. Bulduktan sonra, maksimumu minimuma bölmek ve onu ayrı_pencerede görüntülemek istiyorum.

Ancak, pencere boş:

Toplama, çıkarma, çarpma vb. MAX ve MIN göstergesi normal olarak görüntülenir.

İşte kod. O oldukça küçük.

 #property indicator_separate_window
#property indicator_buffers 3

#property indicator_color1 MediumSpringGreen
#property indicator_color2 Crimson
#property indicator_color3 LightGray

#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1

extern int Buy_bars = 20 ;           //Количество баров для открытия позиции
extern int Sell_bars = 23 ;           //Количество баров для закрытия позиции  

double    buf_0[],                   //индикаторныЙ массив максимумов 
         buf_1[],                   //индикаторныЙ массив минимумов 
         buf_sr[] ;                 //индикаторныЙ массив средних значений
//extern int Shift = 0;

int init()
  {
   SetIndexBuffer ( 0 , buf_0);
   SetIndexStyle ( 0 , DRAW_LINE );
   SetIndexLabel ( 0 , "Maximum" );
   SetIndexShift ( 0 , 0 );
   
   SetIndexBuffer ( 1 , buf_1);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexLabel ( 1 , "Minimum" );
   SetIndexShift ( 1 , 0 );
   
   SetIndexBuffer ( 2 , buf_sr);
   SetIndexStyle ( 2 , DRAW_LINE );
   SetIndexLabel ( 2 , "Srednyaya" );
   SetIndexShift ( 2 , 0 );
   
   return ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, k ,t;
   int     counted_bars=IndicatorCounted();
//----
   i = Bars - counted_bars - 1 ;
   while (i >= 0 )
   {
       double max = 0 ;
       double min = 999999999999.99 ;
   
   for (k=i ; k<=i+Buy_bars- 1 ; k++)
      {
       if (High[k] > max) max = High[k];
      }
   for (t=i; t<=i+Sell_bars- 1 ; t++)  
      {
       if (Low[t] < min) min = Low[t];
      }
        
   i--;
   

   buf_sr[i] = (max/min);
   }
   return ;
  }
//+------------------------------------------------------------------+

Bir hata belirtin.

Şimdiden teşekkür ederim