[UYARI, KONU KAPALI!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde. - sayfa 127

 
Numara.
 

Böyle bir soru: standart OA göstergesinde, göstergenin çiziminde yer almayan 2 ek indeks tamponu kullanılır:

 //+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0 [ ] ;
double     ExtBuffer1 [ ] ;
double     ExtBuffer2 [ ] ;
double     ExtBuffer3 [ ] ;
double     ExtBuffer4 [ ] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ( )
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers ( 5 ) ;
//---- drawing settings
   SetIndexStyle ( 0 , DRAW_NONE ) ;
   SetIndexStyle ( 1 , DRAW_HISTOGRAM ) ;
   SetIndexStyle ( 2 , DRAW_HISTOGRAM ) ;
   IndicatorDigits ( Digits + 2 ) ;
   SetIndexDrawBegin ( 0 , 38 ) ;
   SetIndexDrawBegin ( 1 , 38 ) ;
   SetIndexDrawBegin ( 2 , 38 ) ;
//---- 4 indicator buffers mapping
   SetIndexBuffer ( 0 , ExtBuffer0 ) ;
   SetIndexBuffer ( 1 , ExtBuffer1 ) ;
   SetIndexBuffer ( 2 , ExtBuffer2 ) ;
   SetIndexBuffer ( 3 , ExtBuffer3 ) ;
   SetIndexBuffer ( 4 , ExtBuffer4 ) ;
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName ( "AC" ) ;
   SetIndexLabel ( 1 , NULL ) ;
   SetIndexLabel ( 2 , NULL ) ;
//---- initialization done
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start ( )
  {
   int    limit ;
   int    counted_bars = IndicatorCounted ( ) ;
   double prev , current ;
//---- last counted bar will be recounted
   if ( counted_bars > 0 ) counted_bars - - ;
   limit = Bars - counted_bars ;
//---- macd counted in the 1-st additional buffer
   for ( int i = 0 ; i & lt ; limit ; i + + )
      ExtBuffer3 [ i ] = iMA ( NULL , 0 , 5 , 0 , MODE_SMA , PRICE_MEDIAN , i ) -
                    iMA ( NULL , 0 , 34 , 0 , MODE_SMA , PRICE_MEDIAN , i ) ;
//---- signal line counted in the 2-nd additional buffer
   for ( i = 0 ; i < limit ; i + + )
      ExtBuffer4 [ i ] = iMAOnArray ( ExtBuffer3 , Bars , 5 , 0 , MODE_SMA , i ) ;
//---- dispatch values between 2 buffers
   bool up = true ;
   for ( i = limit - 1 ; i > = 0 ; i - - )
     {
      current = ExtBuffer3 [ i ] - ExtBuffer4 [ i ] ;
      prev = ExtBuffer3 [ i + 1 ] - ExtBuffer4 [ i + 1 ] ;
      if ( current > prev ) up = true ;
      if ( current & lt ; prev ) up = false ;
      if ( ! up )
        {
         ExtBuffer2 [ i ] = current ;
         ExtBuffer1 [ i ] = 0.0 ;
        }
      else
        {
         ExtBuffer1 [ i ] = current ;
         ExtBuffer2 [ i ] = 0.0 ;
        }
       ExtBuffer0 [ i ] = current ;
     }
//---- done
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+

Gördüğünüz gibi bu dizilerde sadece hesaplamalar yapılıyor. Bu dizilere neden dizin arabelleklerinin statüsü verilmesi gerektiğini anlamıyorum?

 
neoclassic писал(а) >>

Böyle bir soru: standart OA göstergesinde, göstergenin çiziminde yer almayan 2 ek indeks tamponu kullanılır:

Gördüğünüz gibi bu dizilerde sadece hesaplamalar yapılıyor. Bu dizilere neden dizin arabelleklerinin durumu verilmesi gerektiğini anlamıyorum?

dizinin boyutunu ayarlamak için!

 

Merhaba forum kullanıcıları!

MQL'de tam bir topalım. Ama böyle basit bir Uzman Danışmanım olsun isterdim. Poz bir sürü tarafından açıldı. Hemen sabit bir durma ayarlanır (20-30p.). Belli bir kâra (20-30p.) ulaştıktan sonra pozisyonun bir kısmı (%50) kapatılır ve kalan pozisyon için stop başabaş noktasına taşınır. Pozisyonun geri kalanına bir kar emri verilir veya manuel olarak izlenir. İşte böyle bir fikir. Cevaplar için çok minnettar olacağım.

 
vvavva >> :

dizinin boyutunu ayarlamak için!

Peki ya çok sayıda dizi kullanmanız gerekiyorsa? (8'den fazla)

 

arabellekleri değil, normal dizileri kullanın

yerine

SetIndexBuffer (3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

kullanmak

ArrayResize(ExtBuffer3, Barlar); ArrayResize(ExtBuffer4, Barlar);

 
keekkenen >> :

arabellekleri değil, normal dizileri kullanın

yerine

SetIndexBuffer(3,ExtBuffer3);SetIndexBuffer(4,ExtBuffer4);

kullanmak

ArrayResize(ExtBuffer3, Barlar); ArrayResize(ExtBuffer4, Barlar);


Teşekkürler!!

 
neoclassic писал(а) >>

Peki ya çok sayıda dizi kullanmanız gerekiyorsa? (8'den fazla)

hindi çizimi için diziler belirlenen sınırdan fazla (8 gibi görünüyor) nezya!

hesaplamalar için sıradan dizilerin de sınırlamaları vardır, ancak sayı daha büyüktür!

Sıradan dizilerdeki kısıtlamaları aşmak için kitaplıkları kullanmanız gerekecek!

 
Bir sorum var. Haber garsonu yapmak mümkün mü? Diyelim ki bugün bir haber var, tam zamanı bilinmiyor, yaklaşık metin bir kelime, daha uzun ve daha yüksek bir ses sinyaline ihtiyacınız var, yapabilirsiniz.
 
Merhaba, lütfen bana, k=Bars değişkeninin henüz yeni bir çubuk oluşmaya başlamadığında (olası durumlar) değişebileceği için mümkün olduğunca çok seçenek söyleyin, diyelim ki döviz çiftini, zaman dilimini, bazılarını değiştirdiniz. bir tür mt4 güncellemesi veya d.c .
Neden: