본문 바로가기
주식 자동매매 프로그램 제작/지표 알고리즘

[C# 주식자동매매제작] 보조 지표 제작 - MACD oscillator

by 타임박스 2022. 5. 11.
반응형


✔ C# 보조지표 만들기 - MACD oscillator



이번에는 MACD oscillator 지표를 제작해봅시다.

이전 포스트에서 TA-Lib의 API를 활용하여 제작합니다.

아직 TA-Lib 패키지를 설치하지 않았다면 아래 포스트에서 설치부터!!

2022.05.11 - [주식 자동매매 프로그램 제작/지표 알고리즘] - [C# 주식자동매매제작] 보조지표 알고리즘 - TA-Lib 설치

 

[C# 주식자동매매제작] 보조지표 알고리즘 - TA-Lib 설치

✔ C# 자동매매 - 보조 지표 만들기 TA-Lib 패키지 설치하기 TA Lib 라이브러리에서는 많은 보조지표들이 이미 구현되어있습니다. 대부분의 자동매매에서는 TA Lib은 필수로 사용되고 있으며 설치방

timeboxstory.tistory.com

MACD주식 봉의 종가 기준 데이터들을 계산하여 추출합니다.

그래서 우리는 종가 데이터를 TA-Lib의 macd함수에 넣어주면 끝!!

주의할점은 배열의 데이터가 많으면 많을수록 정확한 값을 가지더라구요

배열의 길이가 200정도로 하니까 키움증권에서 보여지는 값과 일치하는 것을 확인하였습니다.

 

● MACD 계산 코드

/// <summary>
/// MCAD 계산
/// </summary>
/// <param name="prices">종가 배열 </param>
/// <returns></returns>
public static float MACD(int [] prices)
{
    if (prices.Length < 200)
        return 0;
        
    double[] costArr = prices.Select<int, double>(i => i).ToArray();

    int outBegIdx;                                  //변환후 버려지는 배열 수
    int outNBElement;                               //생성된 자료의 배술 수
    double[] outMACD = new double[prices.Length];   //생성된 MACD 값이 저장되는 배열
    double[] outMACDSignal = new double[prices.Length]; //생성된 MACD signal 저장되는 배열
    double[] outMACDHist = new double[prices.Length];  //생성된 MACD Hist 저장되는 배열

    TicTacTec.TA.Library.Core.Macd(0, prices.Length - 1, costArr, 12, 26, 9, out outBegIdx, out outNBElement, outMACD, outMACDSignal, outMACDHist);

    double oscill = outMACD[outNBElement - 1] - outMACDSignal[outNBElement - 1]; // 마지막 값 Oscillator 확인

    return (float)oscill;
}

 

감사합니다.

 

반응형

댓글