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

 
hoz :


:) 그리고 왜 이 순간을 새로운 막대의 기능으로 구현하지 않습니까? 하루에 한 번, 즉. 칠면조가 다시 계산을 수행하는 시간 0.00부터 시작합니다. 그래서 우리는 쉽게 만듭니다. 처음에는 ess-no:

내 생각에는 이것이 가장 올바른 방법이지만 원시적입니다!
당신의 이름을 딴 Vinin 은 자신을 바꿔야 한다고 나에게 대답했지만, 이것은 컴파일을 통해서만 발생하지 않았습니다. 바 컨트롤을 사용하는 아이디어를 주셔서 감사합니다! 나는 한 차트에 하나의 옵션을 놓고 다른 차트에 당신의 옵션을 넣습니다. 나는 내일 작동하는 것을 볼 것이다.
 
hoz :


현재는 나도 아니고 나다. && 기호도 있다.

또는. 피연산자 중 하나 이상 이 거짓(첫 번째 OR 두 번째)인 경우 AND 조건이 충족 되지 않기 때문에 - 부울 논리에서 이를 " De Morgan의 법칙 "이라고 합니다.

이해합니다. 그러나 여기서 요점은 다음과 같습니다.

인덱스 변수에는 일반적으로 Bar - IndicatorCounted() 값이 있습니다.

저것들. 현재 막대에서는 1이고 새 막대에서는 2입니다.

값은 IsUpFractal() 함수에 하나씩 입력되거나 막대가 아직 새롭지 않은 경우 1입니다. 그렇죠?

그것은 변수 i 가 고정 값을 가질 것임을 의미합니다. 입력 매개변수 인덱스 도 고정됩니다. 따라서 루프는 첫 번째 반복 후에 항상 중단됩니다. 그렇다면 왜 순환합니까?

루프의 각 단계에서 변수 i는 1(i--)만큼 감소하므로 i는 index+g_center-1에서 0까지 모든 값을 실행합니다. 또한 표시기가 처음 시작될 때 IndicatorCounted()는 0을 반환합니다. index는 모든 막대를 통해 실행되며, 이는 i에 매번 index+g_center-1이 할당되고 0 bar에 도달할 때까지 또는 cnt가 g_center와 같을 때까지 실행됩니다. 루프 조건이 참이 될 때까지(또는 루프 본문 자체에 있는 반환이 발생할 때까지).
 
alsu :

또는. 피연산자 중 하나 이상 이 거짓(첫 번째 OR 두 번째)인 경우 AND 조건이 충족 되지 않기 때문에 - 부울 논리에서 이를 " De Morgan의 법칙 "이라고 합니다.

우와. 정말 부끄럽다. 이 연산자를 얼마나 사용했는지.. 그러고보니 새로운 관문을 보는 듯.. 법을 읽어보니 어쩐지 난해하게 쓰여져 있습니다. 부인하면서 상황을 설명합니다. 이 기술은 거부 상황에만 적용된다는 것을 알고 있습니까? 내 말은, 만약 있다면. 의 부울은 True 가 아닙니다.

붙지 않았다는 것을 도중에 깨달았습니다. 결론은 여기서 차이점은 다음과 같습니다. 이건 인디케이터라 아직은 그런 생각이 익숙하지 않습니다.. 인디케이터가 처음 호출될 때 막대가 계산되지 않고 인덱스 가 차트의 막대 개수와 같거나, 막대 계산이 조건에 의해 제한되는 경우 일부 limitReCalcBar 변수의 값으로 제한됩니다.

사실 변수 g_center = 2 는 코드에서 진행됩니다. limitReCalcBar = 5000 또한 외부 변수를 기반으로 합니다.

표시기가 함수로 처음 실행될 때:

 //+-------------------------------------------------------------------------------------+
//| Определение наличия верхнего фрактала на указанном баре                             |
//+-------------------------------------------------------------------------------------+
bool IsUpFractal( int index)
{
   double centerHigh = High[index + g_center];     // За точку отсчета берется средний..
                                                   // ..бар на участке из i_fractalPeriod
                                                   // ..баров
// - 1 - == Поиск максимумов справа от центрального бара ================================
   int cnt = 0 , i = index + g_center - 1 ;
   for (; i >= 0 && cnt < g_center; i--)           // Справа от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
       if (centerHigh <= High[i])                   // ..максимумом. Не позволяется..
         return ( false );                           // ..наличие баров с большим или..
      cnt++;                                       // ..равным максимумом.
   }
   
   if (i < 0 )                                       // g_center-1 низших максимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 1 - == Окончание блока =============================================================

