df['ma20'] = df['close'].rolling(window=20, min_periods=1).mean() 코드를 보면 df['close'] 종가를 기준으로 20일 동안(window=20) 데이터를 묶어 평균을 구하는 mean() 함수를 사용했습니다. 이렇게 코드를 만들면 20일 동안 종가(close)의 평균 데이터가 ma20이라는 열의 df에 추가되며 마찬가지로 ma60이라는 열은 60일 동안 종가의 평균값이 저장됩니다.
이후 df를 출력해서 ma20이 제대로 생성되었는지 확인해 보겠습니다(참고로 다음 출력 결과는 매도 함수에서 확인했던 메리츠화재(000060)의 데이터가 아니라 DB하이텍(000990)의 가격 데이터입니다).
open high low close volume ma20 ma60
19850104 5930 5930 5930 5930 109 5930.000000 5930.000000
19850105 5912 5912 5912 5912 0 5921.000000 5921.000000
19850107 5875 5875 5875 5875 0 5905.666667 5905.666667
19850108 5838 5838 5838 5838 0 5888.750000 5888.750000
19850109 5838 5838 5838 5838 0 5878.600000 5878.600000
... ... ... ... ... ... ... ...
20210726 65500 65600 63500 63700 776842 63175.000000 57861.666667
20210727 64200 64700 62800 63300 658833 63305.000000 57995.000000
20210728 62700 63300 60300 61800 1228966 63275.000000 58106.666667
20210729 62300 62700 60500 61300 778988 63220.000000 58205.000000
20210730 61600 61800 60600 61000 499480 63240.000000 58298.333333