주식 자동매매 시스템

파이썬을 이용한 주식 자동매매 시스템

이미지
파이썬을 이용한 주식 자동매매 시스템 INDEX 환경구축 키움증권 API - 연결테스트 키움증권 API - 계좌정보 조회 키움증권 API - 주문 키움증권 API - 종목정보 가져오기 포트폴리오 - 종목, 업종별 자산 포트폴리오 한국투자증권 API API reference 키움 OpenAPI+ 개발가이드 한국투자증권 OpenAPI 다운로드 및 가이드 Design https://www.design-seeds.com/in-nature/succulents/cacti-color-2/ https://create.piktochart.com/dashboard

[R 함수] aggregate, apply 사용 방법



  • Googlevis
    • R과 Google chart API의 인터페이스를 제공한다.
    • 실습을 위한 데이터를 얻기 위해 설치했다. 아래와 같이 설치하면, Fruits와 같은 데이터셋을 사용할 수 있다.
      install('googlevis')
      library('googleVis')
      Fruits
      

  • aggregate(x, by, function, ... ) 
      
      > banana <- Fruits[Fruits$Fruit == 'Bananas',]
      
      Fruits 데이터 셋에서, Banana의 판매 수익을 알고 싶을 경우 어떻게 할 것인가? 
      아래와 같이 'Bananas' 를 직접 Hard coding해서, 'Bananas'의 정보를 얻을 수는 있을 것이다. 만약, 문자가 변경되어 'Oranges', 'Apples' 를 보고 싶다면? 매번 변경해줘야 한다.   이런 Hard coding은 하지 않도록 해야한다.  
      aggregate는 Group By 같은 기능을 통해 이런 문제해결에 도움을 주는 함수다.  

        aggregate (함수를 적용할 대상~기준, 데이터 , 함수)
        데이터를 기준에 따라 분할하고 각각에 대한 요약 통계를 계산(함수를 이용해) 한 다음 결과를 편리한 형식으로 반환한다. (Splits the data into subsets, computes summary statistics for each, and returns the result in a convenient form)
          ## Default S3 method:
          
          aggregate(x, ...)
          
          ## S3 method for class 'data.frame'
          aggregate(x, by, FUN, ..., simplify = TRUE, drop = TRUE)
          
          ## S3 method for class 'formula'
          aggregate(formula, data, FUN, ...,
                    subset, na.action = na.omit)
          
          ## S3 method for class 'ts'
          aggregate(x, nfrequency = 1, FUN = sum, ndeltat = 1,
                    ts.eps = getOption("ts.eps"), ...)
          
          
          # 과일별 판매수익 합계
          >  aggregate(Sales~Fruit, Fruits, sum)
              Fruit Sales
          1  Apples   298
          2 Bananas   260
          3 Oranges   287
          
          
          Sales~Fruit : 기준이 되는 대상은 Fruit이다. Fruit의 종류별로 Grouping이 된다. 
                        Sales는 Group으로 나뉘어진 과일들의 데이터 중 함수를 적용할 대상이된다.
          Fruits : 위에서 설치한 데이터셋이다.
          sum : 마지막 인자로 sum함수를 주었기 때문에, 과일별로 Salse 값의 sum을 계산하게 된다. 
          
          
          
          # 연도별 이익 합계
          >   aggregate(Profit~Year, Fruits, sum)
            Year Profit
          1 2008     44
          2 2009     61
          3 2010     30
          
          
          
          # 과일별, 연도별 이익 합계
          >   aggregate(Profit~Year+Fruit, Fruits, sum)
            Year   Fruit Profit
          1 2008  Apples     20
          2 2009  Apples     32
          3 2010  Apples     13
          4 2008 Bananas      9
          5 2009 Bananas     16
          6 2010 Bananas     10
          7 2008 Oranges     15
          8 2009 Oranges     13
          9 2010 Oranges      7
          
          
          
          # 년별 월별 세금을 계산 ( 총 판매액(Sales) - 총 수익(Profit) * 0.1 )
          > dfFee <- aggregate((Sales-Profit)*0.1~substr(Date,6,7)+Year,Fruits,sum)
          > names(dfFee) <- c('Year','Date','Fee')
          Year Date  Fee
          1   12 2008 23.5
          2   12 2009 23.7
          3   12 2010 23.8
          
          


          • apply(array, margin, function ... )
            array 또는 matrix에 margin에 따라 function을 적용한 결과를 Vector 나 array로 리턴한다.
            margin값으로 1행을 의미, 2열을 의미, c(1, 2)행과열 를 설정할 수 있다.
            > df2 <- Fruits[, c(4:6)]
            
            > rowSums(df2)
            196 222 178 192 170 186 188 196 162
            # df2 matrix를 행별로 sum 연산
            > apply(df2,1,sum)
            196 222 178 192 170 186 188 196 162 
            
            
            



          이 블로그의 인기 게시물

          Linux에서 CSV파일 사용방법

          R에서 외부 데이터 이용하기 (Excel, csv)