Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 2064

 
Alexey Nikolaev :

Günün i. dakikası için artımların ortalama karesi olan Di'yi arıyoruz. Sonra tüm artışları karşılık gelen di=sqrt(Di) ile böleriz. Normalleştirilmiş artışları özetliyoruz ve halihazırda yeni seride bulunan SB'den sapmaları arıyoruz. Fiyat bozulur, ancak zaman değişmez.

Her dakika için 2 ayın anlamı nedir? Dakikadaki değişiklikler küçük olacak ve hesaplamalar büyük olacaktır. Ve dakikalar önce veya bir ay önce ve bir ay sonra. İlk çubuğun kodu.

 for ( int i = 1 ,i<= 43200 * 2 , i++);
{
Di+= pow (( iClose ( NULL , 1 ,i) - iOpen ( NULL , 1 ,i)), 2 )/i ;
}
di= sqrt (Di);

Yeni satır

 for ( int i = 1 ,i<= 43200 * 2 , i++);
{
NewClose[i]= iClose ( NULL , 1 ,i)/di;
NewOpen[i]= iOpen ( NULL , 1 ,i)/di ;
}

Her şey yolunda mı?

 
Valeriy Yastremskiy :

Her şey yolunda mı?


Öyle görünüyor.

Algoritmayı şu şekilde anladım: Diyelim ki saat 10:00, Di'yi tam olarak bu zamanın m1 çubukları için sayıyorsunuz. ve sonra her dakika için 10:00 dakika (kapat[i] - aç[i])/di vb.

 
Evgeny Chumakov :


Öyle görünmüyor.

Algoritmayı şu şekilde anladım: Diyelim ki saat 10:00, Di'yi tam olarak bu zamanın m1 çubukları için sayıyorsunuz. ve sonra her dakika için 10:00 dakika (kapat[i] - aç[i])/di vb.

İlk çubuğun kodu. Daha derine inmek gerekiyor, bu yukarıdan başka bir döngü.
 
Evgeny Chumakov :


Öyle görünmüyor.

Algoritmayı şu şekilde anladım: Diyelim ki saat 10:00, Di'yi tam olarak bu zamanın m1 çubukları için sayıyorsunuz. ve sonra her dakika için 10:00 dakika (kapat[i] - aç[i])/di vb.

Evet bu doğru. İki arşive başlıyoruz - 1440=24*60 boyutunda gerçek ve tamsayı. İlkinde, artışların karelerini ve ikincisinde - belirli bir dakikadaki çubuk sayısını toplarız ve ardından ilkini ikinciye böleriz (1'den fazla çubuklu sayılar için). Sonra kökü çıkarırız ve ancak o zaman artışları yeniden normalleştirir ve onlardan kümülatif toplamı alırız - SB'den farkı zaten inceleyeceğimiz yeni bir seri.

 
Aleksey Nikolaev :

Evet bu doğru. 1440=24*60 boyutunda gerçek ve tamsayı olmak üzere iki arşive başlıyoruz. İlkinde, artışların karelerini ve ikincisinde - belirli bir dakikadaki çubukların sayısını toplarız ve sonra ilkini ikinciye böleriz (1'den fazla çubuk içeren sayılar için). Sonra kökü çıkarırız ve ancak o zaman artışları yeniden normalleştirir ve onlardan kümülatif toplamı alırız - SB'den farkı zaten inceleyeceğimiz yeni bir seri.

onlar. 24 saat için rms dakika ve 2 ay dakika için böyle devam eder. Bar numarası dakika? Karelerin toplamını 1440'a böler misiniz?

 
Valeriy Yastremskiy :

Karelerin toplamını 1440'a böler misiniz?


Belirli bir dakika için karelerin toplamını çubuk sayısına bölersiniz ve sonra kökü alırsınız.

 
Aleksey Nikolaev :

Evet bu doğru. İki arşive başlıyoruz - 1440=24*60 boyutunda gerçek ve tamsayı.


onlar. bir vaftiz babası inşa etmelisin. günlük miktar = 1440 dakika?

 
Evgeny Chumakov :


Belirli bir dakika için karelerin toplamını çubuk sayısına bölersiniz ve sonra kökü alırsınız.

Sonra anlamadım. 3'lük bir çubuk derinliği için sayı üç olacaktır ve bu değer 3. çubuk veya birinci çubuk için hesaplanır. Anladığım kadarıyla ortalamanın tam olması için kümülatif toplam olarak değil aynı sayıda çubuk için hesaplanması gerekiyor. Formülü hemen vermek daha iyi. Hepimiz kelimeleri farklı anlıyoruz.

 for ( int i = 1 ,i<= 1440 , i++);
{
Di+= pow (( iClose ( NULL , 1 ,i) - iOpen ( NULL , 1 ,i)), 2 )/i ;
di= sqrt (Di);
DVal[i]=( iClose ( NULL , 1 ,i) - iOpen ( NULL , 1 ,i)/di; 
}

Benim için bu doğru değil.

 
Valeriy Yastremskiy :


Benim için bu doğru değil.


kod doğru değil

 

Tarihte boşluk olmadığını ve tüm günlerde (Cuma günü daha az) 1440 dakika olduğunu varsayarsak, kod şöyle olmalıdır:

 double di = 0 ;

int n = 40 ; // глубина 40 суток (два месяца)

int pos = 0 ; // текущий бар

int step = 0 ; // шаг


for ( int i = 0 ; i < n; i++){

di += MathPow ( close[pos + step] - open[pos + step], 2 );

step += 1440 ;
}

di = MathSqrt (di/n);

double x = (close[pos] - open[pos])/di;