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

 
Maxim Kuznetsov :

어떤 종류의 캐논입니까? 사무실 문서가 있습니다. 그것은 당신의 것과 똑같습니다. 다른 모든 것은 사악한 문서에서 온 것입니다.

1. OnCalculate 내부에서 사용된 모든 배열의 직렬성을 설정합니다.

2. 루프에 들어가기 전에 버프[길이]=입찰가+크기를 설정하십시오. - 원하는 대로 정확하게 나타납니다. 입찰가 + 크기 수준에서 곡선 및 "바이저" 끝

3. 배열 경계에 주의하십시오. 물론 rate_total < 길이는 거의 없지만 농담이 아닙니다 :-)

1. 즉, 처음에 ArraySetAsSeries를 작성한 다음 이것에서 춤을 추는 것입니까?

아, 제가 조금 잘못 이해했습니다. 즉, 이 선은 차트를 따라 왼쪽으로 이동해야 하며 각 눈금마다 업데이트되어야 합니다.

 
YanSay :

자세한 답변 정말 감사합니다!

당신의 조언에 따라 가지를 나누었고 모든 것이 밝혀졌습니다.

그런 다음 10-15개의 보류 주문을 동시에 여는 문제에 부딪쳤습니다. 코드 뒤에 추가하여 문제를 해결했습니다.

이 또한 옵션이 아닙니다. 주문은 수동으로 또는 다른 EA에서 열 수 있습니다. 결과적으로 개발된 Expert Advisor는 아무 것도 열지 않습니다. 따라서 고문이 개설한 주문 수를 계산해야 합니다. 이 데이터가 있으면 주문을 열어야 하는지 결정하십시오.

더 현명한 방법이 있다고 확신합니다.

코드에 따르면 1이 무엇을 의미하는지 설명하지 마십시오. 나는 >=0; --나 ?

이것은 표준 주문 주기입니다. OrdersTotal()은 주문 수입니다. 주문은 0부터 시작하여 인덱싱됩니다. 따라서 1개의 주문이 있으면 인덱스가 0이고 OrdersTotal()은 1을 반환합니다. 따라서 루프는 주문 수보다 1 적은 인덱스에서 시작해야 합니다. OrdersTotal() - 1을 얻습니다. 두 번째 피연산자는 루프 본문을 실행하기 위한 조건입니다. 이 경우 루프는 i = -1 값에서 중단됩니다. 세 번째 피연산자는 다음 인덱스로 점프하는 것입니다(1씩 감소).

문서 에서 루프 연산자에 대해 읽을 수 있습니다.

 
Ihor Herasko :

이 또한 옵션이 아닙니다. 주문은 수동으로 또는 다른 EA에서 열 수 있습니다. 결과적으로 개발된 Expert Advisor는 아무 것도 열지 않습니다. 따라서 고문이 개설한 주문 수를 계산해야 합니다. 이 데이터가 있으면 주문을 열어야 하는지 결정하십시오.

나는 이렇게 시도했지만 그는 다시 1 신호에 대해 10-15 주문을 열기 시작했습니다.

 if (( OrdersTotal ()> 0 ) && ( OrderMagicNumber () != 100)) return ;

세 번째 피연산자는 다음 인덱스로 점프하는 것입니다(1씩 감소).

즉, 모든 주문을 끝에서 스캔합니까?

 
YanSay :

나는 이렇게 시도했지만 그는 다시 1 신호에 대해 10-15 주문을 열기 시작했습니다.

즉, 모든 주문을 끝에서 스캔합니까?

OrderMagicNumber() 함수를 사용하려면 먼저 주문을 선택 해야 합니다. 주문에 대한 정보를 수집하는 표준 주기는 다음과 같습니다(예: 주문 수를 계산해 봅시다).

 int nCnt = 0 ;     // Счетчик количества своих ордеров
for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
   {
       if (! OrderSelect (i, SELECT_BY_POS ))
         continue ;

       if ( OrderSymbol () != Symbol ())
         continue ;

       if ( OrderMagicNumber () != <значение ID ордеров эксперта>)
         continue ;

      ++nCnt;
   }

이 코드를 실행한 후 nCnt 변수에는 Expert Advisor의 작업 주문 수가 포함됩니다.

 
Ihor Herasko :

이런식으로 문제를 풀다니...


고맙습니다.

 
Ihor Herasko :

OrderMagicNumber() 함수를 사용하려면 먼저 주문을 선택 해야 합니다. 주문에 대한 정보를 수집하는 표준 주기는 다음과 같습니다(예: 주문 수를 계산해 봅시다).

이 코드를 실행한 후 nCnt 변수에는 Expert Advisor의 작업 주문 수가 포함됩니다.

 int nCnt = 0 ;     // Счетчик количества своих ордеров
for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
 {
   if (! OrderSelect (i, SELECT_BY_POS ))
     continue ;
   if ( OrderSymbol () != Symbol ())
     continue ;
   if ( OrderMagicNumber () != MagicNumber)
     continue ;
  ++nCnt;
  {
   if (nCnt>0)
       return ;
  }
 }

매우 감사합니다! 그것은 효과가 있었다.

말해봐, ++nCnt는 수신된 주문 수를 nCnt 변수 자체로 대체하는 것입니까?

 
YanSay :

매우 감사합니다! 그것은 효과가 있었다.

말해봐, ++nCnt는 수신된 주문 수를 nCnt 변수 자체로 대체하는 것입니까?

이러한 모든 경우에는 즉시 설명서 를 참조하십시오. ))

 
YanSay :

매우 감사합니다! 그것은 효과가 있었다.

말해봐, ++nCnt는 수신된 주문 수를 nCnt 변수 자체로 대체하는 것입니까?

언어에 대한 완전한 문서가 있습니다. 사이트의 최상위 메뉴를 보기만 하면 됩니다.

그것을 읽는 것을 게으르지 마십시오. 모든 것을 머리에 담는 것은 불가능합니다. 거의 모든 사람이 초보자뿐만 아니라 항상 거기에서 관리합니다.

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Artyom Trishkin :

언어에 대한 전체 문서가 있으므로 사이트의 최상위 메뉴를 보기만 하면 됩니다.

그것을 읽는 것을 게으르지 마십시오. 모든 것을 머리에 담는 것은 불가능합니다. 거의 모든 사람이 초보자뿐만 아니라 항상 거기에서 관리합니다.

고맙습니다. 나는 방향이 좋지 않고 F1 편집기가 항상 올바른 위치로 보내지 않는 동안 어떤 섹션을 찾아야하는지 항상 이해하지 못합니다)

어리석은 질문에 대해 걱정하지 않도록 노력하겠습니다. 기다려 주셔서 감사합니다.)

 
Roman Sharanov :

1. 즉, 처음에 ArraySetAsSeries를 작성한 다음 이것에서 춤을 추는 것입니까?

아, 제가 조금 잘못 이해했습니다. 즉, 이 선은 차트를 따라 왼쪽으로 이동해야 하며 각 눈금마다 업데이트되어야 합니다.

그래서 수평선을 그립니다.

버퍼와 재계산이 필요한 이유는 무엇입니까? ObjectSetDoubke(0,myHLine,OBJPROP_PRICE,concrete_price_value);

사용자는 라인을 볼 수 있으며 버퍼를 다시 계산하는 데 시간을 낭비하지 않으며 모두가 행복하고 행복하게 분산됩니다.

PS/정확히 이해 - 지시자 버퍼, 처음에 수행된 계산 결과를 전송(공유/공유)하기 위한 것입니다. 길이가 N인 수평선을 그립니다. 그것은 다른 것에 관한 것입니다.