Pythonを使ってFXの自動売買を行うことで、プログラミング初心者でも比較的簡単に始められるます。Pythonは直感的で読みやすく、多くのライブラリが無料で利用可能です。また、TensorFlowやscikit-learnなどの強力な機械学習ライブラリがあり、FX自動売買システムにAIを統合することで、より高度な分析と取引が実現できるはずです。
AIを取り入れた自動売買システムは、市場の複雑な動きを精緻に解析し、リアルタイムで最適な取引判断を下し、高リターンを目指せるはずと信じています。感情に左右されず、自らの設計したルールに従って客観的に取引を行うことができます。もう、24時間監視する必要がなくなり、自由な時間を作り出すことができます。

早く自分の設計したルールとAIをつかって、自動売買ができるようになりたいです。

今回は、Pythonのプルグラムにパスワードを扱う際のリスク回避の組み込みだチュー。
セキュリティ対策を行う
Pythonでシークレットキーや機密情報を直接コードにハードコーディングするのはセキュリティ等の観点からリスクを非常に伴うプログラミンで、推奨されません。代わりに、以下のような方法を用いることで安全に鍵などの機密情報を扱うことができます。
1. 環境変数を利用する
環境変数にシークレットキーを設定し、Pythonコード内で取得する方法です。
設定方法
LinuxやMac、Windowsのコマンドラインで環境変数を設定します。
export SECRET_KEY=’your-secret-key’
①Pythonコード内で取得する方法
import os
secret_key = os.getenv(‘SECRET_KEY’)
print(secret_key)
②`.env`ファイルを使用する
`.env`ファイルを使って環境変数を管理し、Pythonコード内で読み取る方法。このアプローチでは、`python-dotenv`というライブラリがよく使われます。今回は、これを使います。
③. 外部設定ファイルを使用する
YAMLやJSON形式の設定ファイルを使って機密情報を管理する方法です。これにより、コードベースと設定情報を分離できます。
◦ 設定ファイルの作成
例えば、`config.yaml`というYAMLファイルを作成し、シークレットキーを記述します。
secret_key: your-secret-key
※ Pythonコード内で使用する場合
import yaml
# YAMLファイルを読み込む
with open(‘config.yaml’, ‘r’) as file:
config = yaml.safe_load(file)
print(secret_key)
◦ 必要なライブラリのインストール
pip install pyyaml
④ 秘密管理ツールを使用する
AWS Secrets Manager、HashiCorp Vault、Djangoの機密管理など、専用の秘密管理ツールと連携する方法です。セキュリティのためにはこれらのツールとの連携が強力で安心です。
以下はAWS Secrets Managerでシークレットを取得する例です。
pip install boto3“`
◦ Pythonコード内で使用する場合
import boto3
import os
from botocore.exceptions import NoCredentialsError, PartialCredentialsError
def get_secret():
secret_name = “my_secret_name”
region_name = “us-east-1”
# Create a Secrets Manager client
session = boto3.session.Session()
client = session.client(
service_name=’secretsmanager’,
region_name=region_name
)
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
# シークレットの値を取得
secret = get_secret_value_response[‘SecretString’]
return secret
except (NoCredentialsError, PartialCredentialsError) as e:
print(“AWSにアクセスするための資格情報がありません”)
return None
# 使い方
secret_key = get_secret()
print(secret_key)
これらの方法を使用することで、Pythonコード内に直接シークレットキーを記述することなく、安全に機密情報を扱うことができます。
今回は、②`.env`ファイルを使用して、セキュリティ対策を取ります。
python-dotenvの利用
python-dotenvライブラリのインストール
FXで利用するPythonにpython-dotenvライブラリをインストールします。
PS C:\Users\*******> python.exe -m pip install python-dotenv
.envファイルの作成
.envファイルを、プロジェクトのルートディレクトリに作成し、以下のように環境変数を定義します。
ファイル名は”.env”です。
# あなたのアウントのID・パスワード・サーバー
MT5_ACCOUNT_ID=*******
MT5_PASSWORD=***********
MT5_SERVER=XMTrading-MT5 3
Pythonコードの修正
import os
import MetaTrader5 as mt5
from dotenv import load_dotenv
# .envファイルの読み込み
load_dotenv()
# アカウント、パスワード、サーバー情報の読み込み(あなたのブローカーの情報を使用)
account_id = os.environ.get("MT5_ACCOUNT_ID") # あなたのアカウントIDを取得
password = os.environ.get("MT5_PASSWORD") # あなたのパスワードを取得
server = os.environ.get("MT5_SERVER") # あなたのサーバー名を取得
# MetaTrader 5 の初期化
if not mt5.initialize():
print("MetaTrader 5 の初期化に失敗しました")
mt5.shutdown()
exit()
# アカウントにログイン
login_success = mt5.login(int(account_id), password, server)
if login_success:
print("ログインに成功しましたチュー")
else:
print("ログインに失敗しましたチュー")
# 接続を確認するために口座情報を取得
account_info = mt5.account_info()
if account_info is None:
print("口座情報の取得に失敗しましたチュー")
else:
# 口座情報を表示
print(f"口座番号: {account_info.login}")
print(f"残高: {account_info.balance}")
print(f"証拠金: {account_info.margin}")
# MetaTrader 5からの切断
mt5.shutdown()
ログインに成功しましたチュー
口座番号: 11111eeTttt
残高: 100000.0
証拠金: 0.0

前回と同じように、口座番号、残高、証拠金の情報が正しく表示されたらOK!チュー。

できました。これで安心して、トレードの口座にログインすることができます。

これで、Pythonを使って外部からメタトレーダー5の取引きができるようになったチュー。次はMetaTrader 5のMetaEditorとPythonを連携させてプログラムを動かすチュー。


コメント