초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1502

 
psihodelit 함수를 가져올 수 있는지 알려주실 수 있나요?

예를 들어, 주문을 여는 EA가 있고 매개 변수 드로 다운 등이 지정된 계정 상태를 모니터링하는 EA가 있습니다,

두 번째 어드바이저의 드로다운에 도달하면 첫 번째 어드바이저는 주문을 열지 않아야합니다....

예를 들어 어떻게해야합니까?

첫 번째 EA가 특정 메지 크가있는 포지션을 열면 해당 포지션 또는 다른 EA에서 이러한 포지션을 정렬하고 총 이익 손실을 계산할 수 있습니다. 그리고 두 번째 전문가 고문은이 이익 손실을 계산하므로 드로 다운이 될 수 없으며 포지션을 열지 않고 원하는 메지 크가있는 포지션 상태를 모니터링합니다. 그리고 일반적으로 포지션은 개설 된 후 자체적으로 이루어지며 그중에서 일반적으로 올바른 포지션을 찾아야합니다)))))

 
psihodelit 함수를 가져올 수 있는지 알려주실 수 있나요?

예를 들어, 주문을 여는 EA가 있고 매개 변수 드로 다운 등이 지정된 계정 상태를 모니터링하는 EA가 있습니다,

두 번째 어드바이저의 드로다운에 도달하면 첫 번째 어드바이저는 주문을 열지 않아야합니다....

예를 들어 어떻게해야합니까?

몇 가지 옵션이 있습니다.

위의 조언을 사용할 수 있습니다. 꽤 잘 작동하는 변형입니다.

터미널의 전역 변수를 사용할 수 있습니다.

파일을 쓰거나 읽음으로써 전문가 어드바이저 간의 교환을 설정할 수 있습니다.

모든 펠트 펜은 맛과 색이 다르다는 말이 있듯이)

 
psihodelit 함수를 가져올 수 있는지 알려주실 수 있나요?

예를 들어, 주문을 여는 EA가 있고 매개 변수 드로 다운 등이 지정된 계정 상태를 모니터링하는 EA가 있습니다,

두 번째 어드바이저의 드로다운에 도달하면 첫 번째 어드바이저는 주문을 열지 않아야합니다....

예를 들어 어떻게해야합니까?

시작하려면 (물론 IMHO) 몇 가지 미묘한 점을 이해해야합니다.

  1. 두 EA의 코드를 편집할 수 있는지 여부.
  2. EA가 전역 변수에 활동 흔적을 남기는지 여부
  3. 최소한 기본적인 코딩 기술을 보유하고 있나요?
세 가지 미묘함에 대한 답이 모두 긍정적이면 계획 한 것을 구현하기가 쉬울 것이고, 차이가 있으면 더 어려울 것이지만 가능합니다 - 우리는 함께 무언가를 생각할 것입니다.
 
Sergey Voytsekhovsky #:

세 가지 미묘함에 대한 답변이 모두 긍정적이면 ...

이 질문은 여기서 발생하지 않을 것입니다.

 
Yuriy Bykov #:

위에서 제안해 주신 아이디어에 감사드립니다. 관심이 있으신 분들을 위해 그 결과를 알려드리겠습니다.

//---
   NOD = 1;
   ArraySort(Arr_ZigLag);
   size_zigLag = ArraySize(Arr_ZigLag);
   for(int i = size_zigLag - 1; i > 0; i--)
     {
      if(NOD != 1)
         if(Arr_ZigLag[i] != Arr_ZigLag[i-1])
            NOD = CalculateNOD(Arr_ZigLag[i-1], NOD);
      if(NOD == 1)
         if(Arr_ZigLag[i] != Arr_ZigLag[i-1])
            NOD = CalculateNOD(Arr_ZigLag[i], Arr_ZigLag[i-1]);
           }
   return(NOD);
  }
//+------------------------------------------------------------------+
//| Функция НОД(НаибольшийОбщийДелитель)                             |
//+------------------------------------------------------------------+
int CalculateNOD(int a=1, int b=1)
  {
   int Nod = (int)MathMod(a, b);
   while(Nod > 0)
     {
      a = b;
      b = Nod;
      Nod = (int)MathMod(a, b);
     }
   if(Nod == 0)
      Nod = b;
   return(Nod);
  }
 
Sergey Voytsekhovsky #:

또는 이렇게 할 수도 있습니다:

//+------------------------------------------------------------------+
//| Наибольший общий делитель чисел a и b                            |
//+------------------------------------------------------------------+
int gcd(int a, int b) {
   int c;

   while(b > 0) {
      c = a % b;
      a = b;
      b = c;
   }

   return a;
}

//+------------------------------------------------------------------+
//| Наибольший общий делитель массива чисел a                        |
//+------------------------------------------------------------------+
int ArrayGcd(int &a[]) {
   int n = ArraySize(a);
   if(n == 1) {
      return 0;
   }
   int c = gcd(a[0], a[1]);

   for(int i = 2; i < n; i++) {
      c = gcd(a[i], c);
      if(c == 1) {
         break;
      }
   }
   return c;
}


int OnCalculate(...) {
   ...
   ArraySort(Arr_ZigLag);
   NOD = ArrayGcd(Arr_ZigLag);
   return(NOD);
  }
 
Yuriy Bykov #:

또는 이렇게 할 수도 있습니다:

동의합니다, 아름답습니다! 도서관에 넣어도 될까요?

 
Yuriy Bykov #:

또는 이렇게 할 수도 있습니다:

제가 질문을 이해할 수 있도록 힌트를 주실 수 있나요?

수학 f를 사용했습니다. "나눗셈의 잔차"를 사용했지만 내장 함수인" MathMod"가 있는데,"두 수를 나눈 후의 실수 잔차"에 대해 이야기합니다. "실제"라는 단어는 무엇을 의미하나요????

 
Sergey Voytsekhovsky #:

모든 것이란 단어는 무엇을 의미하나요???

이 경우 분수가 암시됩니다.

 
Aleksandr Slavskii #:

몇 가지 옵션이 있습니다.

위의 조언을 사용할 수 있습니다. 꽤 실행 가능한 옵션입니다.

글로벌 터미널 변수를 사용할 수 있습니다.

파일을 쓰거나 읽어서 전문가 조언자 간의 교환을 설정할 수 있습니다.

모든 펠트펜은 맛과 색이 다르다는 말이 있듯이)))))

어떤 방향으로 움직여야 하는지, 어디서부터 어떻게 시작해야 하는지를 이해하는 방법. 지식이 거의 없습니다 ...

  1. 두 어드바이저의 코드를 편집할 수 있나요?
    예.
  2. 어드바이저가 글로벌 변수에 활동 흔적을 남기나요
    확실하게 말할 수 없습니다.
  3. 최소한 기본적인 코딩 기술이 있나요
    조금은 있습니다.
사유: