PythonでMACD線を描画、さらにリアルタイムでテクニカル分析をしている。
そのソースコードも載ってる。
勉強になった!
これでSpectrometr separateインジケータをインポートできれば目標としているフーリエ解析逆指値トラリピEA開発にぐいっと近づく!
このサイトに載っているソースコードに
redのdata['macd']がblueのdata['macd_signal']を上回った時に現在の相場の20pips上に買いの逆指値を0.01ロット、
20pips下に売りの逆指値を0.01ロット入れるpythonのソースコードを付加して書いてください。
とChatGPTに質問してみたら・・・
YahooFinanceから取得したUSD/JPYの為替相場データを取得し、MACDテクニカル分析を行うPythonのソースコードは以下のようになります。
import numpy as np
import pandas as pd
import yfinance as yf
import talib data = yf.download(tickers = ' USDJPY=X', # 通貨ペア
period = '6mo', # データ取得期間
interval = '1d', # データ表示間隔 )
# 引数情報
fast_period = 10
# 短期指数移動平均線(EMA)の期間
slow_period = 25
# 長期指数移動平均線(EMA)の期間
signal_period = 8
# シグナル (MACDの指数平滑移動平均線)の期間
macd, macd_signal, macd_hist = talib.MACD(data['Close'],
# データ取得元
fast_period,
# 短期EMAの期間
slow_period,
# 長期EMAの期間
signal_period)
# シグナルの期間
# データ追加
data['macd'] = macd data['macd_signal'] = macd_signal import mplfinance as mpf
# データ分析範囲(直近6ヶ月分を指定)
period = 30 * 6 data = data.tail(period)
# グラフ可視化
graph = [ mpf.make_addplot(data['macd'], panel=2, color='red'), mpf.make_addplot(data['macd_signal'], panel=2, color='blue'), ] mpf.plot(data,
# データ
type='candle',
# グラフの種類('candle', 'line'等が指定可能)
volume=True,
# 出来高の表示有無
mav=(5,15), # 移動平均線(短期移動平均線の日数、長期移動平均線の日数)
style='yahoo', # グラフスタイル addplot=graph,
# 連結するグラフ情報
figratio=(12,9), # グラフ縦横の比率 )
redのdata['macd']がblueのdata['macd_signal']を上回った時に現在の相場の20pips上に買いの逆指値を0.01ロット、
20pips下に売りの逆指値を0.01ロット入れるpythonのソースコードを付加して書いてください。
# redのdata['macd']がblueのdata['macd_signal']を上回った場合
if data['macd'][-1] > data['macd_signal'][-1]:
# 現在の相場の20pips上に買いの逆指値を0.01ロット入れる
buy_stop_price = data['Close'][-1] + 0.0020
print('Buy stop order:', buy_stop_price, '0.01 lots')
else:
# 現在の相場の20pips下に売りの逆指値を0.01ロット入れる
sell_stop_price = data['Close'][-1] - 0.0020
print('Sell stop order:', sell_stop_price, '0.01 lots')
if data['macd'][-1] > data['macd_signal'][-1]:
# 現在の相場の20pips上に買いの逆指値を0.01ロット入れる
buy_stop_price = data['Close'][-1] + 0.0020
print('Buy stop order:', buy_stop_price, '0.01 lots')
else:
# 現在の相場の20pips下に売りの逆指値を0.01ロット入れる
sell_stop_price = data['Close'][-1] - 0.0020
print('Sell stop order:', sell_stop_price, '0.01 lots')
このコードは、MACDのラインとシグナルラインを比較して、MACDがシグナルラインを上回った場合に買いの逆指値を、下回った場合に売りの逆指値を設定します。現在の相場の20pipsを逆指値に加えるには、単純に
data['Close'][-1]
に0.0020を足すことで実現できます。また、ロット数は0.01固定で設定しています。と返答があった。マジか?