3개의 바 이후 제로 크로싱 MACD
결과 1 - 6 / 6

실: 3개의 바 이후 제로 크로싱 MACD

  1. #1
    나는 첫 번째 indior를 시도하고 있으며 노련한 MQL 코더의 도움에 감사드립니다.

    아래 스크립트는 샘플 MACD 스크립트에서 파생되었으며 MACD가 0선 위의 3개의 연속 막대 후에 0선을 교차했을 때 위쪽 화살표를 배치하고 마찬가지로 MACD가 3개의 연속 막대가 있는 0선 아래를 교차하는 경우 아래쪽 화살표를 배치하도록 수정되었습니다. 영하.

    문제가 있습니다. 화살표가 전혀 표시되지 않습니다.

    내가 잘못된 방향으로 가고 있는 것을 볼 수 있다면 큰 도움이 될 것입니다.

    감사

    #property copyright 저작권 © 2007, Systrader
    #속성링크 http://www....
    //---- 실내 설정
    #property indior_separate_window
    #속성 indior_buffers 4
    #property indior_color1 아쿠아
    #property indior_color2 레드
    #property indior_color3 그린
    #property indior_color4 레드
    #속성 indior_width1 2
    //---- 실내 매개변수
    extern int FastEMA=12;
    extern int SlowEMA=26;
    extern int 신호SMA=9;
    //---- 실내 버퍼
    이중 Macd[];
    이중 신호[];
    //---- 카운터
    정수 카운터;
    // ------------------ -------------------
    //| 커스텀 인디오 초기화 기능 |
    // ------------------ -------------------
    int 초기화()
    {
    //---- 그리기 설정
    SetIndexStyle(0,DRAW_HISTOGRAM);
    SetIndexStyle(1,DRAW_LINE);
    SetIndexArrow(2,233);
    SetIndexArrow(3,234);
    SetIndexDrawBegin(1,SignalSMA);
    IndiorDigits(숫자 1);
    //---- 실내 버퍼 매핑
    SetIndexBuffer(0,Macd);
    SetIndexBuffer(1,Signal);
    //---- DataWindow 및 내부 하위 창 레이블의 이름
    IndiorShortName(MACDZC( FastEMA , SlowEMA , SignalSMA ));
    SetIndexLabel(0, MACD);
    SetIndexLabel(1, 신호);
    //---- 초기화 완료
    반환(0);
    }
    // ------------------ -------------------
    //| 이동 평균 수렴/발산 |
    // ------------------ -------------------
    정수 시작()
    {
    정수 제한;
    int counted_bars=IndiorCounted();
    //---- 마지막으로 계산된 막대가 다시 계산됩니다.
    if(counted_barsgt;0) counted_bars--;
    limit=막대-계산_막대;
    //---- 첫 번째 버퍼에서 계산된 macd
    for(int i=0;ilt;한계;i )
    Macd[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
    //---- 2번째 버퍼에서 카운트된 신호 라인
    for(i=0;ilt;한계;i )
    Signal[i]=iMAOnArray(Macd,Bars,SignalSMA,0,MODE_SMA,i);

    //---- macd의 3-바가 0보다 크거나 작은 경우 카운트
    카운터=0;

    //이전 3개의 마디를 확인할 수 있도록 3번째 마디에서 시작
    for(int j=3; jlt;limit; j )
    {
    if (Macd[j] lt; 0) 카운터--;
    if (Macd[j] gt; 0) 카운터 ;
    }
    //0선 위로 3개의 막대가 보이면 카운트
    if (카운터 gt; 2) {
    SetIndexStyle(2,DRAW_ARROW);
    ObjectCreate(UpAlert, OBJ_ARROW, 0, 높음[j],0);
    ObjectSet(UpAlert, OBJPROP_ARROWCODE, 74);
    }
    //0선 아래에 3개의 막대가 보이면 카운트
    if (카운터 lt; -2)
    {
    SetIndexStyle(3,DRAW_ARROW);
    ObjectCreate(DnAlert, OBJ_ARROW, 0, 낮음[j],0);
    ObjectSet(DnAlert, OBJPROP_ARROWCODE, 74);
    }

    //---- 완료
    반환(0);
    }
    // ------------------ -------------------

  2. #2
    2 첨부 파일 안녕하세요, David 저는 MT4 프로그래밍에 대한 지식이 없습니다. 나는 귀하의 코드 macdzc에서 macdzc_1에 따라 약간 수정했습니다. 즉, 1 막대 이후에 제로 교차 MACD를 의미합니다. 맞는지 확인해 주시겠어요? 큰 도움을 주셔서 감사합니다. 또한, 메인 차트에 표시되는 이 indior를 업데이트하는 데 친절한 도움을 요청하고 싶습니다. 즉, 메인 차트에 MACD 크로스가 있는 것처럼 MACD 크로스가 1개 바 이후에 제로 크로싱되는 경우 메인 차트에 위아래 화살표만 표시된다는 의미입니다. .mq4 저는 중국인이고 영어가 서투릅니다. 오해가 있으시면 언제든지 연락주세요. 미리 감사드립니다. 최고의 소원 토마스 첸 Nov11,2011
    https://www.koreaforex.kr/attachment...5337090737.mq4
    https://www.koreaforex.kr/attachment...4340169428.mq4

  3. #3
    안녕하세요 하노버 MACDZC의 멋진 인디오입니다. 대단히 감사합니다! 이 MACDZC를 아래와 같이 업데이트할 수 있습니까? MACD가 0선 위의 연속 막대 1개 이후에 0선을 교차했을 때 위쪽 화살표를 배치하고 마찬가지로 MACD가 0 아래 연속 막대 1개와 함께 0선 아래를 교차하는 경우 아래쪽 화살표를 배치합니다. 0,1 또는 2개의 막대가 0선을 넘은 다음 화살표 등을 표시하는 것을 의미합니다. 사전에 대단히 감사합니다. BR, 토마스 C
    Quote 원래에 의해 게시 됨 ;
    안녕하세요 Systrader 제 생각에 당신은 실내와 물체를 혼동한 것 같습니다. 화살표를 indiors로 플롯하려는 경우 버퍼를 정의해야 합니다. 이를 달성하기 위해 아래 첨부 파일에 추가한 코드 행을 참조하십시오(”//-- 추가됨” 주석을 찾으십시오). 배열이 버퍼에 연결되면('SetIndexBuffer'에 의해) 배열을 채우기만 하면 차트에 값이 표시됩니다. ArrayInitialize는 배열이 EMPTY_VALUE로 시작하도록 합니다. 즉, 각 막대에 대해 화살표가 표시되지 않습니다....
    Quote 원래에 의해 게시 됨 ;
    안녕하세요 Systrader 제 생각에 당신은 실내와 물체를 혼동한 것 같습니다. 화살표를 indiors로 플롯하려는 경우 버퍼를 정의해야 합니다. 이를 달성하기 위해 아래 첨부 파일에 추가한 코드 행을 참조하십시오(”//-- 추가됨” 주석을 찾으십시오). 배열이 버퍼에 연결되면('SetIndexBuffer'에 의해) 배열을 채우기만 하면 차트에 값이 표시됩니다. ArrayInitialize는 배열이 EMPTY_VALUE로 시작하도록 합니다. 즉, 각 막대에 대해 화살표가 표시되지 않습니다....

  4. #4
    Hi Systrader 내 생각에 당신은 실내와 물체를 혼동한 것 같습니다. 화살표를 indiors로 플롯하려는 경우 버퍼를 정의해야 합니다. 이를 달성하기 위해 아래 첨부 파일에 추가한 코드 행을 참조하십시오(”//-- 추가됨” 주석을 찾으십시오). 배열이 버퍼에 연결되면('SetIndexBuffer'에 의해) 배열을 채우기만 하면 차트에 값이 표시됩니다. ArrayInitialize는 배열이 EMPTY_VALUE로 시작하도록 합니다. 즉, 각 막대에 대해 화살표가 표시되지 않습니다. 아마도 화살표를 수용하기 위해 ”#property indior_buffers 4”를 설정했기 때문에 화살표가 indiors로 표시되기를 원한다고 가정했습니다. 내가 한 방식대로 ”#property indior_separate_window” 문 때문에 화살표가 MACD 창에 표시됩니다. 가격 창에 표시하려면 ”#property indior_chart_window”를 사용하여 별도의 indior를 생성해야 합니다. 이를 수행하는 다른 방법이 있을 수 있습니다. 저는 숙련된 MQL4 프로그래머가 아닙니다. indiors 대신 객체로 화살표를 생성하려면 고유한 이름을 가진 객체를 생성해야 합니다. 아이디어를 얻으려면 내 Plot_News indior에서 ObjectCreate, ObjectSet 및 ObjectSetText 문을 살펴보십시오. 어쨌든 이것이 시작하는 데 도움이 되기를 바랍니다. 행운을 빕니다 데이비드
    https://www.koreaforex.kr/attachment...0172472180.mq4
    https://www.koreaforex.kr/attachment...1727834694.mq4

  5. #5
    안녕 데이비드, 와우 .. 이것은 빠른 답장이었고 덕분에 훌륭하게 작동합니다 .. 내가 원하는 대로. 당신 말이 맞아요 .. 나는 사물에 약간의 확신이 있지만 연습이 치유되지 않는 것은 없습니다. 감사합니다 Nat

  6. #6
    안녕하세요, David MACD 라인이 0 라인을 교차할 때 가격과 시간을 표시하는 macdzc_1에 대한 팝업 알림을 추가할 수 있습니까? 가능하면 MTF 버전으로 업데이트
    anvancd에서 대단히 감사합니다. 최고의 소원 Thomas C Oct11,2011

게시 권한

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
쿠키 정책
쿠키 정책: koreaforex 웹사이트는 쿠키를 사용하며, 웹사이트를 사용자는 쿠키 사용에 동의하는 것입니다. 자세한 정보는 '쿠키 공개' 를 읽어주십시오.