MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1279

 
leonerd :

Fiyat hareketinin açısını hesaplayan basit bir koda burnunuzu sokun. Aşağıdaki resim gösterir.


Bu, x(piksel, çubuk veya zaman) ve y(piksel veya fiyat) değerlerinin neyle ölçüldüğüne bağlıdır.
Ve hangi göreve bağlı olarak: mevcut grafikteki açıyı mevcut ölçek (piksel olarak çubuk genişliği) ve zaman çerçevesi ile ölçmek mi? Veya herhangi bir TF ve ölçek için aynı kalacak şekilde açıyı ölçün?
Farklı görevler ve koordinat sistemleri - farklı çözümler.
 
leonerd :

Fiyat hareketinin açısını hesaplayan basit bir koda burnunuzu sokun. Aşağıdaki resim gösterir.


Peki, tanjant aracılığıyla hesaplayabilirsiniz. Ve sonsuza kadar, açının kendisine ihtiyacınız yok, bu nedenle teğeti bilmek yeterli.

 
Alexey Viktorov :

Ve sonsuza kadar, açının kendisine ihtiyacınız yok, bu nedenle teğeti bilmek yeterli.

Aynen öyle! Ve teğetimizin adı: hız.

Örnekte, 39 saatlik mumlarda fiyat 1884 puanı geçti. Bu dalganın toplam hareket hızı: 1884/(39/24) = günde 1159 puan.

 double interval= double ( iBarShift (symbol,frame,start_time)- iBarShift (symbol,frame,finish_time)* PeriodSeconds (frame)/ 86400 ;
int distance= MathAbs (finish_price-start_price);
int speed=interval> 0 ?(distance/interval): 0 ;
Ve bir köşeye ihtiyacımız yok, neden bir köşeye ihtiyacımız var? Grafiği uzatmaya veya düzleştirmeye başladığımızda, bu açı nasıl görünecek? X ve y eksenleri aynı birimlere sahip olduğunda bir açı ölçülebilir. Örneğin, bir kutuya bir not defteri aldılar, bu hücrelerin köşegenleri boyunca bir çizgi çizdiler, böylece 45 derece oldular. Ve naber, doğru santimetreye ne var. Ve burada, bir fiyat noktası neye eşittir? Bir saat, bir gün? Değerler kıyaslanamaz.
 
Aleksei Stepanenko :

Aynen öyle! Ve teğetimizin adı: hız.

Örnekte, 39 saatlik mumlarda fiyat 1884 puanı geçti. Bu dalganın toplam hareket hızı: 1884/(39/24) = günde 1159 puan.

Ve bir köşeye ihtiyacımız yok, neden bir köşeye ihtiyacımız var? Grafiği uzatmaya veya düzleştirmeye başladığımızda, bu açı nasıl görünecek? X ve y eksenleri aynı birimlere sahip olduğunda bir açı ölçülebilir. Örneğin, bir kutuya bir not defteri aldılar, bu hücrelerin köşegenleri boyunca bir çizgi çizdiler, böylece 45 derece oldular. Ve naber, doğru santimetreye ne var. Ve burada, bir fiyat noktası neye eşittir? Bir saat, bir gün? Değerler kıyaslanamaz .

Neden onları karşılaştıralım? Kilometreler ve zaman da kıyaslanamaz, ancak bu, hızı km / s cinsinden saymamızı engellemez.

Tanjantınız hız ise, bu hız grafik periyodunun birim zamanı başına olacaktır. Fiyatınız 39 saat içinde 1884 puanı geçmişse, hız saatte 48 puan olacaktır. Ve kesinlikle günler içinde yeniden hesaplamaya gerek yok.

Ancak "hızlanma"yı, mevcut hızın bir önceki çubuktaki hıza oranı olarak da hesaplayabilirsiniz. Ve bu değerlerden birkaçını toplayarak ortalama ivmeyi belirleyebilirsiniz.

 
Aleksei Stepanenko :

Ve burada, bir fiyat noktası neye eşittir? Bir saat, bir gün? Değerler kıyaslanamaz.

Mesafe de ışık yılı ile ölçülür. Bu yüzden sorun değil.
Sabit bir hız girin. Örneğin, 1_Nokta 1 dakikalık bir çubuk için ve koordinat sistemini her iki eksende fiyata getirin.

O zaman açılar herhangi bir zaman diliminde aynı olacaktır.

Ana şey, x 1 ve x 2 arasındaki dakika çubuklarının sayısını doğru bir şekilde hesaplamaktır .

Böyle bir koordinat sisteminde, 45 derecelik bir açı, fiyatın N*tg(45) =N dakika çubuk başına N nokta değiştiği anlamına gelir ve 30 derecelik bir açı, fiyatın N*tg(30) kadar değiştiği anlamına gelir. )=N* 0.57735 pip/N dakika bar.
Zamanı değil, dakika çubuklarını kullanmak daha iyidir. tatiller, düşük oynaklık vb. şeklinde geçici delikler var.
 

