기고글 토론 "20 MQL5에서의 매매 신호들" - 페이지 4

 

글을 작성해 주신 분께 감사드립니다!

하지 마세요 1CMaster가 조언하는 것은 말도 안되는 일입니다.

다른 작업을 수행하고 차트에 수직선을 표시하여 현재 상태가 아닌이 순간의 상태 (수직선이 어디에 있는지)를 보여주는 지표를 이동합니까?

 

코드는 좋은 가치가 있을 수 있지만 일부 지표는 중복됩니다:

BB 및 표준 편차 채널 - 동일합니다;

가격 , 돈치안 및 갤러거 채널 - 동일합니다;

어쨌든, 기사 주셔서 감사합니다 ...

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Properties - Documentation on MQL5
 

악어 신호 형성 오류

.....
      if(CopyBuffer(h_al,0,0,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,0,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,0,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- 조건을 확인하고 서명 값을 설정합니다.
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- 거래 신호 반환
   return(sig);
  }


인디케이터 라인의 이동을 고려하면 이러한 버퍼를 복사해야 하지만 여기서는 복사하지 않습니다.

둘째, 하나의 막대만 비교하는 경우, 즉 각 버퍼(라인)에 대해 하나의 값이면 충분한데 왜 두 개의 인디케이터 값을 복사해야 하나요?

AO의 신호 : 많은 데이터도 복사됩니다 (분석에 참여하지 않음).

     if(CopyBuffer(h_ao,1,0,20,ao_buffer)<20)
         return(0);
      if(!ArraySetAsSeries(ao_buffer,true))
         return(0); 

그리고 기사의 시작 부분에서 딸랑이를 제거하기 위해 0이 아니라 기록의 첫 번째 막대를 분석 할 것이라고 말했는데 왜 0 막대를 복사합니까?

우리는 리소스를 절약하지 않습니다 ....

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
olyakish:

악어 신호 형성 오류


인디케이터 라인의 이동을 고려하면 이러한 버퍼를 복사해야 하지만 여기서는 복사하지 않습니다.

둘째, 하나의 막대만 비교하는 경우, 즉 각 버퍼(라인)에 대해 하나의 값이면 충분한데 왜 두 개의 인디케이터 값을 복사해야 하나요?

AO의 신호 : 많은 데이터도 복사됩니다 (분석에 참여하지 않음).

그리고 기사의 시작 부분에서 딸랑이를 제거하기 위해 0이 아니라 기록의 첫 번째 막대를 분석 할 것이라고 말했는데 왜 0 막대를 복사합니까?

우리는 리소스를 절약하지 않습니다 ....



우선, 도움말에 명확하게 작성되어 있습니다.

Необходимо помнить, что смещение линии является чисто визуальным для отображения и значения в индикаторном буфере хранятся без смещения. 
При получении значений буфера функцией CopyBuffer() значение смещения никакого эффекта иметь не будет.

둘째, 데이터 복사에 약간의 실수가있을 수 있지만 작업의 요점에는 영향을 미치지 않습니다. 이 문서의 목적은 지표와 데이터를 올바르게 처리하는 방법을 보여주는 것입니다.

 

그런데 저는 개인적으로 이러한 구조를 사용하는데, 이 경우 함수의 데이터를 거래 쿼리에 직접 전달할 수 있습니다.

ENUM_ORDER_TYPE ind_01()
  {
   ENUM_ORDER_TYPE sig=WRONG_VALUE;

   if(IND01_handle==INVALID_HANDLE || IND01_handle==0)
     {
      IND01_handle=iAC(_Symbol,TF_01);
      return(WRONG_VALUE);
     }
   else
     {
      if(CopyBuffer(IND01_handle,1,0,AC_shift+3,IND01_buffer1)<AC_shift+3) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer1,true)) return(WRONG_VALUE);

      if(CopyBuffer(IND01_handle,0,0,AC_shift+1,IND01_buffer2)<AC_shift+1) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer2,true)) return(WRONG_VALUE);
     }

   if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0 && IND01_buffer1[AC_shift+2]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1)sig=ORDER_TYPE_SELL;
   else if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1 && IND01_buffer1[AC_shift+2]==1)sig=ORDER_TYPE_SELL;
   else sig=WRONG_VALUE;

   return(sig);
  }
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
sergey1294:

