商品概要
コミュニティ(0)
MT4 bot -Python連携- インジケーター・電子書籍
MT4 bot -Python連携-
MT4のデータ(4本値、MAなどの各種インジ)をPythonに渡し、またPythonで解析した結果をMT4チャート画面に表示させます
お気に入り
0
販売実績:
0本
レビュー:
カテゴリ:
提供方法:
インジケータ
販売開始日:
2023/11/25
更新日時:
2023/11/29
バージョン:
1.11
ご利用可能会社:

日本

フォロー 0 フォロワー 6
出品者えいめ
出品者の最終ログイン時間:2024年9月18日 21:14:47
出品者情報をもっと見る
無料

この商品は「無料で試用」できる 試用版となっています。 試用版ということで インジケータの機能利用に制限はありませんが、以下の動作を行います。

1)利用期間に期限があります。期限は MT4の ”ターミナル” の ”エキスパート”タブ内に記載されます。

2)チャートにインジケータを設定後 10分間利用できます。(10分後にインジケータは動作を停止しますが、再度起動いただくと再び10分間利用できます。) 

3)インジケータの動作中は チャート画面の左側に「試用中」であることを示す文字が表示されます。



機能について

このツールでは 高度な知識を必要とせず MT4とPython間での連携を実現させます。利用者はPython側のスクリプトをご用意いただくだけで、MT4側の以下の表の機能を利用することができます。

このツールは、以下のような使い方をされることを想定しています。

  • インターネット上の各種情報をPythonで収集し、トレード中のMT4 チャート画面へリアルタイムに情報を表示させる。
  • MT4が保持している4本値や移動平均線の値を このツールにて出力し Pythonに渡すことで、Python側でAI処理させるなどし その結果を再度 MT4側の画面に渡し表示させる。 (表示例 エントリー指示など)
  • 手動で備忘録などを記載し、チャート画面に常時表示させる。

などなど


〔 機能一覧 〕



”Pythonと連携する”と うたっていますが、Pythonに限らず 一般的な外部アプリの利用が可能です。MT4の外部にあるアプリやスクリプトから、MT4を操作するためのツール(=bot)となります。 



 図1 このツールが動作する環境を示します。図中「MT4 bot」が本ツールをあらわします。

まずは 登場人物、関係者の紹介として 全体像の説明です。

上の図1にあるように メタトレーダ(=MT4)上のインジケータとして動作する本ツール(=MT4 bot)は、MT4の外で動作するPythonなどのスクリプトやアプリと連携して動作させるためのものです。

連携にあたっては、中間に2つのCSVファイルを介して やりとりをおこないます。なお、CSVファイルとは データとデータの間をカンマ( , )あるいは改行で区切ったテキストファイルとお考え下さい。文字コードは Shift JIS になります。


図2 このツールの動作(シーケンス)を示します。①から⑤までの流れが1つのサイクルとなり、以降、これを繰り返します。

連携するための CSVファイルの1つは、いま どちらが 何の処理をしているのかという状況を示したり、本ツールに指示するコマンドを渡すための「コントロールファイル」。もう1つは コマンドの詳細(表示させる文字列)や本ツールが処理した結果(各種インジケータの値)を渡すための 「データファイル」になります。

両者間の ”やりとり” の開始は、PythonなどのMT4からみた外部アプリ/スクリプト側よりの指示から開始されます。本ツールは(現時点のバージョンでは)常に受け身で動作します。
図2のように Python等からの指示を受け、その結果を画面やデータファイルに対し処理を行います。このツールが処理を完了させた後は、その旨を コントロールファイルに記載することで Python等に処理のイニシアティブを渡します。


2つのテキストファイル(=csvファイル)

次のように利用します。

  • コントロールファイル(ファイル名: eimCsvExec_ctrl.csv)に現在の状況や 指示コマンドを記述します。
    指示の内容は 次の2つの項目をセットで記述し 相手に渡します。
    1つは Python側とMT4ツール側のどちらが 相手に指示や情報を伝えようとしているのかを示すもので、これをステータスコードと呼びます。「まだ(Python側で)指示書き込み中」、「MT4側での処理頼む」などの状況を互いに伝えるためのコードになります。いわゆる セマフォとしての役割を果たすと理解ください。
    2つめは 指示の内容そのもので、「文字列を描画せよ」などの コマンドになります。

  • 具体的な指示の内容、ここでは文字列の描画方法は、データファイル(ファイル名: eimCsvExec_data.csv)に記述して相手(この場合はMT4側のツール)に渡します。具体的な内容は、描画位置(x,y座標)、文字サイズ、文字カラー、描画する文字列の5つを記載します。ファイル内の各行が1つの文字列の描画指示となり、現時点ではいくつでも、何行でも文字列の描画指示をだすことができます。

