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

 

아마도 이런 식으로?

 bool CheckSpr( int _sp)
{
   static int ts= 0 , res= 0 ;
   static long tc= 0 ;
   if (tc> 50 && res* 3 <_sp) return ( false );
   tc++;
   ts += _sp;
   res =ts/tc;
   if (tc> LONG_MAX - 1 ) {
      tc= 0 ;
      ts= 0 ;
   }
   // Comment( res,"=",tc );
   if (tc< 50 ) return ( false );
   return (res>_sp? true : false );
}

다시 말하지만, 문제는 롤오버 전에 코드를 실행하지 않고 실행하는 경우 50틱 동안 엄청난 스프레드를 작성하고 이 줄이 의미가 없다는 것입니다.

코드를 수정하는 방법?

 
Vitaly Muzichenko :

아마도 이런 식으로?

다시 말하지만, 문제는 롤오버 전에 코드를 실행하지 않고 실행하는 경우 50틱 동안 엄청난 스프레드를 작성하고 이 줄이 의미가 없다는 것입니다.

코드를 수정하는 방법?

논리가 별로 좋지 않습니다. 왜 오랜 시간 지속될 수 있는 longmax에 대한 카운터가 있는 50틱의 평균 값이 정확합니까?

기호 속성에 선언된 스프레드가 있습니다. 처음에 입력을 하려면. 그리고 입력하지 않으면 수신합니다. 그리고 스프레드가 증가하면 실수로 평균 스프레드로 간주합니다. 상당히 짧은 기간에 걸친 평균값이며 그 변화를 알아차릴 필요가 있습니다.

입력에서 스프레드가 있는 경우 각 틱에서 이를 비교하고 평균값을 원하는 값으로 다이얼합니다. 문제는 중간 값을 기억하지 않고 평균을 계산할 수 없다는 것입니다. 이런 식으로 사용하고 모든 값을 기억하고 마지막 값에 1을 더하면 합계에 더하고 첫 번째 값을 빼고 번호 매기기를 이동합니다(배열 A(n) = A(n + 1)). 이것은 카운터를 큰 값으로 돌리는 것보다 저렴합니다. 그리고 최대 10~20개의 값까지 변수를 사용합니다.

SymbolInfoInteger 보다 비싼 것이 무엇인지, Bid와 Ask의 차이가 무엇인지 모르겠습니다.)

 
Valeriy Yastremskiy :

논리가 별로 좋지 않습니다. 왜 오랜 시간 지속될 수 있는 longmax에 대한 카운터가 있는 50틱의 평균 값이 정확합니까?

기호 속성에 선언된 스프레드가 있습니다 . 처음에 입력을 하려면. 그리고 입력하지 않으면 수신합니다. 그리고 스프레드가 증가하면 실수로 평균 스프레드로 간주합니다. 상당히 짧은 기간에 걸친 평균값이며 그 변화를 알아차릴 필요가 있습니다.

입력에서 스프레드가 있는 경우 각 틱에서 이를 비교하고 평균값을 원하는 값으로 다이얼합니다. 문제는 중간 값을 기억하지 않고 평균을 계산할 수 없다는 것입니다. 이런 식으로 사용하고 모든 값을 기억하고 마지막 값에 1을 더하면 합계에 더하고 첫 번째 값을 빼고 번호 매기기를 이동합니다(배열 A(n) = A(n + 1)). 이것은 카운터를 큰 값으로 돌리는 것보다 저렴합니다. 그리고 최대 10~20개의 값까지 변수를 사용합니다.

SymbolInfoInteger 보다 비싼 것이 무엇인지, Bid와 Ask의 차이가 무엇인지 모르겠습니다.)

"Floating"이라는 단어만 있으므로 작업


 
Vitaly Muzichenko :

"Floating"이라는 단어만 있으므로 작업


