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

 
Alexey Viktorov :

글쎄, 고마워 ... 6 년 전에도 내 자신을 보았습니다 ... 나는 지금 당신과 같았습니다. 생각도 하지 않고 엉뚱한 조언을 했다.

템플릿의 경우: 템플릿에 표시기가 있지만 EA가 없는 경우 템플릿은 EA 없이 로드됩니다... 그리고 템플릿에 EA가 있는 경우??? 템플릿에 따라 로드된 Expert Advisor가 템플릿을 적용 하지 않아 터미널을 루프 및 중단한다고 확신합니까?

나는 매달리지 않습니다 - 모든 것이 강타와 함께 작동합니다!

 
SanAlex :

나는 매달리지 않습니다 - 모든 것이 강타와 함께 작동합니다!

저처럼 게으르지 마세요. 그러한 조작으로 비디오를 만드십시오. :-)))

 
Vitaly Muzichenko :

이제 MT4에서 "SmoothedMAOnBuffer()" 구성을 디버그하기 위해 왔습니다.

무슨 일이야, 이해가 안 돼

나는 백 번 썼습니다 -주기에서 기능을 제거하십시오.

이 헛소리 대신 :

 ArrayResize (buff, counter);
   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val_1) - ma_1(i, a);
   for (i = 0 ; i < counter - a; i++) {
     // buf_3[i] = iMAOnArray(Array_1, 0, period, 0, MODE_SMMA, i); // Так индикатор работает
      SmoothedMAOnBuffer(counter, prev_calculated, i, period, Array_1, buff); Совсем не работает, но и ошибок в журнале нет
      buf_3[i] = buff[ 0 ]; ???
   }
   for (i = counter - a; i > 0 ; i--) {
      Array_2[i] = Array_2[i + 1 ];

다음 과 같이 작성하십시오 .

 ArrayResize (buff, counter);
   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val_1) - ma_1(i, a);

if (SmoothedMAOnBuffer(counter, prev_calculated, i, period, Array_1, buff)== 0 )
   return 0 ;

for (i = counter - a; i > 0 ; i--) {
   Array_2[i] = Array_2[i + 1 ];

이 함수를 호출하는 것은 Array 배열의 데이터를 매끄럽게 하는 전체 주기입니다. 이 배열의 스무딩된 데이터는 출력의 버프 배열에 있습니다. 필요한 스무딩된 데이터를 가져오기만 하면 됩니다.

 
Alexey Viktorov :

저처럼 게으르지 마세요. 그러한 조작으로 비디오를 만드십시오. :-)))

내가 당신의 프로필을 더 일찍 방문하지 않은 것을 유감스럽게 생각합니다. 그런 멋진 코드가 있습니다. 이것은 내가 정말 좋아했습니다. https://www.mql5.com/ru/code/16396

EURGBPH1

TralingLine
TralingLine
  • www.mql5.com
Виртуальный Stop Loss или Trailing Stop.
 
Artyom Trishkin :

나는 백 번 썼습니다 -주기에서 기능을 제거하십시오.

이 헛소리 대신 :

다음 과 같이 작성하십시오 .

이 함수를 호출하는 것은 Array 배열의 데이터를 매끄럽게 하는 전체 주기입니다. 이 배열의 스무딩된 데이터는 출력의 버프 배열에 있습니다. 필요한 스무딩된 데이터를 가져오기만 하면 됩니다.

감사합니다.

SmoothedMAOnBuffer(rates_total, prev_calculated, count , period, Array_1, buf_3 );

작동 방식 - 아직 이해하지 못했는데 이제 이해하겠습니다.

 
Artyom Trishkin :

나는 백 번 썼습니다 -주기에서 기능을 제거하십시오.

이 헛소리 대신 :

다음 과 같이 작성하십시오 .

이 함수를 호출하는 것은 Array 배열의 데이터를 매끄럽게 하는 전체 주기입니다. 이 배열의 스무딩된 데이터는 출력의 버프 배열에 있습니다. 필요한 스무딩된 데이터를 가져오기만 하면 됩니다.

나는 그것을 모두 적용 할 수 없었고 4 시간 이상을 보냈습니다.

처음 시작할 때 올바르게 표시되고 업데이트가 없습니다. 멈추고 표준 버전에서 제대로 작동합니다.

   double Array_1[];
   double Array_2[];
   int i= 0 ;
   int period = ( int ) MathFloor ( MathSqrt (a));
   int val = ( int ) MathFloor (a / 1.9 );
   int bars=rates_total;
   int counter = bars - prev_calculated + a + 1 ;
   if (counter > bars)
      counter = bars;
   ArrayResize (Array_1, counter);
     ArraySetAsSeries (Array_1, true );
   ArrayResize (Array_2, counter);
     ArraySetAsSeries (Array_2, true );

   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val) - ma_1(i, a);
   //  for(i = 0; i < counter - a; i++)
   //  buf_3[i] = iMAOnArray(Array_1, 0, period, 0, MODE_SMMA, i);
   SmoothedMAOnBuffer( rates_total, prev_calculated, prev_calculated, period , Array_1, buf_3); // Где-то здесь не правильно вписаны параметры

---

무엇을 입력해야 합니까?

MT5에서는 일반적으로 무엇이 표시되는지 명확하지 않습니다.

파일:
test.mq4  13 kb
 
Vitaly Muzichenko :

나는 그것을 모두 적용 할 수 없었고 4 시간 이상을 보냈습니다.

처음 시작할 때 올바르게 표시되고 업데이트가 없습니다. 멈추고 표준 버전에서 제대로 작동합니다.

