Nabız - sayfa 32

 
Artyom Trishkin :
Ben de düşündüm ki: muhtemelen her şeyi basitleştirme, MA'lara indirgeme ve hızlı bir şekilde bir araya getirme arzunuz ve aceleci sonuçlara yol açıyor - "işe yaramayacak." Size söyledim - önce komşu keneler arasındaki farkı düşünüyoruz. Dizi fiyatlar değil fiyat farklılıkları ile dolu. Ama Mashka'yı aramak için gelişigüzel bakıyoruz. İyileşmek.

Canım ben bu chipi çoktandır kapattım zaten. Burada işe yaramaz bir göstergeyle kalmamanız için sizi doğru yöne işaret ediyorum.

Şimdi sonunda ne elde ettiğiniz hakkında:

- hız ortalaması.

Fiyat için bir MA almamış olsanız bile, ancak hız için bir MA almış olsanız bile, neyi değiştirir?

Ortalama pervazın ne olduğunu bilmiyorsanız, dikkatlice bakın:

(5+1)/2=3 //düşme

(1+5)/2=3 //büyüyen

Tamam, kendin düşün, matematikçi...

 
new-rena :

Canım ben bu chipi çoktandır kapattım zaten. Burada işe yaramaz bir göstergeyle kalmamanız için sizi doğru yöne işaret ediyorum.

Şimdi sonunda ne elde ettiğiniz hakkında:

- hız ortalaması.

Fiyat için bir MA almamış olsanız bile, ancak hız için bir MA almış olsanız bile, neyi değiştirir?

Ortalama pervazın ne olduğunu bilmiyorsanız, dikkatlice bakın:

(5+1)/2=3 //düşme

(1+5)/2=3 //büyüyen

Tamam, kendin düşün, matematikçi...

Yerli gelince - onu geri çevirdin dostum. Kabalık insanları boyamaz.

Şimdi bana formüllerinde ne olduğunu söyle akıl hocası...

not. Saldırganlığınızı anlıyorum - biri size hesaplamalarını vermedi, ancak dünyadaki her şeyi bir matematikçi olan Mashki olarak düşünerek kendiniz bitirmediniz ... Sadece bu nedenle kendinizi insanlara atmanız gerekmiyor - aptal görünüyorsun.

 
Artyom Trishkin :

Yerli gelince - onu geri çevirdin dostum. Kabalık insanları boyamaz.

Şimdi bana formüllerinde ne olduğunu söyle akıl hocası...

not. Saldırganlığınızı anlıyorum - biri size hesaplamalarını vermedi, ancak dünyadaki her şeyi bir matematikçi olan Mashki olarak düşünerek kendiniz bitirmediniz ... Sadece bu nedenle kendinizi insanlara atmanız gerekmiyor - aptal görünüyorsun.

Kabalığa gelince - karşılıklıydı. Ve birinin bir şey vermemesi, burada elde edeceklerinin yaratılmasını etkilemez. Sorduğum yerde zaten her şeyi anlattım ve o kişi sadece burada değil tüm forumlarda reklam veriyor. İnsanlar zaten tahtaya aldığını yazıyor.

Şimdi iş başına.

Dün buraya bir bağlantı gönderdim, yani bu pratikte göstergenin ana kısmı, tabiri caizse vurgusu.

Yani aynı zaman aralığı için tik sayısı belirlenir ve buna bağlı olarak fiyat hareketinin yönü bir ticaret sinyali elde edilir . Burada net olmayan ne var?

Ana şey ortalama değil.

Böylece, kene sayısına göre, oynaklığı değerlendiririz ve aynı süre için deltalarının toplamına göre (yukarıda doğru bir şekilde yazdığınız gibi, delta komşu keneler arasındaki fiyat farkıdır) - fiyat hareketinin yönünü değerlendiririz, yani eğilim hakkında. Ayrıca delta hem negatif hem de pozitif olabilir. Sahip olduklarımızı bir araya getirdik.

Prensip olarak, böyle bir göstergeyi hesaplamak ve çalışmak için, son onay işaretlerinin yalnızca N'inci sayısına ihtiyacımız var ve buna ihtiyacımız var. Belki de test dışında tarihe kene yazmak kesinlikle gerekli değildir.