흥분했다.) 그런 다음 첫 번째 값의 정확성에 대한 믿음의 논리. 또는 10분 정도 기다렸다가 이 시간 동안 스프레드 변화의 순조로움에 대한 통계를 수집하고 평균 최소 면적 50 또는 100 틱을 찾아 평균으로 취하십시오. 교환이 작동하지 않는 시간에 떨어지지 않도록 시작 시간을 제어합니다. 완전한 보호와 바보로부터의 경우)

 
Valeriy Yastremskiy :

흥분했다.) 그런 다음 첫 번째 값의 정확성에 대한 믿음의 논리. 또는 10분 정도 기다렸다가 이 시간 동안 스프레드 변화의 순조로움에 대한 통계를 수집하고 평균 최소 면적 50 또는 100 틱을 찾아 평균으로 취하십시오. 교환이 작동 하지 않는 시간에 떨어지지 않도록 시작 시간을 제어합니다 . 완전한 보호와 바보로부터의 경우)

이것은 피해야 할 사항입니다.

어드바이저를 롤오버 시 정확히 실행하지 않는 한 알고리즘은 작동하고 있으며 이는 주말 이후에 항상 발생합니다.

 
Vitaly Muzichenko :

이것은 피해야 할 사항입니다.

어드바이저를 롤오버에서 정확히 실행하지 않는 한 알고리즘은 작동하고 있으며 이는 주말 이후에 항상 발생합니다.

피해야 할 컨트롤 중 하나는 여전히 다른 것으로 대체되어야 합니다. 틱 사이의 시간입니다. 별로 비싸지 않습니다. 틱 사이에 10초 이상 있으면 문제가 있는 것입니다.

 
Vitaly Muzichenko :

이것은 피해야 할 사항입니다.

어드바이저를 롤오버에서 정확히 실행하지 않는 한 알고리즘은 작동하고 있으며 이는 주말 이후에 항상 발생합니다.

롤오버의 경우 시작/종료와 같은 별도의 시간 매개변수를 만들어야 합니다.
그리고 지금은 아무 것도 하지 마십시오("롤오버, 우리는 기다리고 있습니다" 주석 제외).

 
Taras Slobodyanik :

롤오버의 경우 시작/종료와 같은 별도의 시간 매개변수를 만들어야 합니다.
그리고 지금은 아무 것도 하지 마십시오("롤오버, 우리는 기다리고 있습니다" 주석 제외).

"정시 작업" 매개 변수가 있었고 거래를 변경하고 올빼미를 시작했습니다. 롤오버에 대한 거래를 시작했습니다.

거래 시간은 일반적인 +2 gmt 대신 -1 gmt로 밝혀졌습니다.

따라서 처방 시간에서 벗어나고 싶은 욕구가 컸습니다.

 
Vitaly Muzichenko :

"정시 작업" 매개 변수가 있었고 거래를 변경하고 올빼미를 시작했습니다. 롤오버에 대한 거래를 시작했습니다.

거래 시간은 일반적인 +2 gmt 대신 -1 gmt로 밝혀졌습니다.

따라서 처방 시간에서 벗어나고 싶은 욕구가 컸습니다.

"시간 값"을 도착한(새) 시간과 마지막으로 계산된 시간의 차이로 바꾸면? 맞다?

저것들. 우리는 새로운 시간이 왔다는 것을 알게 될 것입니다:

- 새로운 날부터

- 새로운 주부터

-또는 지정된 것보다 큰 차이

 
Vitaly Muzichenko :

"정시 작업" 매개 변수가 있었고 거래를 변경하고 올빼미를 시작했습니다. 롤오버에 대한 거래를 시작했습니다.

거래 시간은 일반적인 +2 gmt 대신 -1 gmt로 밝혀졌습니다.

따라서 처방 시간에서 벗어나고 싶은 욕구가 컸습니다.

주의 시작이 "롤오버, 대기 중"이고 서버 시간 이 중요하지 않은 경우 수행