%100 katılıyorum çünkü. Mum hem yatay hem de dikey olarak gerilebilir. Ve açıyı belirlemek için bir standart olmalıdır (mumun piksel cinsinden genişliği ve pikseldeki nokta sayısı).

Konu dışı bir soru sorabilir miyim?

Derleyicinin yemin etmemesi için veri zamanını ikiye katlama doğru bir şekilde nasıl dönüştürülür (yanlış dönüştürme nedeniyle veri kaybı mümkündür)

double A = Zaman[1];

Şimdiden teşekkürler!

 
Alexey Viktorov :

Fiyatınız 39 saat içinde 1884 puanı geçmişse, hız saatte 48 puan olacaktır. Ve kesinlikle günler içinde yeniden hesaplamaya gerek yok.

Evet, bu benim görüşüm. Speed int'yi (yani tamsayı noktaları) yaptığım için, bir noktanın hızdaki kesirlerinin özel bir rol oynamaması ve atılabilmesi için daha uzun bir süre olmasına izin verdim. Böylece günlük puan çıktı. Bu, insanın biyolojik saati ile tutarlı. Yorgun, uyudu, sabah kalktı: "Dün hız neydi?". Tutarlı görünüyor, bu yüzden kendim için böyle bir standart yaptım. Ve elbette, kime uygun.


Nikolay Semko :

Mesafe de ışık yılı ile ölçülür. Bu yüzden sorun değil.
Sabit bir hız girin. Örneğin, 1_Nokta 1 dakikalık bir çubuk için ve koordinat sistemini her iki eksende fiyata getirin.

Evet, yine hız elde edilir, sadece birimler: dakika başına puan. Ve hafta sonları ve deliklere gelince, kendim için şunu aldım: grafikte hangi mumlar var, bu zaman aralığı ve ne değil (günler / saatler), o zaman bu yok. Çünkü hafta sonunu hesaba katarsak ve şu anda fiyat yerindeyse, buradaki hız herhangi bir sebep olmadan gözle görülür şekilde düşecektir. Ama sonra yine, her biri kendine :)


Roni-Demir :

Derleyicinin yemin etmemesi için veri zamanını ikiye katlama doğru bir şekilde nasıl dönüştürülür (yanlış dönüştürme nedeniyle veri kaybı mümkündür)

 double A = ( double )Time[ 1 ];

Tarihi neden bir çift olarak saklamak istiyorsunuz? Aynı dizide farklı türde değişkenler saklıyorsanız ve bunları ileri geri yayınlıyorsanız, normal diziyi bir dizi yapıyla değiştirmeyi düşünün:


 struct My
   {
   datetime time;
   double price;  
   } my[];

int finish= 0 ;
ArrayResize (my,finish+ 1 );
my[finish].time=Time[ 1 ];
my[finish].price=Close[ 1 ];
 

Çok teşekkürler!

Yapılar yalnızca mql 5'te mi yoksa zaten mql 4'te mi çalışıyor?

 
Evet, dörtte çalışıyorlar, yardımlarıyla net bir şekilde yazmak çok uygun.
 
Roni Iron :

Çok teşekkürler!

Yapılar yalnızca mql 5'te mi yoksa zaten mql 4'te mi çalışıyor?

Sadece yapılar değil, sendikalar da çalışır.