// - 2 - == Поиск максимумов слева от центрального бара =================================
   cnt = 0 ;
   i = index + g_center + 1 ;
   int total = Bars - 1 ;
   for (; i < total && cnt < g_center; i++)         // Слева от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
       if (centerHigh == High[i])                   // ..максимумом. Не позволяется..
         continue ;                                 // ..наличие баров с большим..
       if (centerHigh < High[i])                     // ..максимумом. Равный - позволяется
         return ( false );
      cnt++;                                    
   }
   
   if (i >= total)                                 // g_center-1 низших максимумов не..
       return ( false );                               // ..найдено. Фрактала нет
// - 2 - == Окончание блока =============================================================
                                                   
   return ( true );                                   // Фрактал найден                 
}

이에 따라 값 5000 이 전달됩니다.

i = 인덱스 + g_center - 1 = 5000 + 2 - 1 = 5001

루프를 살펴보겠습니다.

 for (; i >= 0 && cnt < g_center; i--)

5000 바를 계산해야 합니다. 처음 두 개의 막대(즉. 0일과 1일에는 cnt < g_center 조건이 false 가 됩니다. 그렇다면 5000개의 막대를 모두 계산하는 방법은 무엇입니까? 마스터하고 싶은 순간입니다. 이것을 보는 프로에게는 초등이지만 나는 들어가지 않는다. 물론 && 연산자가 OR 로 인식되면 모든 것이 제자리에 들어갈 것입니다.

글쎄, 모든 것이 계산되면 모든 것이 이미 간단합니다. 각 틱의 인덱스 를 통해 01 이 전송되고 루프에서 조건이 관찰되며 내가 볼 때 어려움이 없습니다.

 

친애하는 프로그래머! 오픈 포지션을 감시하는 스크립트를 작성할 수 있는지, 그리고 어떤 포지션이 일정 수준의 손실에 도달하면 그 포지션의 일부를 닫는 것이 가능한지 알려주세요. 예금 통화 또는 포인트로 최대 손실 수준을 설정합니다. 따라서 가격이 우리에게 불리하면 손실을 줄이고 가격이 플러스로 바뀌면 손실 대신 설정된 TP에 따라 일종의 이익 또는 더 작은 손실을 얻을 수 있습니다. 스크립트는 권고자 모드에서 지속적으로 작동해야 합니다. 그는 모든 거래 시스템 또는 전문가의 조수입니다.

 
destan :

친애하는 프로그래머! 오픈 포지션을 감시하는 스크립트를 작성할 수 있는지, 그리고 어떤 포지션이 일정 수준의 손실에 도달하면 그 포지션의 일부를 닫는 것이 가능한지 알려주세요. 예금 통화 또는 포인트로 최대 손실 수준을 설정합니다. 따라서 가격이 우리에게 불리하면 손실을 줄이고 가격이 플러스로 바뀌면 손실 대신 설정된 TP에 따라 일종의 이익 또는 더 작은 손실을 얻을 수 있습니다. 스크립트는 권고자 모드에서 지속적으로 작동해야 합니다. 그는 모든 거래 시스템 또는 전문가의 조수입니다.

아마도. 여기를 도와 주세요 .

 
valeryk :

아마도. 여기를 도와 주세요 .


스톱로스라는게 있어요!!!
 

안녕하세요! 질문이 있습니다. 터미널에 동일한 창이 여러 개 열려 있습니다. 동일한 Expert Advisor가 각각에 연결되어 있지만 설정이 다릅니다. MQL4에서 허용하는 기능이나 기성 알고리즘이 MQL4에 있으면 알려주십시오. 어떤 창에서 시장가 주문을 결정합니까?

 
badbadboy :

안녕하세요! 질문이 있습니다. 터미널에 여러 개의 동일한 창이 열려 있습니다. 동일한 Expert Advisor가 각각에 연결되어 있지만 설정이 다릅니다. MQL4에서 허용하는 기능이나 기성 알고리즘이 MQL4에 있으면 알려주십시오. 시장가 주문이 열리는 창을 결정하려면?

어드바이저의 사본을 만들고 이름을 다르게 지정하는 것이 더 논리적이며 로그에서 모든 것을 볼 수 있으며, 그에 따라 어떤 창에서 이미 알아낼 수 있습니다!
 
borilunad :
어드바이저의 사본을 만들고 이름을 다르게 지정하는 것이 더 논리적이며 로그에서 모든 것을 볼 수 있으며, 그에 따라 어떤 창에서 이미 알아낼 수 있습니다!

내가 알아낼 수 있지만 이 사실을 고문에게 어떻게 알릴 수 있습니까?
 
borilunad :
어드바이저의 사본을 만들고 이름을 다르게 지정하는 것이 더 논리적이며 로그에서 모든 것을 볼 수 있으며, 그에 따라 어떤 창에서 이미 알아낼 수 있습니다!

고문 자신이 계산을 시작하려면 이것이 필요합니다.