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

 
-Aleks- :

오류가 발생합니다. 무엇이 잘못되었나요? MQL4에서는 작동합니다...


'{' - 초기화 프로그램이 너무 많습니다. TZ_Sky_and_Ground_V_04.mq5 2484 6

arrFibo[18]를 넣어야 합니다. 18개의 요소가 있다고 합니다.
 
Vladimir Karputov :

iMA 도움말 을 보셨습니까?

1단계: "헤더"에서 iMA 표시기의 핸들을 저장할 변수를 선언합니다.

2단계: OnInit()에서 표시기 핸들을 만듭니다.

결과(스크린샷의 십자선은 막대 #1로 설정됨):

또 다른 질문입니다. 한 주기에 표시기가 있으면 이중 MA[ 1 ]도 설정해야 합니다. 아니면 더 큰 어레이 크기를 즉시 요청/수신하는 것이 더 낫습니까? 왜 이러한 복잡성이 필요한지 이해할 수 없습니다. MQL4와 비교하여 장점이 무엇입니까?
 
-Aleks- :

또 다른 질문입니다. 한 주기에 표시기가 있으면 이중 MA[ 1 ]도 설정해야 합니다. 아니면 더 큰 어레이 크기를 즉시 요청/수신하는 것이 더 낫습니까? 왜 이러한 복잡성이 필요한지 이해할 수 없습니다. MQL4와 비교하여 장점이 무엇입니까?


iMAGe t 함수를 사용한 예는 표시기에서 한 번에 하나의 값을 가져오기 위해 연마한 예입니다. 한 번에 표시기에서 여러 값을 연속으로 가져와야 하는 경우 "from" 및 "to" 매개변수와 함께 CopyBuffer를 사용하고 결과를 배열에 저장해야 합니다.


추가됨: 나중에 예제가 있을 것입니다...


약속된 예.

입력 매개변수:

  • 값을 배열로 가져오기 - 값이 "true"이면 배열로 표시기 값을 가져오는 것을 사용하고 "false"이면 한 번에 하나의 값을 얻습니다.
  • count -> "값을 배열로 가져오기"==true인 경우에만 - 배열에 복사된 막대의 수
  • 시작 위치 -> "값을 배열로 가져오기"==true인 경우에만 - 배열에 복사할 시작 요소(막대)의 번호

Expert Advisor에서 어레이 및 이동 평균 표시기로 작업:

Expert Advisor에서 어레이 및 이동 평균 표시기로 작업

배열 arr_ma 와 인덱스 #0 및 인덱스 #8을 가진 요소의 값에 주의하십시오.

ds

파일:
iMAGet.mq5  12 kb
 
Vladimir Karputov :


iMAGe t 함수를 사용한 예는 표시기에서 한 번에 하나의 값을 가져오기 위해 연마한 예입니다. 한 번에 표시기에서 여러 값을 연속으로 가져와야 하는 경우 "from" 및 "to" 매개변수와 함께 CopyBuffer를 사용하고 결과를 배열에 저장해야 합니다.

추가됨: 나중에 예제가 있을 것입니다...

약속된 예.

입력 매개변수:

  • 값을 배열로 가져오기 - 값이 "true"이면 배열로 표시기 값을 가져오는 것을 사용하고 "false"이면 한 번에 하나의 값을 얻습니다.
  • count -> "값을 배열로 가져오기"==true인 경우에만 - 배열에 복사된 막대의 수
  • 시작 위치 -> "값을 배열로 가져오기"==true인 경우에만 - 배열에 복사할 시작 요소(막대)의 번호

Expert Advisor에서 어레이 및 이동 평균 표시기로 작업:

배열 arr_ma 와 인덱스 #0 및 인덱스 #8을 가진 요소의 값에 주의하십시오.

ds

예를 들어 주셔서 감사합니다!

저에게는 지표값 1개를 요청하고 지표값 10개를 복사하는 것의 장점이 있는지 이해하는 것이 매우 중요합니다. 아마도 이에 대한 연구는 없었을까요?

시계열이 거꾸로 된 것으로 판명되었다는 사실은 좋지 않습니다. 저는 막대 번호 매기기 표준 0123에 익숙하지만 여기서는 1230을 역순으로 나타냅니다.

검색에 얼마나 많은 막대가 필요한지 모르는 경우(예: MA와 막대의 교차점을 찾고 있음) 가능한 최대 수를 물어야 합니까? 이것이 어떤 식으로든 성능에 영향을 줍니까?

 
-Aleks- :

예를 들어 주셔서 감사합니다!

저에게는 지표값 1개를 요청하고 지표값 10개를 복사하는 것의 장점이 있는지 이해하는 것이 매우 중요합니다. 아마도 이에 대한 연구는 없었을까요?

...


그리고 누가 우리가 그러한 연구를 스스로 수행하는 것을 막습니까? :) ?

...

