[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 192

 

NewBar()가 호출됩니다. 그러나 당신이 오랫동안 찾는다면 - 당신은 당신 자신을 위해 그것을 더 나쁘게 만들지 않을 것입니다 :)

 

newbar https://book.mql4.com/en/variables/arrays

개념적으로는 다르지 않습니다.

 void Fun_New_Bar()                               // Ф-ия обнаружения ..
  {                                             // .. нового бара
   static datetime New_Time= 0 ;                   // Время текущего бара
   New_Bar= false ;                               // Нового бара нет
   if (New_Time!=Time[ 0 ])                         // Сравниваем время
     {
      New_Time=Time[ 0 ];                         // Теперь время такое
      New_Bar= true ;                             // Поймался новый бар
     }
  }

 
splxgf :

newbar https://book.mql4.com/en/variables/arrays

개념적으로는 다르지 않습니다.


개념적으로는 - 아무것도 아니지만 작동하지 않을 것입니다. 실례합니다.
 
ADX 표시기에 대해 많이 작성되었지만 여기에서 간단히 고려하고 싶은 기능이 있습니다. 그리고 이러한 알고리즘에서 막대 색상을 지정할 수 있습니다. 현재 ADX 값이 더 큰 경우 이전 값보다 +(플러스 라인)이 마이너스 값보다 높으면 막대가 녹색으로 표시되지만 현재 ADX 값이 이전 값보다 작으면 막대가 회색으로 표시됩니다(상관 없음 여기서 더하기 선은), 마지막으로 현재 ADX 값이 이전 ADX보다 크고 -(빼기 선)가 더하기 값보다 높으면 막대가 빨간색으로 칠해집니다. 그리고 파란색과 빨간색으로 칠하는 것만으로는 상황이 더 쉬워지지 않습니다. 또는 화살표가 그려지지 않은 ADX 값을 설정할 수 있도록, 그렇지 않으면 화살표가 많이 있습니다.감사합니다.
 
splxgf :
 double OpenBar= 0 ; 
 
int start()
   {
     //Проверка на начало нового бара
     if (OpenBar==Time[ 0 ]) return ; else OpenBar=Time[ 0 ];
   }

여기서는 double 유형의 변수를 사용하지 않을 것입니다! 더 많은 메모리가 필요합니다! ;)))

그리고 int 유형 이 대상 유형 double로 캐스트되면 내가 이해하는 것처럼 소수점 뒤에 추가 자릿수가 없을 것입니까? 개인적으로 나는 그런 경우를 본 적이 없습니다. 하지만 물어보는 것은 나쁘지 않을 것입니다.


타라 :

개념적으로는 - 아무것도 아니지만 작동하지 않을 것입니다. 실례합니다.
어떤 코드가 작동하지 않으며 그 이유는 무엇입니까?
 

당신이 인용한 것은 일부 바를 건너뛸 것입니다.

 
tara :

당신이 인용한 것은 일부 바를 건너뛸 것입니다.


친구에게 옵션을 제공하고 더 나은 방법을 설명하십시오. 그리고 지금까지 단 한 단어
 

1. double==int 비교 결과가 이전에 double에 배치된 특정 int 값에 따라 달라지기 때문에 일부 막대는 건너뜁니다. 이것이 바로 여기서 일어나는 일입니다. 우리는 시간(int)을 double로 씁니다. 2의 거듭제곱이 아닌 모든 숫자에 대해 정밀도가 손실되고 결과적으로 double3 != int3이지만 double4 == int4가 됩니다.

2. 이것은 누군가의 기술적 오류이며 여러 번 반복된 것임을 이해합니다. 사실, OpenBar 유형을 datetime 또는 int로 수정하기만 하면 됩니다. 그러나 - 마음의 잠은 괴물을 낳습니다. 다른 사람의 코드를 반복하고 눈을 감는 것이 더 쉽습니다. :)

3. 메모리 할당의 관점에서 솔루션이 올바르지 않습니다. 여기에는 로컬 정적 변수로 충분하고 추가 전역 변수 는 쓸모가 없습니다. 이것은 사소한 일이지만 프로그램 쓰레기입니다.

 
tara :

1. double==int 비교 결과가 이전에 double에 배치된 특정 int 값에 따라 달라지기 때문에 일부 막대는 건너뜁니다. 이것이 바로 여기서 일어나는 일입니다. 우리는 시간(int)을 double로 씁니다. 2의 거듭제곱이 아닌 모든 숫자에 대해 정밀도가 손실되고 결과적으로 double3 != int3이지만 double4 == int4가 됩니다.

2. 이것은 누군가의 기술적 오류이며 여러 번 반복된 것임을 이해합니다. 사실, OpenBar 유형을 double로 변경하기만 하면 됩니다. 그러나 - 마음의 잠은 괴물을 낳습니다. 다른 사람의 코드를 반복하고 눈을 감는 것이 더 쉽습니다. :)

3. 메모리 할당의 관점에서 솔루션이 올바르지 않습니다. 여기에는 로컬 정적 변수로 충분하고 추가 전역 변수는 쓸모가 없습니다. 이것은 사소한 일이지만 프로그램 쓰레기입니다.


코드를 가져 오는 것이 남아 있습니다. 5페이지 뒤에 똑같은 말을 반복하는 것도 지겹다. 또한 검색을 통해 올바른 솔루션을 쉽게 찾을 수 있습니다.
 

모두 좋은 하루!

고문에 대한 질문입니다. 많은 어드바이저들을 보며 거래가 어떻게 자동으로 이루어지는지 알고 싶습니다. 모든 것을 올바르게 설정한 것 같습니다 . 고문이 거래하도록 허용하고 아이디어를 이해하지만 어떤 이유로 거래가 없습니다. 특정 악기에 적용되는 것이 아닐까요? 아니면 기간? 어떻게 알 수 있나요?..