MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1279

 
leonerd :

가격 움직임의 각도를 계산하는 간단한 코드에 코를 찔러보세요. 아래 그림은 보여줍니다.


x(픽셀, 막대 또는 시간) 및 y(픽셀 또는 가격)가 측정되는 항목에 따라 다릅니다.
그리고 어떤 작업에 따라: 현재 눈금(픽셀 단위 막대 너비)과 시간 프레임으로 현재 차트의 각도를 측정합니까? 또는 모든 TF 및 스케일에 대해 동일하게 유지되도록 각도를 측정하시겠습니까?
다른 작업 및 좌표계 - 다른 솔루션.
 
leonerd :

가격 움직임의 각도를 계산하는 간단한 코드에 코를 찔러보세요. 아래 그림은 보여줍니다.


음, 접선을 통해 계산할 수 있습니다. 그리고 좋은 점은 각도 자체가 필요하지 않기 때문에 탄젠트만 알면 충분합니다.

 
Alexey Viktorov :

그리고 좋은 점은 각도 자체가 필요하지 않기 때문에 탄젠트만 알면 충분합니다.

정확히! 그리고 우리의 접선을 속도라고 합니다.

이 예에서 가격은 39시간 캔들에서 1884포인트를 넘어섰습니다. 이 파동의 총 이동 속도는 1884/(39/24) = 하루 1159포인트입니다.

 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 ;
그리고 우리는 모퉁이가 필요하지 않습니다. 왜 모퉁이가 필요합니까? 차트를 늘리거나 평평하게 만들 때 이 각도는 어떻게 될까요? x축과 y축의 단위가 같을 때 각도를 측정할 수 있습니다. 예를 들어, 그들은 공책을 상자에 넣고 이 세포의 대각선을 따라 선을 그어 45도를 얻었습니다. 그리고 무슨 일이야, 올바른 센티미터에 무엇이 있는지. 그리고 여기에서 하나의 가격대는 무엇과 같습니까? 한 시간, 하루? 값은 비교할 수 없습니다.
 
Aleksei Stepanenko :

정확히! 그리고 우리의 접선을 속도라고 합니다.

이 예에서 가격은 39시간 캔들에서 1884포인트를 넘어섰습니다. 이 웨이브의 총 속도는 1884/(39/24) = 하루 1159포인트입니다.

그리고 우리는 모퉁이가 필요하지 않습니다. 왜 모퉁이가 필요합니까? 차트를 늘리거나 평평하게 만들 때 이 각도는 어떻게 보일까요? x축과 y축의 단위가 같을 때 각도를 측정할 수 있습니다. 예를 들어, 그들은 공책을 상자에 넣고 이 세포의 대각선을 따라 선을 그어 45도를 얻었습니다. 그리고 무슨 일이야, 올바른 센티미터에 무엇이 있는지. 그리고 여기에서 하나의 가격대는 무엇과 같습니까? 한 시간, 하루? 값은 비교할 수 없습니다.

왜 그들을 비교합니까? 킬로미터와 시간도 비교할 수 없지만 이것이 속도를 km / h로 계산하는 것을 막지는 않습니다.

탄젠트가 속도인 경우 이 속도는 그래프 기간의 단위 시간당입니다 . 가격이 39시간 동안 1884포인트를 넘었다면 속도는 시간당 48포인트가 됩니다. 그리고 며칠 만에 다시 계산할 필요가 전혀 없습니다.

그러나 이전 막대의 속도에 대한 현재 속도의 비율로 "가속도"를 계산할 수도 있습니다. 그리고 이러한 값 중 몇 개를 수집하여 평균 가속도를 결정할 수 있습니다.

 
Aleksei Stepanenko :

그리고 여기에서 하나의 가격대는 무엇과 같습니까? 한 시간, 하루? 값은 비교할 수 없습니다.

글쎄, 거리는 또한 광년으로 측정됩니다. 문제가 되지 않습니다.
일정한 속도를 입력합니다. 예: 1_Point 1분 막대에 대해 두 축의 가격에 좌표계를 가져옵니다.

그러면 각도는 모든 시간대에서 동일합니다.

가장 중요한 것은 x 1과 x 2 사이의 분 막대 수를 올바르게 계산하는 것입니다.

이러한 좌표계에서 각도 45도는 가격이 N*tg(45) = N 분당 N 포인트만큼 가격이 변경됨을 의미하고 각도 30도는 가격이 N*tg(30 )=N* N분 막대당 0.57735핍.
다음과 같이 시간이 아닌 분 막대를 사용하는 것이 좋습니다. 휴일, 낮은 변동성 등의 형태로 일시적인 구멍이 있습니다.
 

100% 동의하기 때문입니다. 양초는 가로 및 세로로 늘릴 수 있습니다. 각도를 결정하려면 몇 가지 표준(촛불의 너비(픽셀)과 포인트 수(픽셀))이 있어야 합니다.

주제를 벗어난 질문을 해도 될까요?

컴파일러가 맹세하지 않도록 데이터 시간을 두 배로 올바르게 변환하는 방법(잘못된 변환으로 인한 데이터 손실 가능)

더블 A = 시간[1];

미리 감사드립니다!

 
Alexey Viktorov :

가격이 39시간 동안 1884포인트를 넘었다면 속도는 시간당 48포인트가 됩니다. 그리고 며칠 만에 다시 계산할 필요가 전혀 없습니다.

예, 이것은 내 의견입니다. 속도 를 int(즉, 정수 포인트)로 만들었기 때문에 속도에서 포인트의 일부가 특별한 역할을 하지 않고 폐기될 수 있도록 더 긴 기간을 두도록 했습니다. 그래서 하루에 포인트가 나왔습니다. 글쎄, 이것은 인간의 생체 시계와 일치합니다. 피곤하고, 자고, 아침에 일어났습니다. "어제 속도는 어땠어요?". 일관성이 있어 보여서 그런 기준을 만들었습니다. 물론 누구에게 편리한지.


니콜라이 셈코 :

글쎄, 거리는 또한 광년으로 측정됩니다. 문제가 되지 않습니다.
일정한 속도를 입력합니다. 예: 1_Point 1분 막대에 대해 두 축의 가격에 좌표계를 가져옵니다.

예, 다시 속도를 얻습니다. 단위는 분당 포인트입니다. 그리고 주말과 구멍에 관해서는, 나는 이것을 스스로 취했습니다. 차트에 촛불이 무엇인지, 시간 간격이 있고, 그렇지 않은 것(일/시간)은 존재하지 않습니다. 주말을 고려하고 현재 가격이 제자리에 있다면 여기의 속도는 아무 이유없이 눈에 띄게 떨어질 것입니다. 그러나 다시, 각자에게:)


로니철 :

컴파일러가 맹세하지 않도록 데이터 시간을 두 배로 올바르게 변환하는 방법(잘못된 변환으로 인한 데이터 손실 가능)

 double A = ( double )Time[ 1 ];

왜 날짜를 이중으로 저장하고 싶습니까? 동일한 배열에 다른 유형의 변수를 저장하고 앞뒤로 캐스팅하는 경우 일반 배열을 구조 배열로 바꾸는 것을 고려하십시오.


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

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

정말 감사합니다!

구조는 mql 5에서만 작동하거나 이미 mql 4에서 작동합니까?

 
예, 그들은 4 개로 작동합니다. 도움을 받아 명확하게 작성하는 것이 매우 편리합니다.
 
Roni Iron :

정말 감사합니다!

구조는 mql 5에서만 작동하거나 이미 mql 4에서 작동합니까?

구조체 뿐만 아니라 공용체도 작동합니다.