MQL5でSQLiteを使う方法|EA設計と実装ガイド
この記事の結論 sqlite-mql5で重要なのは、SQLiteを売買シグナルの代替ではなく、EAの状態管理・検証ログ・取引履歴の保存に使う設計です。MQL5では、データベース接続をOnInitで準備し、OnTickでは短い読み書きだけを行い、OnDeinitで確実に解放する構造が扱いやすくなります。取引判断、注文前チェック、注文送信、約定後ログを分離すると、バックテストとフォワードテストの差を確 […]
この記事の結論 sqlite-mql5で重要なのは、SQLiteを売買シグナルの代替ではなく、EAの状態管理・検証ログ・取引履歴の保存に使う設計です。MQL5では、データベース接続をOnInitで準備し、OnTickでは短い読み書きだけを行い、OnDeinitで確実に解放する構造が扱いやすくなります。取引判断、注文前チェック、注文送信、約定後ログを分離すると、バックテストとフォワードテストの差を確 […]
この記事の結論 MQL5でmachine-learning-tradingを設計する目的は、売買判断を感覚的な条件分岐ではなく、検証可能な特徴量とスコアに分解することです。機械学習モデルは、エントリーを保証する仕組みではなく、トレンド、ボラティリティ、価格変化などを数値化して売買候補を絞り込むために使います。EAでは、OnInitでインジケータハンドルを作成し、OnTickでCopyBufferか […]
この記事の結論 MQL5でPythonをバックテスト設計に組み込む目的は、MetaTrader 5側のEA検証だけでは見えにくい分析、集計、シグナル比較を外部で行いやすくすることです。Pythonは売買ロジックの検証、特徴量の整理、パラメータ比較、結果分析に向いています。一方で、Python上の検証結果とMetaTrader 5のストラテジーテスター結果は一致しない場合があります。実運用を想定する […]
この記事の結論 MQL5でPythonによるデータ分析をEA設計に組み込む場合は、MQL5側とPython側の役割を分離することが重要です。MQL5のEAは価格取得、注文前チェック、注文送信、ポジション管理を担当し、Pythonは集計、特徴量作成、検証、シグナル補助を担当します。Pythonの分析結果をそのまま売買判断に使うのではなく、MQL5側でスプレッド、ロット、証拠金、既存ポジション、取引時 […]
この記事の結論 MT5 Python APIは、PythonからMetaTrader 5端末へ接続し、価格データ取得、銘柄情報取得、ポジション確認、注文送信などを行うための連携手段です。EA本体をMQL5で動かす方法とは異なり、Pythonスクリプトが外部から端末へ命令を送る構造になります。実装では、端末接続、ログイン状態、銘柄選択、取引条件、注文前チェック、注文結果の確認を分けて扱う必要がありま […]
この記事の結論 MQL5とPythonを連携する設計では、EA本体にすべての判断を詰め込むのではなく、MQL5側とPython側の責務を分けることが重要です。MQL5側は価格取得、注文前チェック、注文送信、ポジション管理を担当し、Python側は分析、特徴量計算、外部モデル処理、検証補助を担当すると設計しやすくなります。ただし、Python連携は通信遅延、プロセス停止、データ不整合、実運用環境の違 […]
この記事の結論 MQL5のEAを高速化する目的は、OnTick内の無駄な処理を減らし、注文判断・ポジション管理・ログ処理を安定して実行することです。EAの速度改善では、インジケータハンドルの再作成、過剰なCopyBuffer、全履歴走査、不要なログ出力を優先して見直します。速度だけを追うと売買条件やリスク制御が壊れやすいため、処理をモジュール化して検証しやすい構造にする必要があります。バックテスト […]
この記事の結論 MQL5のmulti-thread-optimizationは、EAのパラメータ検証を複数のテスターエージェントに分散して進める設計テーマです。高速化だけを目的にすると、ロジックの状態管理、乱数、ファイル入出力、ログ出力、最適化条件の差で結果が不安定になりやすくなります。EA側では、各テストパスが独立して実行される前提で、グローバル状態、キャッシュ、外部ファイル、取引条件の扱いを整 […]
この記事の結論 MQL5でインジケータの性能を改善する基本は、毎回すべてのバーを再計算せず、必要な範囲だけを更新することです。カスタムインジケータでは、OnCalculate の prev_calculated を使うと、前回計算済みのバーを判定しやすくなります。インジケータバッファ、配列方向、ハンドル管理、CopyBuffer の取得件数を適切に扱うことで、チャート表示やバックテストの負荷を抑え […]
この記事の結論 MQL5のメモリ管理では、インジケータハンドル、動的配列、履歴データ、ログ出力、状態変数を整理して扱うことが重要です。EAはティックごとに処理されるため、OnTick内で不要なハンドル作成や大きな配列再確保を繰り返すと、動作が重くなりやすくなります。基本方針は、OnInitで初期化し、OnTickでは必要な値だけ取得し、OnDeinitで後処理を行う設計です。バックテストで軽く動く […]