Böyle bir göstergenin mevcut analogları bir hız göstergesi şeklinde yapılır .

 
new-rena :

Kabalığa gelince - karşılıklıydı. Ve birinin bir şey vermemesi, burada elde edeceklerinin yaratılmasını etkilemez. Sorduğum yerde zaten her şeyi anlattım ve o kişi sadece burada değil tüm forumlarda reklam veriyor. İnsanlar zaten tahtaya aldığını yazıyor.

Şimdi iş başına.

Dün buraya bir bağlantı gönderdim, yani bu pratikte göstergenin ana kısmı, tabiri caizse vurgusu.

Yani aynı zaman aralığı için tik sayısı belirlenir ve buna bağlı olarak fiyat hareketinin yönü bir ticaret sinyali elde edilir . Burada net olmayan ne var?

Ana şey ortalama değil.

Bu nedenle, kene sayısına göre, oynaklığı değerlendiririz ve aynı süre için deltalarının toplamına göre (yukarıda doğru bir şekilde yazdığınız gibi, delta komşu keneler arasındaki fiyat farkıdır) - fiyat hareketinin yönünü değerlendiririz, yani eğilim hakkında. Ayrıca delta hem negatif hem de pozitif olabilir. Sahip olduklarımızı bir araya getirdik.

Prensip olarak, böyle bir göstergeyi hesaplamak ve çalışmak için, son onay işaretlerinin yalnızca N'inci sayısına ihtiyacımız var ve buna ihtiyacımız var. Belki de test dışında tarihe kene yazmak kesinlikle gerekli değildir.

Böyle bir göstergenin mevcut analogları bir hız göstergesi şeklinde yapılır.

Bu bağlantı mı? https://www.mql5.com/en/forum/61389/page30#comment_1776762

not. Karşılıklı kabalığa gelince - boşuna. Önce sana kaba davranmadım.

Импульс
Импульс
  • www.mql5.com
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий. - Страница 30 - Категория: автоматические торговые системы
 
Artyom Trishkin :

Bu bağlantı mı? https://www.mql5.com/en/forum/61389/page30#comment_1776762

not. Karşılıklı kabalığa gelince - boşuna. Önce sana kaba davranmadım.

Evet ama 4-rke'de yazıyor. Anladığım kadarıyla 5.de yapıyoruz.
 
Karputov Vladimir :

Keneleri kaydetmenin bir temeli vardır.


Dosya adı biçimi:

Dosyanın dört sütunu vardır:


Sorular kaldı - yeni dosyaların ne sıklıkla başlatılacağı. Her saat başı her dosyayı başlatmanız gerektiğini düşünüyorum. Bu, daha sonra analiz etmeyi kolaylaştıracaktır.

Yüksek,Düşük ekleyin (veya fiyat değişikliğini hemen hesaplayın) - bir işaret atlandığında (teknik nedenlerden dolayı) değişir.

bu sadece dürtü anlarında ve terminal/bilgisayar başka bir şey üzerinde çalışırken olur :-)

 
Karputov Vladimir :

600 kene rekoru vardı. Bu giriş (her biri 100) altı çizelgeye dağıtıldı. Grafiklerde, kenelerin fiyatı ve değişim oranı (EMA10). Genel olarak, çizimleri incelemek için bir neden vardır:







biraz bakıyorsun yani yanlış şeye bakıyorsun.. grafiklerde belli bir türev alma hatası fonksiyonu var. Yani hız önce türev (dx / dt) olarak düşünülmüş, daha sonra entegre edilmiş (ve farklı bir yöntemle) ve orijinaliyle karşılaştırılmıştır.

ipucu: herhangi bir MA fiili bir integral fonksiyondur

ipucu2: doğru yönde hareket edip etmediğinizi görmek için basit bir SMA alın ve yarım nokta geriye hareket ettirin. Tarihte faydalı bir şey görürseniz, hızı ve momentumu boş yere düşünürsünüz ve daha derine inebilirsiniz.

 
new-rena :
Evet ama 4-rke'de yazıyor. Anladığım kadarıyla 5.de yapıyoruz.