---

무엇을 입력해야 합니까?

MT5에서는 일반적으로 무엇이 표시되는지 명확하지 않습니다.

마지막으로 얻고자 하는 바를 말로 표현할 수 있습니까?

지표는 사람들에게 하지 말아야 할 방법을 보여줘야 하는 방식으로 만들어졌습니다. :)

드로어블 버퍼와 계산 버퍼가 모두 섞여 있습니다. 계산된 항목은 대기열의 마지막 항목이어야 합니다. 불행히도 임의의 순서로 혼합할 수는 없습니다.

5개의 ma_1() 함수가 MA 값이 아닌 핸들을 반환하기 때문에 5개에 대해서는 작동하지 않습니다.

SmoothedMAOnBuffer() 함수에서 배열의 중요한 데이터의 시작 대신 prev_calculated 를 전달합니다. 이유는 무엇입니까? 거기에 최소 0을 전송해야 하며 최대값으로 Array_1에 저장된 MA 데이터의 계산 기간 에 따라 계산된 값을 전송해야 합니다.

어떤 색을 그릴지 선택 블록에 논리적 오류가 있습니다. 버퍼를 덮어씁니다. 단순히 괄호 안에 빈 값으로 채워진 버퍼를 빼낸 것입니다. 당신에게 조건이 확인되고 그것이 true에서 수행되어야 한다는 것은 어리석게도 대괄호에서 제외됩니다. 즉, 항상 실행됩니다. 이것은 위치가 명확하지 않을 때 브래킷을 배치하는 습관의 결과입니다.

Array_1 및 Array_2 - 계산된 버퍼가 아닌 이유는 무엇입니까?

일반적으로 많은 질문이 있습니다.

변수 값은 엄격하게 설정됩니다. 각 틱 에서 변수 val 의 값을 계산하는 이유는 무엇입니까?

OnInit()에서 주기 a와 val로 계산된 두 MA에 대해 두 개의 계산 버퍼를 만듭니다. 이 버퍼에서 값을 가져옵니다. 그러면 두 플랫폼 모두에서 작동합니다.

 
Artyom Trishkin :

마지막으로 얻고자 하는 바를 말로 표현할 수 있습니까?

지표는 사람들에게 하지 말아야 할 방법을 보여줘야 하는 방식으로 만들어졌습니다. :)

드로어블 버퍼와 계산 버퍼가 모두 섞여 있습니다. 계산된 항목은 대기열의 마지막 항목이어야 합니다. 불행히도 임의의 순서로 혼합할 수는 없습니다.

5개의 ma_1() 함수가 MA 값이 아닌 핸들을 반환하기 때문에 5개에 대해서는 작동하지 않습니다.

SmoothedMAOnBuffer() 함수에서 배열의 중요한 데이터의 시작 대신 prev_calculated 를 전달합니다. 이유는 무엇입니까? 거기에 최소 0을 전송해야 하며 최대값으로 Array_1에 저장된 MA 데이터의 계산 기간 에 따라 계산된 값을 전송해야 합니다.

어떤 색을 그릴지 선택 블록에 논리적 오류가 있습니다. 버퍼를 덮어씁니다. 단순히 괄호 안에 빈 값으로 채워진 버퍼를 빼낸 것입니다. 당신에게 조건이 확인되고 그것이 true에서 수행되어야 한다는 것은 어리석게도 대괄호에서 제외됩니다. 즉, 항상 실행됩니다. 이것은 위치가 명확하지 않을 때 브래킷을 배치하는 습관의 결과입니다.

Array_1 및 Array_2 - 계산된 버퍼가 아닌 이유는 무엇입니까?

일반적으로 많은 질문이 있습니다.

변수 값은 엄격하게 설정됩니다. 각 틱 에서 변수 val 의 값을 계산하는 이유는 무엇입니까?

OnInit()에서 주기 a와 val로 계산된 두 MA에 대해 두 개의 계산 버퍼를 만듭니다. 이 버퍼에서 값을 가져옵니다. 그러면 두 플랫폼 모두에서 작동합니다.

일반적으로 그는 아무 말도 하지 않으며, 해결책을 안다면 글을 쓰지도 않습니다.

표시기는 내 것이 아니며 iMAOnArray() 아래를 보지도 않았습니다. 전체 작업은 iMAOnArray()를 무언가로 바꾸는 것뿐입니다.

어떻게 되어야 하는지에 대한 실제 예를 들어주실 수 있습니까?

고맙습니다!

PS 핸들이 있는 MT5의 경우 주문
파일:
max.mq5  14 kb
 
Vitaly Muzichenko :

어떻게 되어야 하는지에 대한 실제 예를 들어주실 수 있습니까?

무엇의 작업 예? 4에서 지표, 5에서 작동? 그런 다음 4에서 완전히 작동하는 표시기를 제공하십시오.

또는 SmoothedMAOnBuffer() 함수로 작업하는 방법의 예?

 
Artyom Trishkin :

무엇의 작업 예? 4에서 지표, 5에서 작동? 그런 다음 4에서 완전히 작동하는 표시기를 제공하십시오.

또는 SmoothedMAOnBuffer() 함수로 작업하는 방법의 예?

mt4를 사용한 작업 예, 표준 iMAOnArray가 업데이트되고 있지만 SmoothedMAOnBuffer는 첫 번째 실행에서 정상이고 업데이트가 없습니다.

SmoothedMAOnBuffer() 함수 로 작업하는 예가 필요합니다.  

파일:
test.mq4  17 kb