코드.

void OnTick()
{
   double my_cci = Get_CCI(_Period,14); 
   Print(my_cci);
}



double Get_CCI(ENUM_TIMEFRAMES timeframe,int ma_period)
{
   double arr_cci[]; 
   
   int CCIretv = iCCI(_Symbol,timeframe, ma_period, PRICE_TYPICAL); 
   
   ArraySetAsSeries(arr_cci, true); 
   
   CopyBuffer(CCIretv,0,0,3,arr_cci); 
   
   return NormalizeDouble(arr_cci[0],2); 
      
}

동영상.

 

 

 

 

 

연관 

 

 

Indicator : CCI. Commodity Channel Index

개요. 정의. where, Pt = (High + Low + Close)/3. Typical Price 로 칭함. SMA(Pt) : Pt의 이동평균. : Pt 의 mean absolute deviation. 즉, Pt - SMA(Pt) 의 절대값의 이동평균. 0.015 로 나누기 하는 것 : CCI..

igotit.tistory.com

 

copybuffer 상세 

 

 

Documentation on MQL5: Timeseries and Indicators Access / CopyBuffer

//+------------------------------------------------------------------+ //|                                              TestCopyBuffer3.mq5 | //|                        Copyright 2009,

www.mql5.com

 

상위 

 

메타트레이더 5. 체계정리. 활용법/지식

MetaTrader 5 메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보 1. 메타트레이더 5 사용법. 2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성하기

igotit.tistory.com

 

 

 


첫등록 : 2019년 4월 28일 

최종수정 : 2021.03.01

 

본 글 단축주소 : https://igotit.tistory.com/2148

 


 

Posted by 리치굿맨

댓글을 달아 주세요

  1. 카피버퍼

    카피버퍼 인자에

    0,0,3은 무슨 의미죠??
    0인건 잘 이해 안되도 그냥 납득이 되는데요.

    int count부분에 count로 3을 넣었다는 건 어떤 의ㅣ민가요??

    2021.02.17 12:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 본문 내용 중에 copybuffer 상세 설명 링크 추가했습니다. 0,0,3 에서 2번째 0은 indicator buffer(상세설명 링크의 그림 참조) 의 인덱스 0(시간적으로 최신값에 해당)부터 3개를 복사하라는 의미입니다.

      2021.03.01 16:33 신고 [ ADDR : EDIT/ DEL ]
    • arr_cci[]를 지역 변수로 선언하셨으니


      [1] [2] 이런 표현 못 쓰는거 아닌가요??

      바깥에다가 변수 선언해야 하는 것 아닌가요??

      2021.03.01 19:57 [ ADDR : EDIT/ DEL ]
    • 함수외부 다른 곳에서도 double arr_cci[] 변수 활용하려는 경우에는 전역변수 선언하는게 맞고요..

      위 코드에서는 지역변수 선언된 함수내부에서 사용하는 경우의 활용예 입니다.

      2021.03.01 20:22 신고 [ ADDR : EDIT/ DEL ]
  2. 카피버퍼

    3이면

    3개까지 저장하는건가요?

    어차피 arr_cci[0]만 불러오는데 뭐하러 3까지 저장하시는 거예요??? 진짜 몰라서 질문드려요

    2021.02.17 12:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 넵 3이면 3개를 복사하는거 맞고요. [0] 만 받으면 현재 시점의 데이터이므로 봉이 완성되지 않은 데이터 이다 보니 코드에서 활용시 완성된 봉인 직전값 [1] 과 [2] 를 이용하려고 3개 받았습니다. cci 의 증가 감소 등을 계산하기 위한 목적이기도 합니다. [1] - [2] 이런용도로 사용해요~

      2021.03.01 16:37 신고 [ ADDR : EDIT/ DEL ]
  3. asf

    price_close가 아니라 PRICE_TYPICAL 해야하는 것 아닌가요?

    cci정의상 그게 더 부합하지 않는지??

    2021.02.28 15:38 [ ADDR : EDIT/ DEL : REPLY ]