시계열이 거꾸로 된 것으로 판명되었다는 사실은 좋지 않습니다. 저는 막대 번호 매기기 표준 0123에 익숙하지만 여기서는 1230을 역순으로 나타냅니다.

...

배열을 수신한 후(iMAGetArray 호출 후) ArraySetAsSeries ('우리 배열', true)를 실행하기만 하면 됩니다.
...

검색에 얼마나 많은 막대가 필요한지 모르는 경우(예: MA와 막대의 교차점을 찾고 있음) 가능한 최대 수를 물어야 합니까? 이것이 어떤 식으로든 성능에 영향을 줍니까?


이러한 경우 여러 요청을 하는 것이 좋습니다. 예를 들어, 첫 번째 요청 - 50개 요소, 필요한 경우 두 번째 요청(다시 50개 요소) ...
 
Vladimir Karputov :

그리고 누가 우리가 그러한 연구를 스스로 수행하는 것을 막습니까? :) ?


MQL5에 대한 무지가 저를 괴롭힙니다. 코드의 오류 때문에 모든 사람을 오도할 수 있지만 귀하의 전문성은 그러한 연구에 대한 더 많은 확신을 불러일으킵니다!

블라디미르 카르푸토프 :


배열을 수신한 후(iMAGetArray 호출 후) ArraySetAsSeries ('우리 배열', true)를 실행하기만 하면 됩니다.

저것들. 함수에서 즉시 수행합니까?


블라디미르 카르푸토프 :


이러한 경우 여러 요청을 하는 것이 좋습니다. 예를 들어, 첫 번째 요청 - 50개 요소, 필요한 경우 두 번째 요청(다시 50개 요소) ...
브르... 즉 루프 내에 루프를 중첩하시겠습니까? 왜 100이 아니라 50인가? 그래도 이 주제에 대한 연구가 필요합니다. 그렇지 않으면 둘 이상의 막대에 대한 정보를 얻는 것이 이치에 맞지 않을 수 있습니다...
 
이 주제와 관련이 없는 댓글은 " MQL4 MT4 MetaTrader 4 초보자의 질문 "으로 이동되었습니다.
 
-Aleks- :

...

저것들. 함수에서 즉시 수행합니까?

...


다음에서 배열을 뒤집는 것이 좋습니다.

블라디미르 카르푸토프 :

배열 을 수신한 후( iMAGetArray 호출 후 ) ArraySetAsSeries ('우리 배열',true) 를 실행하기만 하면 됩니다.

-알렉스 -:

...

브르... 즉 루프 내에 루프를 중첩하시겠습니까? 왜 100이 아니라 50인가? 그래도 이 주제에 대한 연구가 필요합니다. 그렇지 않으면 둘 이상의 막대에 대한 정보를 얻는 데 의미가 없을 수 있습니다...

중첩 루프 없음 - 모든 값을 우회하는 루프는 하나만 있습니다. 모든 처리는 순차적으로 진행됩니다. - 별도의 함수에서 결과를 검색합니다(여기에서 특정 값을 요청합니다(예: 50개 값)). 결과가 없으면 새로 요청합니다.

 

MQL4 이후에 MQL5에서 지표로 작업하는 것은 끔찍합니다! 정말 아파요.

코드 전체에 표시기 호출을 번지는 대신 핸들을 포함하여 하나의 기능에 모든 것을 넣는 것이 왜 불가능한지 이해가 되지 않습니다!?

그리고 인디케이터가 위치한 기능으로 인디케이터 설정을 바꾸면 어떻게 해야할지 도무지 이해가 안가시죠?!?!? 지표의 모든 변형을 시작해야 합니까?


다음은 MQL4의 예입니다. MQL5에서 이를 수행하는 방법은 무엇입니까?


 int BarPeresek_iMAf( int PeriodMA)
  {
   int TFT= 0 ;
   int shiftMAT= 0 ;
   int typeMAT= 0 ;
   int priceMAT= 0 ;
   int BarPeresek= 0 ;
   if ( Bars ( Symbol (), 0 )>PeriodMA)
     {
       for ( int X= 1 ;X< 1000 ; X++)
        {
         double MAT= NormalizeDouble ( iMA ( Symbol (),TFT,PeriodMA,shiftMAT,typeMAT,priceMAT,X), Digits ());
         if (( Low (X)>MAT && High (X)>MAT) || 
            ( Low (X)<MAT && High (X)<MAT))BarPeresek++;
         else {BarPeresek++; break ;}
        }

     }
   return BarPeresek;
  }
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Торговые советники и собственные индикаторы - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Среди программ для автоматического трейдинга можно выделить две большие категории: торговые роботы и индикаторы. Первые предназначены для...
 

표시되지 않도록 위치를 닫은 후 마커를 제거하는 방법을 알려주십시오.

그리고 프로그래밍 방식으로 제거하는 방법이 있습니까?

고맙습니다!

사유: