2017-10-29 11 views
1

私は在庫データの周りに頭を抱えようとしており、それはPythonで実装されています。開始時に私はMACDインジケータをPython stockstatsライブラリに使用しています。Python Finance:シグナル戦略にmacdインジケータを使用する方法は?

私が知っておきたいことは、特定の株式の100個のOHLCエントリがある場合、購入するか販売するか保留するかにかかわらずMACD出力を使ってシグナルを生成する方法は?グラフでは視覚化することができますが、プログラミングの面ではどのように考えていますか?以下に示すサンプルコード:ここで

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は4つ以上のパラメータ[...、slowEMA_Period、fastEMA_Period、signalAveragingPeriod、appliedPrice、...]を使用して、インジケータラインの結果セットとなるものを決定します。個々のMACD構成ごとに、トレーディング戦略は異なるものになります。だから、コミュニティのメンバーに「私はいくつかのデータを持っているのですが、どうしたらいいのですか?」と尋ねる前に、プライマリリサーチにもっと時間を費やしてください。 – user3666197

+0

トレンドが弱気または強気ならば、MacDの価値はどうあるべきかに関する文書があります。私の質問は、データがあれば式を使用する方法です – Volatil3

+0

私は秘密を尋ねませんでした - 特定のインジケータがどのように応答するか、式が与えられたのですか他のソリューション以来、鋸はすべてのビジュアルでした – Volatil3

答えて

5

あなたがを行く:

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')) 

以下に示すように、それは出力を生成します。 。 。コメントの説明付き

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

関連する問題