import pandas as pd
import pandas_datareader.data as web
import ta
import matplotlib.pyplot as plt
from datetime import datetime
# Fetch historical data
def fetch_data(symbol, start, end):
df = web.DataReader(symbol, 'yahoo', start, end)
return df
# Calculate indicators
def apply_indicators(df):
# Moving Averages
df['SMA50'] = ta.trend.sma_indicator(df['Close'], window=50)
df['SMA200'] = ta.trend.sma_indicator(df['Close'], window=200)
# RSI
df['RSI'] = ta.momentum.rsi(df['Close'], window=14)
# MACD
macd = ta.trend.MACD(df['Close'])
df['MACD_diff'] = macd.macd_diff()
return df
# Identify entry points
def identify_entries(df):
conditions = [
(df['SMA50'] > df['SMA200']), # SMA50 above SMA200
(df['RSI'] > 50), # RSI above 50
(df['MACD_diff'] > 0) # MACD histogram positive
]
df['Entry'] = (conditions[0] & conditions[1] & conditions[2])
return df
# Plotting
def plot_data(df):
plt.figure(figsize=(14, 7))
plt.plot(df['Close'], label='Close Price')
plt.plot(df['SMA50'], label='50-Day SMA')
plt.plot(df['SMA200'], label='200-Day SMA')
# Highlight entry points
entries = df[df['Entry']]
plt.scatter(entries.index, entries['Close'], color='g', label='Entry Point', marker='^', s=100)
plt.title('XAUUSD Entry Points')
plt.legend()
plt.show()
# Main function
def main():
symbol = 'XAUUSD=X'
start = datetime(2020, 1, 1)
end = datetime.now()
df = fetch_data(symbol, start, end)
df = apply_indicators(df)
df = identify_entries(df)
plot_data(df)
return df
# Run the script
df = main()
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.
Feragatname
Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.