CyberChaos(さいばかおす)

プログラミング言語、トランスパイラ、RPA、ChatGPT、データマイニング、リバースエンジニアリングのための忘備録

PythonでMACD線を描画・リアルタイム分析

2023-03-12 20:18:28 | python
 
【FX×Python】MACDによるシストレ実践|外国為替相場のリアルタイムテクニカル分析・自動売買支援

【FX×Python】MACDによるシストレ実践|外国為替相場のリアルタイムテクニカル分析・自動売買支援

「PythonでMACDを用いたFXのテクニカル分析を実践したい」「システムトレードにテクニカル分析を適用しFX買い・売りシグナルを自動取得したい」このような要望にお応えします

DXCEL WAVE | AI・機械学習・データサイエンス・アナリティクス・RPA自動化・デジタルマーケティング・フィンテック等の最新デジタル技術を幅広く配信

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')
 
このコードは、MACDのラインとシグナルラインを比較して、MACDがシグナルラインを上回った場合に買いの逆指値を、下回った場合に売りの逆指値を設定します。現在の相場の20pipsを逆指値に加えるには、単純にdata['Close'][-1]に0.0020を足すことで実現できます。また、ロット数は0.01固定で設定しています。
 
と返答があった。マジか?


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。