Evet, hangi platform olursa olsun. Orada Roman'a sordum ve kişisel bir mesajla ona kodlar yazdım, ama yine de neden dizi boyutunu init()'te iki milyona ayarladığını, ardından dizi boyutunu start()'ta sıfıra değiştirdiğini ve ardından dener -1 ( !!!) dizininde doldurmak için ve ancak bundan sonra SIZE değişkenini 1 artırır, bu da diziyi endekslemelidir. Karşılaştırın, işte önerdiklerim:

 //+------------------------------------------------------------------+
//|                                                   FillArrays.mq4 |
//|              Copyright 2015, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Artem A. Trishkin, Skype artmedia70"
#property link        "https://login.mql5.com/ru/users/artmedia70"
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//|   Input variables                                                |
//+------------------------------------------------------------------+
input int NumberOfStorableTicks= 20 ;       // Количество сохраняемых тиков
int numberOfStorableTicks; // Количество сохраняемых тиков
input int PeriodOfMA= 5 ;                   // Период сглаживания
int periodOfMA; // Период сглаживания
input ENUM_MA_METHOD MaMethod= MODE_SMA ;   // Метод усреднения МА

//+------------------------------------------------------------------+
//|   Global variables                                               |
//+------------------------------------------------------------------+
string symbol;     // Symbol()
int digits;       // Digits
//+------------------------------------------------------------------+
//|   Arrays                                                         |
//+------------------------------------------------------------------+
double       Mass_ticks[];
double       Mass_smoothed_values[];
//+------------------------------------------------------------------+
//|   Structures                                                     |
//+------------------------------------------------------------------+
   MqlTick struct_tick;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   symbol= Symbol ();
   digits=( int ) SymbolInfoInteger (symbol, SYMBOL_DIGITS );
   //---
   numberOfStorableTicks=(NumberOfStorableTicks< 1 )? 1 :NumberOfStorableTicks;
   periodOfMA=(PeriodOfMA< 1 )? 1 :PeriodOfMA;
   //---
   ArrayResize (Mass_ticks,numberOfStorableTicks);
   ArrayInitialize (Mass_ticks, 0.0 );
   ArrayResize (Mass_smoothed_values,numberOfStorableTicks);
   ArrayInitialize (Mass_smoothed_values, 0.0 );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
   Comment ( "" );
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   if ( SymbolInfoTick (symbol,struct_tick)) {
       double tick_bid=struct_tick.bid;
      FillArrays(numberOfStorableTicks,tick_bid,Mass_ticks);
      }
   string txt= "" ;
   for ( int i=numberOfStorableTicks- 1 ; i>= 0 ; i--) {
       string itxt= IntegerToString (i);
      txt+= "\nmass[" +itxt+ "]: " + DoubleToString (Mass_ticks[i],digits);
      }
   Comment (txt);
  }
//+------------------------------------------------------------------+
void FillArrays( int array_size, double price, double &mass_price[]) {
   //--- сместим данные в массиве влево
   for ( int i=array_size- 1 ; i> 0 ; i--) {
      mass_price[i]=mass_price[i- 1 ];
      }
   //--- запишем новый тик в массив
   mass_price[ 0 ]=price;
}
//+------------------------------------------------------------------+
void SmoothingDataArray( int array_size, int ma_period, int ma_shift, ENUM_MA_METHOD ma_method, double &mass_price[], double &mass_smoothing[]) {
   for ( int i=array_size- 1 ; i>= 0 ; i--) {
      mass_smoothing[i]=iMAOnArray(mass_price,array_size,ma_period,ma_shift,ma_method,i);
      }
   }
//+------------------------------------------------------------------+

Ancak, iMAOnArray() onu düzleştirmeyi reddediyor. Nasıl çevirdiğiniz önemli değil, her şey geriye doğru. Evet, burada aranılan amaçlar için gerekli değildir. Muhtemelen...

Evet, unuttum. İşte Roman'ın önerdiği şey:

 //---------------------
extern int MaxDrawTicks= 100 ;
extern int Num_Aver_of_Ticks= 5 ;  
double      xBuffer_Time []; // Массив значений   динамический
                             // В котором индекс - номер тика, значение - это бид 
