Как бы я go о кодировании этого кроссовера? - PullRequest
0 голосов
/ 19 апреля 2020

Итак, я пытаюсь закодировать конверсионную линию и пересечение базовой линии для al go, и вот что у меня есть, хотя я не уверен, что это правильно:

import pandas_datareader as data
import datetime
import numpy as np
import yfinance as yf

start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2020, 1, 1)
d = data.DataReader("BA", 'yahoo', start, end)

#CREATING INDICATORS
# the conversion line
nine_period_high = d['High'].rolling(window=9).max()
nine_period_low = d['Low'].rolling(window=9).min()
d['Conversion_Line'] = (nine_period_high + nine_period_low)/2

#the base line
twenty_six_period_high = d['High'].rolling(window=26).max()
twenty_six_period_low = d['Low'].rolling(window=26).min()
d['Base_Line'] = (twenty_six_period_high + twenty_six_period_low)/2

#Creating Crossover

d['Conversion_Base_cross'] = np.NaN
d['Conversion_Base_cross'] = np.where((d['Conversion_Line'].shift(1) <= d['Base_Line'].shift(1)) &
                                      (d['Conversion_Line'] > d['Base_Line']), 1, d['Conversion_Base_cross'])
d['Conversion_Base_cross'] = np.where((d['Conversion_Line'].shift(1) >= d['Base_Line'].shift(1)) &
                                      (d['Conversion_Line'] < d['Base_Line']), -1, d['Conversion_Base_cross'])

Так что в основном это означает, что пересечение линии пересечения над базовой линией равно 1, а пересечение линии пересечения под базовой линией равно -1. Когда он запускается, код не имеет ошибок, хотя это не означает, что он написан правильно. Я просто хотел знать, кажется ли это правильным или есть лучший способ кодировать это. СПАСИБО

...