500円EAの紹介動画と、WebRequestの解説。例:口座認証の実行、経済指標ニュースの取得、プロトレーダーのミラートレード、AIの売買によるMT4トレード【MQL4講座】
はい、どーも、まさやんです。
本記事は、ドル円1分足で動作するスキャルピング系EAの500円販売記念のプロモーション記事として、前回の記事をボリュームアップした内容となります。
また、動画では【MQL4講座】WebRequestを使用すれば実現可能という内容で、以下のシステムの構築方法について触れていますので、MQL4を学んでいる方にはきっと役に立つ内容となりますので、動画のご視聴よろしくお願いします。
■WebRequestで実現可能なシステム
・口座認証の実行
・経済指標ニュースの取得
・プロトレーダーのミラートレード
・AIの売買によるMT4トレード
今回販売するEA「「Scalping in London and New York for note」は、2024年12月4日にnoteのページにて販売を開始いたしました。
本EAはスキャルピングの中でも最も攻撃的な順張りのピラミッティングの手法を取っており、非常に攻撃的なEAに仕上がっています。
勝つときは一気に勝ちますが、負けるときは大きく負けます。
その為、相場が合わない時は稼働を止めるなど、半裁量トレード向きのEAとなります。
ロジックは1年前に無料配布した「Scalping in London and New York_M1_USDJPY」のnote版になります。
無料版のScalping in London and New York M1 USDJPYのロジックはそのままに、週末クローズの時間を指定できるよう改良しました。
■2016年1月から2023年12月までのバックテスト結果
https://fx.reform-network.net/wp-content/uploads/2023/12/StrategyTester2016_M1.htm
2023年はドローダウンが発生していましたが、今年2024年の7月以降に成績が改善してきました。
500円のEAを購入検討の方は、下記リンクよりnoteの購入ページへお進みください。
https://note.com/aimjey/n/n10405ada4f7d
500円のEAに有効期限はありません。
ただし、何かの事情、例えばFX会社による制限とかで停止する可能性はありますが、その場合、有効期限を長めにして再配布したいと思います。
また、note限定版に、新たな取り組みとしてWeb認証機能の追加を行いました。
Web認証は、ゴゴジャンも導入している機能で、リアル口座とデモ口座でそれぞれ1口座だけ動作するようにするシステムです。
必ずデモ口座とリアル口座1つでなければいけないという決まりはありません。
購入者が再販売したり無断配布したりするのを防ぐ意味が強いです。
Web認証を行うにはMT4の関数WebRequestを使用するか、wininet.dllを通じてHTTPリクエストを送信する方法の2通りがあります。
wininet.dllを使用する場合は、DLLの使用を許可するにチェックを入れる必要があります。
この方法はMT4の標準機能であるWebRequestを回避するための一般的な手法の一つです。
ゴゴジャンはこの方式を採用しています。
今回、私はDLL方式ではなくWebRequestを使用する方法を採用しました。
理由は、DLL方式には以下のリスクがあるからです。
1、データを通信するサイトを制限できないため、悪意のあるサーバーにデータが送信される可能性がある。
2、システムへの侵入やデータ漏洩のリスクが生じる可能性がある。
信頼できる配布元のEAやインジケーター(例えばゴゴジャンなど)であれば、一定のセキュリティが確保されていると考えられるため比較的安心です。
しかし、配布元が不明な場合や信頼性が低い場合、プログラム内に悪意のあるコードが含まれている可能性はゼロではありません。
一方、WebRequestを利用することで以下のメリットがあります。
1、ユーザーに「許可するURL」を明示的に設定してもらうことで、情報漏洩のリスクを軽減できる。
2、特定の信頼できるサーバーとの通信に限定できるため、安全性を確保しやすい。
なお、MT4に保存されている情報(例:口座情報、パスワードなど)について、不正に取得される懸念を持つ方もいるかもしれませんが、MT4のログインパスワードは適切に暗号化されており、正規の方法ではEAやインジケーターから取得することはできません。
また、MQL4/MQL5ではログインパスワードそのものにアクセスできないため、通常のEAやインジケーターではパスワードを抜き取ることは不可能です。
ただし、DLLを使用する場合は注意が必要です。
DLLに悪意のあるコードが含まれていた場合、ログイン情報が不正に取得されるリスクがあります。
そのため、DLLを使用する場合は、信頼できる開発元のものを利用することが重要です。
WebRequestの活用例
・口座認証の実行
・経済指標ニュースの取得
・プロトレーダーのミラートレード(ミラーリング)
・AIの売買判定結果を取得してMT4で発注
など、さまざまな可能性があります。
この中で比較的導入が簡単な方法としてミラートレードがあります。
ミラートレードはコピートレードとも呼ばれ、プロのトレーダーやEAによるトレードをそのまま自動でコピーして取引するシステムのことです。
私個人がミラートレードのサービスを提供することはありませんが、ビジネスパートナー様との業務提携の際に、こうしたサービスを提供する可能性はあります。
ビジネスパートナー募集に関しては、前回の動画をご覧ください。
考えられるサービスとして、複数の開発者に協力してもらい、EAの売買サインをミラートレード用のサーバーに送信する。
利用者はサブスクなどの月額課金精度で登録し、専用のEAを使用してコピーしたいEAの売買シグナルを受信してMT4で発注する。
EAを買い切りで購入した場合、使わなくなった際にコストが無駄になってしまうことがあります。
一方、サブスクリプション制の課金方法なら、月額料金で柔軟に利用できるため、とてもお得ですね。
なお、ミラートレード自体は違法ではありませんが、日本国内でミラートレードを提供する場合、金融庁の登録が必要となります。
今回導入したWeb認証は初めての試みとなり、動作確認の意味も含めてのモニター価格500円でのご提供となります。
この様な観点から、お手を煩わせてしまいますが、WebRequestを許可する項目にチェックを入れ、以下のURLを登録して下さい。https://mt4.reform-network.net
収集するデータには、個人を特定できる情報は含まれません。
noteのIDと口座番号(どこのFX会社かは分からない)とメールアドレスです。
収集したデータは厳重に管理しておりますので、ご安心ください。
なお、EAプログラムのカスタマイズ及びサポートについては、投資助言・代理業の登録が必要とされ、法令によりバグ不具合以外のバージョンアップは禁止されております。
そのため、カスタマイズの要望をいただいても、対応することができません。
ゴゴジャン(GogoJungle)は、金融庁から投資助言・代理業の登録を受けているので、ゴゴジャンで販売しているEAに関してはカスタマイズは可能です。
https://www.gogojungle.co.jp/users/626040/products
裁量トレードを希望される方には、インジケーター版をご用意しておりますので、概要欄のリンクより商品ページへとお進みください。
ゴゴジャンでインジケーター版を購入。
https://www.gogojungle.co.jp/tools/indicators/48466
今回noteで500円で販売するEAについては、バグ不具合の修正のみ行いますのでよろしくお願いします。
バグ不具合等の連絡用に、プロパティ設定でメールアドレスの登録が出来ます。
メールアドレスを未入力でも動作しますが、不安な方は連絡の取れるメールアドレスを入力してください。
収集したメールアドレスに対し、営業メール等は致しません。
バグが見つかった場合、メールの他 noteやXで告知します。
noteの購入ページより最新版を再度ダウンロードして頂ければと思います。
【Web認証について】
購入者様とEAの口座を紐づけする意味で、noteのアカウントIDの入力は必須としております。
適当なnoteIDでEAを動かすこともできますが、メンテナンスの際に動かなくなりますので、必ず購入時のnoteIDのご入力をお願いします。
noteIDを変更された場合、お手数ですが新しいnoteIDをお知らせください。
口座は自動更新されライブ口座とデモ口座それぞれ一つ、合計2つの口座が自動登録されます。
新しい口座でMT4にEAをセットするとデータが上書きされ、古い口座番号ではトレードが停止します。
【WebRequestの設定方法】
本EAを動作させるには、WebRequestの設定が必須です。
正しく設定されていない場合、以下のようなメッセージが表示されます。
「WebRequestが許可されていません。https://mt4.reform-network.net にアクセスできる設定になっているか確認してください。」
【設定手順】
MT4の「ツール」メニューから「オプション」を開く。
「エキスパートアドバイザー」タブを選択。
「WebRequestを許可するURLリスト」にチェックを入れる。
「新しいURLを追加」をクリックし、以下を入力:https://mt4.reform-network.net
Enterキーを押して登録。
この設定により、ウェブサーバーとMT4間でデータ通信が行えるようになります。
WebRequestの仕組みの解説と次回予告
最後に、今回実装したWebRequestについて、プログラマーの視点から少し解説し、本日の動画を締めくくりたいと思います。
次回からは新シリーズとして、「FXトレーダー対決!まさやん VS ChatGPT 勝つのはどっち?」というテーマで動画を制作していく予定です。
FXトレーダー歴17年、EA・インジケーター開発歴4年の私、まさやんがChatGPTと対談形式で討論し、さまざまなトピックに切り込んでいきますので、ぜひお楽しみに!
それでは「EAクリエイターなら知っておきたいWebRequestの処理」について、詳しく見ていきましょう。
WebRequestとは?
WebRequestは、MT4における関数の一つで、外部のサーバーと通信を行う際に使用します。
通常のEA開発ではあまり使用する機会がありませんが、口座情報の認証や外部データとの連携を必要とする場合に非常に有効です。
具体的には、以下のようなプロセスが必要になります。
MT4側の処理: WebRequestを用いて必要なデータを外部サーバーに送信します。
サーバー側の処理: サーバー上で受信したデータを保存し、必要に応じて処理結果を返します。
私の場合、サーバー側の処理にはPerlを使用しましたが、通常はPHPを使用するのが一般的です。
【Perlを選んだ理由】
Perlは現在ではほとんど使われなくなった言語ですが、20年前、ガラケーが主流だった時代にはよく使われていました。
当時、私は専業アフィリエイターとしてウェブサイトや掲示板を運営しており、Perlを用いて数多くのシステムを構築していました。
その経験を活かし、今回のサーバー処理もPerlで実装しています。
Perlはすでに利用されていない過去のプログラミング言語となりますので、これから新たにシステムを作る場合は、PHPを使用することをおすすめします。
【アクセス負荷対策の重要性】
MT4からサーバーにデータを送信する際、ティックごとにアクセスしてしまうとDoS攻撃(サービス拒否攻撃)とみなされる可能性があります。
DoS攻撃とは、大量のアクセスを特定のサーバーに集中させ、サーバーをダウンさせるサイバー攻撃の一種です。
私が使用しているレンタルサーバーのMixhostでは、DoS攻撃を検知するとセキュリティ機能が作動し、負荷を軽減する仕組みがあります。
しかし、連続的なアクセスが続くと、サーバー管理会社から警告を受けたり、最悪の場合サーバーの使用を停止されるリスクもあります。
これを防ぐため、MT4側で連続アクセスを制御する処理を実装しました。
【今回行った対策】
今回のWebRequest処理では以下のようプログラミングしました。
認証アクセス: MT4の起動時やEAをセットアップした際に、サーバーに2回アクセスして認証を行います。
定期アクセス: その後は、1時間に1回だけサーバーにアクセスするように制御しました。
こうすることで、サーバーへの負荷を最小限に抑えつつ、システムの動作に必要なデータ通信を確保できます。
こうした負荷対策は、プログラムを組む上で非常に重要なポイントです。
【まとめ】
WebRequestは、通常のEA開発ではあまり使用されないものの、外部データの連携や認証システムの実装には欠かせない機能です。
プログラミングを行ううえで、負荷対策はとても重要なことです。
システムの安定性と安全性を確保するためにも重要なことだったので、今回、時間をかけて動画で説明しました。
次回の動画では、新シリーズ「FXトレーダー対決!」をお届けしますので、ぜひお楽しみに。
最後までお読みいただきありがとうございました。