우선, 도움말에 명확하게 작성되어 있습니다.

둘째, 데이터 복사에 약간의 실수가 있었을 수 있지만 작업의 요점에는 영향을 미치지 않습니다. 이 문서의 목적은 지표와 데이터를 올바르게 처리하는 방법을 보여주는 것입니다.

예, 시각적 인 것은 사실이지만 거래를 입력 할 때 시각적 값을 지향하고 터미널의 메모리에있는 방식이 아니므로이를 고려해야합니다.

악어의 올바른 방법은 13×8, 8×5, 5×3(표준값)입니다.

int TradeSignal_17()
  {
   int sig=0;

   if(h_al==INVALID_HANDLE)
     {
      h_al=iAlligator(Symbol(),Period(),13,0,8,0,5,0,MODE_SMMA,PRICE_MEDIAN);
      return(0);
     }
   else
     {
      if(CopyBuffer(h_al,0,8,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,5,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,3,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- 조건을 확인하고 서명 값을 설정합니다.
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- 거래 신호 반환
   return(sig);
  }
 
olyakish:

예, 시각적인 것은 사실이지만 거래를 입력할 때 터미널 메모리에 있는 방식이 아니라 시각적인 값을 기준으로 하므로 이를 고려해야 합니다.

악어의 올바른 방법은 8에 13, 5에 8, 3에 5 (표준 값)입니다.

나는 말하지 않겠지 만 모든 사람이 오프셋으로 악어를 사용한다고 생각하지 않습니다. 따라서이 경우에는 오류가 없습니다. 당신은 그것을 추가 한 오프셋이 필요했고, 그것을 필요로하는 강철도 필요합니다. 다시 한 번 반복하겠습니다. 이 기사의 목적은 지표와 데이터를 올바르게 처리하는 방법을 보여주는 것이며, 얼마나 많은 양과 양을 얻는 것은 각 개인의 문제입니다.
 
sergey1294:
언급하지는 않겠지만 모든 사람이 오프셋 앨리게이터를 사용하는 것은 아니라고 생각합니다. 따라서 이 경우에는 실수가 없습니다. 오프셋이 필요했고 추가했으며이를 필요로하는 강철도 추가 할 수 있습니다. 이 기사의 목적은 지표와 데이터를 올바르게 다루는 방법을 보여주는 것이며, 얼마나 많은 양을 얻을지는 각 개인의 문제라는 점을 다시 한 번 반복하겠습니다.

참고...

보조지표 엘리게이터는 프랙탈 기하학 및 비선형 역학을 이용한 균형선(이동평균)의 조합입니다.

  • 파란색 선(악어의 턱) 은 차트 구성에 사용된 기간의 밸런스 라인입니다(13주 평활이동평균, 미래로 8바 이동 );
  • 빨간색 선(악어의 이빨)은 이보다 한 단계 낮은 의미 있는 기간의 균형선입니다(8평활이동평균이 미래로 5바 이동 );
  • 녹색 선(악어의 입술) 은 이보다 한 단계 낮은 의미 있는 기간의 균형선입니다(5평활이동평균이 미래로 3바 이동 ).


핵심 단어는 굵은 글씨로 표시되어 있습니다.

코드의 결과는 평균 분석 결과입니다.

제가 제안한 코드의 결과는 앨리게이터 라인 분석입니다.

 
학습에 정말 유용한 자료입니다.
 
저 같은 초보자에게 매우 유용합니다. 감사합니다.