int SIZE= 0 ;                 // Вспомогательная переменная для массива                                  
int tickCounter, tickCounter_Current; 
//+------------------------------------------------------------------+
int init()
  {   
//--- устанавливаем размер динамического массива
   if ( ArrayResize (xBuffer_Time, 2000000 )< 0 ) { Alert ( " Ошибка в изменении размера массива времени поступления тиков " ); return ( false );}
//--- установим индексацию для буфера как в таймсерии для динамического массива
   // ArraySetAsSeries(xBuffer_Time,true);    
//---   Возвращает количество элементов указанного массива. 
   int S= ArraySize (xBuffer_Time);
   if (S>= 0 ) Alert ( "Размер массива: " ,S);
   else Print ( "Ошибка. Массив не создан " ,S);        
   ArrayInitialize (xBuffer_Time, 0 );
   return ( 0 );
  }  
//+------------------------------------------------------------------+
int start()
  {  
   //ArrayResize(ValueArr,size);
   //ValueArr[size-1] = GetValue();
   //size++; 
 //----------------------------------------  
   ArrayResize (xBuffer_Time,SIZE);
   xBuffer_Time[SIZE- 1 ] = Bid; //NormalizeDouble((iTime (_Symbol,1,0)-_start), 2); 
  
   if ( SIZE >= 0 && ArraySize (xBuffer_Time) < 2147483647 )
      {
       Alert ( " Значение xBuffer_Time[SIZE-1] = " , DoubleToStr(xBuffer_Time[SIZE- 1 ], Digits ) );
       Alert ( " Значение SIZE = " , DoubleToStr(SIZE, 2 ) );  
      } 
    SIZE ++;   
 //---------------------------------------      
//------------
   return ( 0 );
  }
 
Artyom Trishkin :

Bir tablo ile deneyeceğim:

10'u işaretleyin
tik 9
kene 8
kene 7
kene 6
tik 5
tik 4
kene 3 kene 2
tik 1 0 tik
gelecek kene
X10
X9
X8
X7
X6
X5
X4
X3
X2
X1 X0
XN0
X9 X8
X7 X6 X5
X4 X3
X2
X1
X0 XN0
XN1

x0, x1, x2 mevcut durumu (pembe), gerisini - geçmişi (açık yeşil) tanımlar. Dizideki veriler sürekli değişir ve sıfır tik yeni gelen xn0 ile değiştirilir. Bu nedenle, şimdi mevcut durum x1, x0, xn0'dan hesaplanacak ve son seferdeki x2 tik işareti, önceki durumu tanımlayan hücrelere kaydırılarak bu duruma küçük bir düzeltme yapılır. Her şeyi bir kalabalığın içinde ele alırsak, düzeltme bana göründüğü gibi oldukça kaba olan ilk üç kene tarafından yapılacaktır.

Bunda bir şey var. İşte kene grafiğinin bir ekran görüntüsü:

Onay grafiği ekran görüntüsü

Büyük oklarla sınırlanan alana dikkat edin.

Ve burada, tiklerin ortalama artışının (tick0, tik1, tik2) ortalama artıştan (tik3, tik4, tik5, tik6, tik7, tik8, tik9, tik10) daha büyük olduğu ve aynı zamanda artış sıfırdan büyük:

Koşul İşleme

 
Artyom Trishkin :

Evet, hangi platform olursa olsun. Orada Roman'a sordum ve kişisel bir mesajla ona kodlar yazdım, ama yine de neden dizi boyutunu init()'te iki milyona ayarladığını, ardından dizi boyutunu start()'ta sıfıra değiştirdiğini ve ardından dener -1 ( !!!) dizininde doldurmak için ve ancak bundan sonra SIZE değişkenini 1 artırır, bu da diziyi endekslemelidir. Karşılaştırın, işte önerdiklerim:

Ancak, iMAOnArray() onu düzleştirmeyi reddediyor. Nasıl çevirdiğiniz önemli değil, her şey geriye doğru. Evet, burada aranılan amaçlar için gerekli değildir. Muhtemelen...

Peki, tamam. Ve zaman aralığı analiziniz nerede ve MA-shka neden ortaya çıktı?

Şu anda çipimde de bir eklem buldum. Sonuçta, aynı zaman aralığında aynı sayıda tik gelmiyor. Böyle bir göstergeyi kaybetmemeliyiz.

Belki yanılıyorum çünkü. Çok uzun zamandır 5-rku kullanmıyorum.