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

 
Alexey Viktorov :

나는 프랙탈을 예로 들었다. 그리고 군사 비밀을 보기 위한 최소값(귀하의 경우)을 어떻게 정의합니까 ... 또는 그들이 요구하는 것에 대한 절대적인 오해.

내 코드는 여러 줄로 구성되어 있으며 최소값이 어떻게 결정되는지 육안으로 볼 수 있습니다.

최소값은 노란색 선으로 정의됩니다.

 void OnTick () //484
{
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>= 0.0030 &&Pr!=LoU)
{
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 , 0 , 0 , "300" , 0 );
Print ( "---------------------КАЖДЫЙ ТИК ------Tick---------=     "     ,   Tick);
Pr=LoU;
LoU=Bid;
}
}
 
MakarFX :

막대를 셀 필요가 없습니다

주문을 연 후 Low[0] 값을 변수(현재 막대의 낮은 값)에 할당하고 막대가 닫힌 후 Low[1] 값이 변수보다 작으면 새 값을 할당하고,

그렇지 않으면 이전 것이 남아 있습니다. 최저한의.

나는 오래전에 이 알고리즘을 이해하고 사용했습니다.... 즉, 틱이 아닌 양초에서 저점을 확인합니다. 그러나 나는 당신이 최소값이 나타나기 전이 아니라 나타난 후에 확인해야 할 때 훨씬 더 경제적인 알고리즘, 즉 내가 마지막으로 설명한 알고리즘이 있다고 믿습니다. 하지만 BID에서 50번째 캔들까지 캔들의 개수를 빠르고 경제적으로 계산하는 방법을 모르겠습니다. 예, 50번째 촛불, 나는 촛불의 수를 셀 수 있습니다. LOW가 가장 낮은 양초 이전의 양초 수를 계산하는 방법. 즉, BID에서 이 캔들까지

 
ANDREY :

내 코드는 여러 줄로 구성되어 있으며 최소값이 어떻게 결정되는지 육안으로 볼 수 있습니다.

최소값은 노란색 선으로 정의됩니다.

그리고 무엇이 문제입니까? 여기서 중요한 것은 LoU변수가 선언되는 방식입니다. 글로벌 수준이라면 괜찮습니다. 지역 변수인 경우 정적이어야 합니다. 그리고 각 틱에서 현재 가격과 이 변수의 가격 차이를 확인하면 마이크로초 비용이 너무 미미하여 그것에 대해 이야기하는 것이 의미가 없습니다.

 
ANDREY :

나는 오래전에 이 알고리즘을 이해하고 사용했습니다.... 즉, 틱이 아닌 양초에서 저점을 확인합니다. 그러나 나는 당신이 최소값이 나타나기 전이 아니라 나타난 후에 확인해야 할 때 훨씬 더 경제적인 알고리즘, 즉 내가 마지막으로 설명한 알고리즘이 있다고 믿습니다. 하지만 BID에서 50번째 캔들까지 캔들의 개수를 빠르고 경제적으로 계산하는 방법을 모르겠습니다. 예, 50번째 촛불, 나는 촛불의 수를 셀 수 있습니다. LOW가 가장 낮은 양초 이전의 양초 수를 계산하는 방법. 즉, BID에서 이 캔들까지

여기에는 일종의 비정상적인 논리가 있습니다. 왜 약 50개의 막대를 계산합니까? 50이 아니라면?

 
ANDREY :

나는 오래전에 이 알고리즘을 이해하고 사용했습니다.... 즉, 틱이 아닌 양초에서 저점을 확인합니다. 그러나 나는 당신이 최소값이 나타나기 전이 아니라 나타난 후에 확인해야 할 때 훨씬 더 경제적인 알고리즘, 즉 내가 마지막으로 설명한 알고리즘이 있다고 믿습니다. 하지만 BID에서 50번째 캔들까지 캔들의 개수를 빠르고 경제적으로 계산하는 방법을 모르겠습니다.

어떤 검사를 생각해 냈든 모든 틱에서 여전히 수행됩니다. 이것은 OnTick() 함수의 기능 입니다.

 
MakarFX :

어떤 검사를 생각해 냈든 모든 틱에서 여전히 수행됩니다. 이것은 OnTick() 함수의 기능 입니다.

확인해야 할 것과 최소값을 찾는 것이 다른 것입니다 ...

 
Alexey Viktorov :

그리고 무엇이 문제입니까? 여기서 중요한 것은 LoU 변수가 선언되는 방식입니다. 글로벌 수준이라면 괜찮습니다. 지역 변수인 경우 정적이어야 합니다. 그리고 각 틱에서 현재 가격과 이 변수의 가격 차이를 확인하면 마이크로초 비용이 너무 미미하여 그것에 대해 이야기하는 것이 의미가 없습니다.

저에게 새롭고 값진 정보 감사합니다..... 이건 몰랐네요.

 
Alexey Viktorov :

여기에는 일종의 비정상적인 논리가 있습니다. 왜 약 50개의 막대를 계산합니까? 50이 아니라면?

50은 추상적인 경우입니다. 아마도 20과 150 그리고 3과 1 이것은 현재 BIDE에서 그것과 로컬 최저가 사이에 얼마나 많은 막대가 있는지 알아내는 방법을 의미합니다.... 이 입찰가와 로컬 최저가 사이에 주문을 여는 데 필요한 30포인트가 있는 경우. ( Вid - Low[   오십   ] >= 30st     ) - 주문을 엽니다.

 
MakarFX :

어떤 검사를 생각해 냈든 모든 틱에서 여전히 수행됩니다. 이것은 OnTick() 함수의 기능 입니다.

고맙습니다. 내가 이것을 알았다면 .... 아마도 나는이 문제에 대해 그렇게 많이 귀찮게하지 않았을 것입니다.

즉, 모든 틱이 아니라 모든 양초에서 LOW를 확인하면 프로그램은 여전히 각 틱을 처리하는 데 시간을 소비하고 시간은 모든 틱에서 확인된 것과 같을 것입니다.

그리고 코드의 도움으로 이 기능은 어떤 식으로든 우회할 수 없습니다. 모든 틱마다 수행되는 것이 아니라 1분 촛불의 모든 LOW에서 수행되는 작업을 가정해 보겠습니다.  

 
ANDREY :

고맙습니다. 내가 이것을 알았다면 .... 아마도 나는이 문제에 대해 그렇게 많이 귀찮게하지 않았을 것입니다.

즉, 모든 틱이 아니라 모든 양초에서 LOW를 확인하면 프로그램은 여전히 각 틱을 처리하는 데 시간을 소비하고 시간은 모든 틱에서 확인된 것과 같을 것입니다.

그리고 코드의 도움으로 이 기능은 어떤 식으로든 우회할 수 없습니다. 모든 틱마다 수행되는 것이 아니라 1분 촛불의 모든 LOW에서 수행되는 작업을 가정해 보겠습니다.  

무효의()