2017-10-29 4 views
1

Ich versuche, meinen Kopf über Lagerdaten und seine Implementierung in Python zu bekommen. Beim Start verwende ich MACD Indikator in Python stockstats Bibliothek.Python Finance: Wie Macd Indikator für Signale Strategie verwenden?

Ich möchte wissen, wenn ich 100 OHLC-Einträge einer bestimmten Aktie habe, wie kann ich MACD-Ausgabe verwenden, um Signale zu erzeugen, ob ich kaufen oder verkaufen oder halten sollte? In Graph kann man visualisieren, aber in Bezug auf die Programmierung, wie bekomme ich die Idee? Beispielcode unten angegeben:

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

Es Ausgang erzeugt, wie unten angegeben:

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

Nun, fragen Sie die Gemeinschaft tatsächlich eine Idee zu geben, wie eine ** Trade Execution Strategie zur Einrichtung **. Warum sollte dir jemand unter der Sonne ein solches Juwel kostenlos geben? Nun, ich kann Ihnen kostenlos sagen, dass der MACD mehr als 4 Parameter verwendet, [..., slowEMA_Period, fastEMA_Period, signalAveragingPeriod, appliedPrice, ...], die bestimmen, was der resultierende Satz von Indikatorzeilen und für Bei jeder einzelnen MACD-Konfiguration wird sich die Handelsstrategie deutlich unterscheiden. Also verbringen Sie mehr Zeit mit Ihrer Primärforschung, bevor Sie Community-Mitglieder fragen "Ich habe ein paar Daten, was ich mit ihnen anfangen soll?" – user3666197

+0

Es gibt Dokumentationen, was ein MacD-Wert sollte, wenn ein Trend bearish oder bullish ist. Meine Frage war, dass, wenn ich eine Daten habe, dann, wie man die Formel – Volatil3

+0

verwendet, habe ich kein Geheimnis gefragt - Wie ein bestimmter Indikator reagiert, Formeln sind gegeben .. Ich bekam nicht, wie kann ich Wert im Text haben, da die anderen Lösungen ich sah waren alle Visuals – Volatil3

Antwort

5

Hier gehen Sie . . . mit Erläuterungen in den Kommentaren

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

Danke eine Tonne. Jetzt kann ich diesen Beispielworkflow nutzen, um an meinen eigenen Indikatoren und Strategien zu arbeiten. – Volatil3