具体的な指示の例

  • コントロールファイル:
    同梱のファイルには、あらかじめ「110,100」をセットしています。
    最初の「110」がステータスを表し、この状態ではpython側が準備中であることをあらわします(詳細は後述)。2つめの「100」は、文字列の描画を指示するコマンドをあらわします。
    そのため、このままMT4でこのツールを起動しますと、「110,100」を読み取りに行きますが なにも起こりません。ツールの起動後に コントロールファイルをテキストエディタで開き(手動で大丈夫です!)、1つめの「110」を「190」に変えて、そのままファイルを上書き保存してください。「190」は MT4のツールが指示を受け取り解釈をおこない 与えられた処理をおこないます。そのためMT4のチャート画面には データファイルにて細かく設定して位置、文字サイズおよび色で文字列を描画されます。
    現在は プロトタイプ版のため MT4側のツールから コントロールファイルへのステータス書き換えは行っていませんので、あなたが データファイルの内容を書き換えるたびに チャート画面にその内容が反映されます。いろいろお試しください。

  • データファイル:
    指示内容によって記載するデータは異なります。

    (1)文字列描画の機能
    データの最初の値はX座標(ピクセル)、以降順に、Y座標(ピクセル)、文字列の色指定、文字サイズ(pt)、文字列となります。これら5つのデータをひとかたまりとして扱い 1つの行に記載します。



    1行に1つの文字列描画指示を記述できます。上の記載例ですと 5行ありますから 5つの文字列を描画する指示になります。


    文字列の削除
    描画の指示をおこなった「行」を空行にして再度指示を出してください。何も記述せず改行にした状態にして、コントロールファイルに「190,100」を記述しておくと 描画した文字列が削除されます。この方法ですと MT4における”オブジェクト”として削除されます。同様にチャート画面の文字列を消す方法としては、データの文字列の部分だけを空欄(=座標や文字サイズ、色などを残した状態)にしてもチャート画面では文字列が消えますが ”オブジェクト”としては残っています。ただし、ツール終了時には 削除されます。


    (2)MT4のデータをファイル出力する機能
    MT4が保持しているデータや、インジケータが計算した値をファイル出力する機能を実装しています。使用可能なコマンドは以下のリストとなります(文字列描画も再掲しています)。

    • 100 : 文字列の表示

    • 201 : 4本値(現在の値のみ)

    • 202 : 4本値

    • 203 : 移動平均線

    • 204 : ボリンジャーバンド

    • 205 : 一目均衡表

    • 206 : MACD

    • 207 : RSI

    • 208 : ストキャスティクスコマンド

    それぞれのインジケータによって必要なパラメータ数が異なります。
    以下に、コマンドごとの指示方法を記載します。

    1行目 : (通貨ペア),(時間軸) [ex]GBPJPY-cd,H1
    2行目 : (現在価格から出力する数) [ex]100
    3行目以降 : (コマンドによって変化;以下を参照)

    • 201 現在足の4本値(上記の1行目のみを記述。2行目以降は不要)

    • 202 4本値:(上記の1,2行目を記述。)

    • 203 4本値+移動平均線:(メインラインを計算をする平均期間),(移動平均シフト),(移動平均メソッド(0-3)=ENUM_MA_METHOD列挙の値を指定) [ex] 25,0,0 *移動平均線は3本まで描画可能/適用価格はPRICE_CLOSE=終値に固定

    • 204 4本値+ボリンジャーバンド:(メインラインを計算をする平均期間),(バンドシフト),(標準偏差1){,(標準偏差2)}{,(標準偏差3)} [20,0,5,1,2,3] *標準偏差は3組まで描画可能

    • 205 一目均衡表:(転換線期間),(基準線期間),(先行スパン期間) [ex]9,26,52

    • 206 MACD:(ファーストEMA期間),(スローEMA期間),(シグナルライン期間),(適用価格=ENUM_APPLIED_PRICE列挙の値を指定) [ex]12,26,9,0

    • 207 RSI:(平均期間),(適用価格=ENUM_APPLIED_PRICE列挙の値) [ex]14,0

    • 208 ストキャスティクス:(%K期間),(%D期間),(スローイング),(平均化メソッド),(価格フィールド(0:Low/High または 1:Close/Close)) [ex]5,3,3,0,0

    コマンド「202」以降は、過去の履歴をファイル出力しています。データの最大数は MT4保持している分までとなりますが、実際に出力する数は 指定し絞り込むことができます。


    データの出力例

    コマンド 203の 移動平均線を出力した際の例です。
    1行目には出力した情報が何であるのかを示すタイトル行です。(アプリ名は旧名称)3行目がカラム(項目)名となっています。データ数(=No)とサーバー時間に続いて、4本値(=OHLC)と、移動平均線を出力しています。4本値は いつも一緒に出力されます。


    具体的な設定例

    まずは手動で指示を与えてみましょう。
    以下の通りにファイル内容を書き換えるだけで 所定のデータを出力してきます。

    このツールをMT4で起動した後、所定のフォルダ(MT4フォルダの\MQL4\Filesフォルダ)に以下の順に2つのファイルを配置してください。
    ここでは上で示した移動平均線を3本出力することを指示してみます。出力する移動平均線は、それぞれ短期移動平均線25日、中期75日、長期120日にしました。

    さきにコントロールファイルを置いてしまいますと、処理を開始してしまいますので、最初にセットするのはデータファイルの方になります。
    (正しい手順では コントロールファイルを 所定のデータを置くことで データファイルの準備中には 動作しないようにします)

    画像
    データファイル。移動平均線3本の出力を指示する内容

    1行目には 通貨ペア名、時間軸を記述。なお通貨ペア名は お使いのMT4(FX会社)によって異なる場合があります。ご確認のうえセットしてください。この例の場合は ポンド円の1時間足を指定します。
    2行目には出力する データ個数。ここでは100個出力します。0を記述するとMT4が保持している時間のすべてを出力します。
    3行目以降は 出力させたい移動平均線のプロパティになります。それぞれ左から、期間、シフト数、および 移動平均メソッド(SMAとかEMAのこと)になり、ここではSMA(=単純移動平均)とします。
    ファイル名は、「eimMT4Bot_data.csv」としてください。拡張子は.csvです。

    画像
    コントロールファイル。実行を指示する内容。

    データファイルを保存できたら、続いてコントロールファイルをセットします。こちらは1行のみ、2項目だけです。
    最初の「190」はステータス情報です。意味は、百の位が”Python側が書き込みをしている”状態であることをあらわし、十の位は”Python側の処理は完了”、一の位は ここでは意味なしです。
    2つめの項目は、コマンドです。ここでは、移動平均線の出力を指示する”コマンド203番”を記述します。最後に、ファイルを「eimMT4Bot_ctrl.csv」として保存します。


    コントロールファイルのステータス詳細

    • まずPythonなどのMT4以外の外部スクリプトをリーダー役、MT4で動作する本ツールをフォロワーと呼ぶこととします。基本的にフォロワーはリーダーからの指示によって動作します。現時点ではフォロワーが自発的に動作する仕様とはしません。

    • ステータスは、コントロールファイルの1行目の1つ目の数字であらわします。3ケタの数字で表現し、それぞれのケタ位置に意味をもたせています。

    画像
    ステータスコードは セマフォとしての役割
    • 3ケタの数字のうち 1番左側の数字(百の位のケタ)は、コントロールファイルを最後に触ったのがどちらであるかをあらわします。リーダーは「1」、フォロワーは「2」をセットします。

    • 左側から2番目の数字(十の位のケタ)は、”データを用意している最中”などの作業中かどうか示します。この値が「1」の場合は 作業中であることをあらわすこととします。この値を読み取って 相手が作業中であった場合には コントロールファイルの読み込み以外の動作をおこなわないようにします。相手側が、コントロールファイルとデータファイルを占有している占有モードとなります。

    • 左側から3番目の数字(一の位のケタ)は、(主にフォロワーからの)エラーコードになります。正常に処理が行われた場合は 「0」となります。リーダー側は特に使用する必要はありませんので 通常は「0」をセットしてください。

    • 例1)ステータス:110の場合
      この場合、百の位が1なので Python側が書き込んでいます。十の位も1ですので データファイルの準備などの作業中であることを示します。したがって、この数字「110」の意味は、Python側がMT4側に指示する準備をしているので、MT4側は待っててね、というものになります。

    • 例2)ステータス:190の場合
      さきほどと比べますと、十の位が9になりました。この9はPython側での作業終了をしめします。ですので意味は、Python側がMT4側に指示する準備が完了したので、MT4側での作業実施よろしくね、となります。


      プロパティ設定




      • このツールがコントロールファイルを確認する間隔を指定できます。
      • 文字列の表示機能で 文字を表示する位置を指定できます。 デフォルトは 左上になります。



      配布ファイルについて


      • 動作はMT4のみ対応しています。
      • 配布ファイル内に csvファイル(コントロールファイルとデータファイル)をサンプルで納めています。所定のフォルダに配置し、本ツールを起動することで 動作させることができます。







      無料
      商品概要
      コミュニティ(0)
      人気商品ランキング
      おすすめ商品(キャンペーン商品)

      GogoJungleを初めてご利用する方へ商品のご利用まではかんたん3ステップ!

      GogoJungleでは、会員様向けに、あなたの投資生活を豊かにするサービスをご用意しております。また、商品のご購入は通常会員様に限られさせていただいております。今すぐ会員登録をして、Gogojungleを活用してみませんか!

      01
      ユーザー情報を入力し会員登録
      02
      案内に従い購入
      03
      マイページからダウンロード
      商号 株式会社ゴゴジャン
      金融商品取引業の登録番号 関東財務局長(金商)第1960号
      加入協会 一般社団法人 日本投資顧問業協会
      商号 株式会社ゴゴジャン
      金融商品取引業の登録番号
      関東財務局長(金商)第1960号
      加入協会 一般社団法人
      日本投資顧問業協会
      金融庁日本投資顧問業協会証券・金融商品あっせん相談センター証券取引等監視委員会

      Copyright © 2024 GogoJungle Inc. All Rights Reserved.