2017-10-29 27 views
1

저는 주식 데이터 주위에 머리를 쓰려고 노력 중이며 파이썬으로 구현되었습니다. 시작시 나는 MACD 인디케이터를 파이썬 stockstats 라이브러리에 사용하고 있습니다.Python Finance : 신호 전략에 macd 표시기를 사용하는 방법은 무엇입니까?

특정 주식에 대해 100 개의 OHLC 항목이있는 경우 MACD 출력을 사용하여 구매 또는 판매 중이거나 보유 여부에 관계없이 신호를 생성하는 방법은 무엇입니까? 그래프에서는 시각화 할 수 있지만 프로그래밍면에서 어떻게 아이디어를 얻을 수 있습니까? 샘플 코드는 다음과 같다 :

import pandas as pd 
from stockstats import StockDataFrame as Sdf 
from pandas_datareader import data, wb 

data = pd.read_csv('data.csv') 

stock = Sdf.retype(data) 
print(stock.get('pdi')) 

그것은 출력을 생성 아래 주어진 : 여기

0  0.000000e+00 
1  -8.951923e-08 
2  1.758777e-07 
3  -3.844324e-08 
4  -2.217396e-07 
5  -3.893329e-07 
6  -2.373225e-07 
7  -5.082528e-07 
8  -8.260595e-07 
9  -1.099751e-06 
10  -1.429675e-06 
11  -1.211562e-06 
12  -8.230303e-07 
13  -5.163039e-07 
14  -4.979626e-07 
15  -4.777865e-07 
16  -6.217018e-07 
17  -1.145459e-06 
18  -1.461550e-06 
19  -1.744250e-06 
20  -1.677791e-06 
21  -1.820319e-06 
22  -2.024092e-06 
23  -1.958413e-06 
24  -2.450087e-06 
25  -2.805521e-06 
26  -3.443776e-06 
27  -4.047889e-06 
28  -4.839084e-06 
29  -5.208106e-06 
      ...  
1410 4.856951e-06 
1411 6.075773e-06 
1412 9.159968e-06 
1413 9.985022e-06 
1414 1.069234e-05 
1415 1.140865e-05 
1416 1.136520e-05 
1417 1.156541e-05 
1418 1.065633e-05 
1419 9.176497e-06 
1420 9.275813e-06 
1421 8.254755e-06 
1422 7.583274e-06 
1423 7.301820e-06 
1424 6.959007e-06 
1425 6.292826e-06 
1426 8.411427e-06 
1427 8.746155e-06 
1428 1.112640e-05 
1429 1.299290e-05 
1430 1.398810e-05 
1431 1.441297e-05 
1432 1.509612e-05 
1433 1.462091e-05 
1434 1.436198e-05 
1435 1.390849e-05 
1436 1.419959e-05 
1437 1.554140e-05 
1438 1.884861e-05 
1439 2.163656e-05 
Name: macd, Length: 1440, dtype: float64 
+0

잘 설명과 함께, 당신은 ** 설치하는 방법 ** 무역 실행 전략을 실제로 아이디어를 제공하기 위해 지역 사회를 부탁드립니다. 태양 아래있는 누군가가 왜 당신에게 그런 보석을 무료로 줄까요? MACD는 무료로 말할 수 있습니다. MACD는 표시기 집합의 결과 집합을 결정하는 [..., slowEMA_Period, fastEMA_Period, signalAveragingPeriod, appliedPrice, ...] 매개 변수를 4 개 이상 사용합니다. 각 개별 MACD 구성, 무역 전략은 방법이 다를 것입니다. 따라서 커뮤니티 회원들에게 "데이터가 있습니까, 무엇을해야합니까?"라고 묻기 전에 기본 연구에 더 많은 시간을 할애해야합니다. – user3666197

+0

트렌드가 약세이거나 강세 인 경우 MacD 가치에 대해 문서화하고 있습니다. 내 질문은 내가 데이터를 누른 다음 수식을 사용하는 방법입니다. – Volatil3

+0

내가 어떤 비밀을 묻지 않았어 - 특정 지표가 반응하는 방법, 수식이 주어집니다 .. 내가 어떻게 다른 해결책 이후 텍스트에서 가치를 가질 수 있는지 알지 못했습니다. 톱은 모든 비주얼이었습니다 – Volatil3

답변

5

당신이 이동합니다. . . 의견

import pandas as pd 
from stockstats import StockDataFrame as Sdf 

data = pd.read_csv('data.csv') 

stock = Sdf.retype(data) 

signal = stock['macds']  # Your signal line 
macd = stock['macd']   # The MACD that need to cross the signal line 
#            to give you a Buy/Sell signal 
listLongShort = ["No data"] # Since you need at least two days in the for loop 

for i in range(1, len(signal)): 
    #       # If the MACD crosses the signal line upward 
    if macd[i] > signal[i] and macd[i - 1] <= signal[i - 1]: 
     listLongShort.append("BUY") 
    #       # The other way around 
    elif macd[i] < signal[i] and macd[i - 1] >= signal[i - 1]: 
     listLongShort.append("SELL") 
    #       # Do nothing if not crossed 
    else: 
     listLongShort.append("HOLD") 

stock['Advice'] = listLongShort 

# The advice column means "Buy/Sell/Hold" at the end of this day or 
# at the beginning of the next day, since the market will be closed 

print(stock['Advice']) 
+0

고마워요. 이제이 예제 워크 플로를 사용하여 내 자신의 지표와 전략을 연구 할 수 있습니다. – Volatil3