システムトレード

グリッド・マーチンゲール戦略のロットサイズと取引数:バウンス数の重要性
MetaTrader4
グリッド・マーチンゲール戦略のロットサイズと取引数:バウンス数の重要性

グリッドやマーチンゲール戦略におけるロットサイズや取引数は非常に重要です。 私たちは常に、特定の銘柄がレンジゾーン内でどのような動きをしていたのか、価格がレンジゾーン内で何回バウンスしたのかを考えます。 これを私は「バウンス数」と定義しています。このバウンス数は、マーケットの任意の銘柄の歴史を統計的に分析することで計算できます。 具体的に見ていきましょう。画像1をご覧ください。 画像1: バウンス数の定義、その目的と応用 この画像は、価格の動きがバウンス数ツールの統計をどのように生成するかを示しています。ツールの遅延を発生させないように、EAとして生成し、スリープ機能を使用しています。この機能により、ツールの入力に設定したキャンドル数が多い場合でも、チャートがクラッシュしにくくなります。 次の画像(画像2)は、ツールの非常に簡潔なグラフィカル構造とそのオブジェクトの意味を示しています。 画像2: バウンス数の統計。 ツールの使用法: 画像2を参考に、バウンシングチャネル半高さを600ポイントに設定した場合: この銘柄には、1から6までの6つの異なるバウンス数があります。 バウンス数2は、価格がバウンスチャネルの中間から始まり(高さ2 * 600 = 1200ポイント)、上に移動し、赤と青のラインにそれぞれ1回当たってからTP=1200ポイントに到達します。バウンス数5の場合、価格はチャネルの中間から始まり、赤に2回、青に3回当たるか、逆に赤に3回、青に2回当たってからTP=1200ポイントに到達します。他のバウンス数についても同様です。 バウンス数7はないため、赤と青のラインの間で7回バウンスすることはありません(1200ポイントの距離)。ツールの入力で選択された全履歴の中で、7回のバウンスを見つけるチャンスは、もっと多くの歴史データ(最大のロックバックキャンドル数)を選択すれば増えます。しかし、9020の価格ヒットTPの合計項目の中でも、6回のバウンスのチャンスは22回です。 ツールの入力内容: 最大ロックバックキャンドル数: 他のスキャンツールと同様に、このセルに設定する数については注意が必要です。メモリのクラッシュを避けるために、劇的に増やさないようにしましょう。 時間足: チャネルの限界からバウンスを見つけ、TPラインに触れるために使用するキャンドルの時間足。薄いチャネルには低い時間足を使用してください。何を設定するか分からない場合は、M1時間足を使うのが良いでしょう。 バウンシングチャネル半高さ: これは赤と青のラインから緑のラインまでの距離です。ポイント単位です。 チャートの背景色 バーチャート色1/バーチャート色2: 統計バーを少しおしゃれに見せるための色設定です。 カウントセルの色 バウンス数セルの色 ローディングバーの色: 計算中に、このローディングバーはユーザーが作業が行われているかどうか、計算の速度を知る手助けをします。 さらに、画面からの歴史キャンドルの数を入力するためのボタンが追加されています。

2024.01.12
MetaTrader 5での接続・切断音アラートの設定方法
MetaTrader5
MetaTrader 5での接続・切断音アラートの設定方法

皆さん、こんにちは!今日は、MetaTrader 5で接続・切断時に音でお知らせしてくれる便利なツールの設定方法をご紹介します。 このユーティリティは、接続や切断のタイミングで音を出すシンプルな例です。まずは、使用する音声ファイル(.wav形式)を以下のフォルダに追加しましょう。 MQL5\Files\Sounds フォルダ内に音声ファイルを入れてください。 次に、以下のコードをコピーしてEAユーティリティとしてコンパイルします。添付したファイルには、リソースを使用することでアップロードが不可能になるコメント行が含まれていますので、注意してください。 //+------------------------------------------------------------------+ //|                               Connect_Disconnect_Sound_Alert.mq5 | //|                                Copyright 2024, Rajesh Kumar Nait | //|                  https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- サウンドファイル #resource "\\Files\\Sounds\\CONNECTED.wav" #resource "\\Files\\Sounds\\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Expert initialization function                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                   Print("Error: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                      Print("Error: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                   Print("Error: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+ さらに、こちらの動画も参考にしてください!

2024.01.08
トレーダーのためのMQL5プログラミング - 高度なMQL5ツールの活用法
MetaTrader5
トレーダーのためのMQL5プログラミング - 高度なMQL5ツールの活用法

第7部: 高度なMQL5ツールについて「第7部: 高度なMQL5ツール」では、MetaTrader 5用プログラム開発に役立つMQL5 APIの高度な機能を紹介します。これにはカスタム金融シンボル、経済カレンダーのイベント、そしてネットワーキングやデータベース、暗号化などの汎用技術が含まれます。このパートでは、他のMQLプログラムと接続するための即時APIを提供する特別なプログラムタイプであるライブラリについても説明します。さらに、ソフトウェアパッケージの開発や論理的に関連するプログラムをプロジェクトとして統合する可能性についても触れます。最後に、Pythonなど他のソフトウェア環境との統合についても紹介します。まずは、プログラムコードに埋め込むことができるあらゆるタイプのファイルであるリソースを学びます。リソースには以下のものが含まれます:マルチメディア要素外部プログラムからの「ハード」設定コンパイルされた形式の他のMQL5プログラムMQL5開発環境では、アプリケーションデータの配列、画像、音声、フォントをソースファイルに含めることができ、プログラムをエンドユーザーにとって自立的で便利な製品にします。特に、BMP形式のラスタ画像を含むグラフィックリソースに重点を置き、これらをチャート上で動的に作成、編集、表示する方法を学びます。本書の最終部では、MQL5におけるOpenCL統合について学びます。OpenCLは、グラフィックプロセッサ(GPU)や中央処理装置(CPU)を含むマルチプロセッサシステムでの並列プログラミングのオープンスタンダードです。アルゴリズムが並列化可能であれば、計算集約的なタスクを加速することができます。これには、ニューラルネットワークのトレーニング、フーリエ変換、方程式系の解法が含まれます。MQLプログラムでOpenCLを利用するには、メーカーからの特別なドライバーが必要で、OpenCLバージョン1.1以上のサポートが求められます。グラフィックカードの有無は問わず、中央処理装置でも並列計算が可能です。

2023.12.16
MQL5プログラミング入門 - 取引自動化の基礎
MetaTrader5
MQL5プログラミング入門 - 取引自動化の基礎

第6部:取引自動化「MQL5プログラミング入門」の第6部では、MQL5言語の重要な要素について学びます。まずは、金融商品仕様や取引口座の設定といった基本的なエンティティの説明から始めます。これらは、正しく機能するエキスパートアドバイザーを作成するための前提条件です。その後、組み込み関数やデータ構造、ロボット特有のイベント、そしてストラテジーテスターにおけるエキスパートアドバイザーの動作に関する重要な側面についても掘り下げていきます。MetaTrader 5のストラテジーテスターは、取引ロボットの開発において欠かせない要素であり、金融パフォーマンスの評価や取引戦略の最適化を可能にします。テスターは、視覚テストやバー、ティックを使用したさまざまなモードでのデバッグツールを提供します。モデル化されたティックやリアルティックを使用して、クオートの流れを視覚的に再現したり、視覚ウィンドウなしでシンプルなテストを行ったりできます。以前、視覚モードでインジケーターをテストする方法を見てきましたが、その際は限られた設定しか利用できませんでした。エキスパートアドバイザーの開発では、テスターの全機能にアクセスできます。さらに、市場データの別の表示形式である「マーケット深度」やそのソフトウェアインターフェースについても見ていきます。MetaTrader 5は、金融商品(シンボル)の分析や取引を行う機能を提供しています。これらは、ターミナルのすべてのサブシステムの基礎を形成します。ユーザーは、ブローカーが提供するリストからシンボルを選択し、マーケットウォッチで監視できます。MQL5 APIを使えば、すべてのシンボルの特性を確認・分析し、マーケットウォッチに追加したり削除したりすることができます。ブローカーから提供される標準シンボルに加えて、MetaTrader 5はカスタムシンボルの作成をサポートしており、任意のデータソースからそのプロパティやクオート履歴を読み込んだり、MQL5プログラムを使用して計算することができます。

2023.12.16
MQL5プログラミング入門 – トレーダーのためのアプリケーションプログラム作成
MetaTrader5
MQL5プログラミング入門 – トレーダーのためのアプリケーションプログラム作成

第5部: MQL5でのアプリケーションプログラム作成『第5部: アプリケーションプログラムの作成』では、アルゴリズム取引に関連するAPIについて深掘りしていきます。具体的には、金融データの分析や処理、チャートの視覚化、自動化、ユーザーインタラクションなどに焦点を当てます。まずは、MQLプログラムを作成する際の基本原則について学び、イベントタイプや特徴、ターミナル内のモデルを見ていきます。その後、タイムシリーズへのアクセスやチャート、グラフィカルオブジェクトとの操作、各MQLプログラムタイプを個別に作成・適用するための原則について探求していきます。MetaTrader 5ターミナルでは、以下の5種類のプログラムをサポートしています:テクニカルインディケーター自動または半自動取引のためのエキスパートアドバイザー(EA)一回限りの作業を実行するためのスクリプトバックグラウンド作業用のサービス個別機能モジュールのためのライブラリ 次に、インディケーターやチャートの操作方法に加え、エキスパートアドバイザーにも応用できるテクニックを学びます。エキスパートアドバイザーの開発については、次のパートで取り上げ、自動注文の実行や取引戦略の形式化、過去データを用いたテストと最適化について詳しく掘り下げていきます。標準の組み込みインディケーターの使い方や、他のインディケーターを基にしたカスタムアプリケーションの作成方法についても学びます。コンパイルされたプログラムはすべてMetaTrader 5のナビゲーターに表示されますが、EX5ライブラリは他のプログラムによって使用されるため、ナビゲーターには別途表示されません。この結果、MQL5言語の機能やアルゴリズム取引での応用について、より包括的な理解を得ることができるでしょう。これにより、金融データを効果的に扱い、取引インディケーターやエキスパートアドバイザーを作成することが可能になります。

2023.12.16
MQL5プログラミング入門 - MetaTrader 5のための基本API解説
MetaTrader5
MQL5プログラミング入門 - MetaTrader 5のための基本API解説

パート4: MQL5の一般的なAPIについて前回までのセクションでは、MQL5プログラミング言語の基本について学び、その構文や使用ルール、主要概念を掘り下げました。しかし、実際のデータ処理や自動取引プログラムを書くためには、MetaTrader 5端末と連携するための多くの組み込み関数を利用する必要があります。「パート4: MQL5の一般的なAPI」では、組み込み関数(MQL5 API)の習得に焦点を当て、徐々に専門的なサブシステムに深入りしていきます。MQL5プログラムは、さまざまなテクノロジーや機能を活用することができるため、ほとんどのプログラムで利用できるシンプルで役立つ関数から始めるのが理にかなっています。主なトピックとしては、配列操作、文字列処理、ファイル操作、データ変換、ユーザーインタラクション関数を学びます。また、数学関数やプログラム環境の管理についても探求していきます。MQL5 APIの組み込み関数を使用する際、他のプログラミング言語とは異なり、追加のプリプロセッサディレクティブは必要ありません。すべてのMQL5 API関数の名前はグローバルコンテキスト(名前空間)で利用可能で、常に無条件でアクセスできます。さらに、クラスメソッド名やカスタム名前空間など、異なるプログラムコンテキストで類似の名前を使用する可能性についても話し合います。このような場合、グローバル関数を呼び出すためにコンテキスト解決演算子を使用する必要があります。これは、ネストされたタイプ、名前空間、およびコンテキスト演算子「::」のセクションで説明した通りです。プログラミングでは、さまざまなデータ型との操作がしばしば必要になります。前のセクションでは、組み込みデータ型の明示的および暗黙的な変換メカニズムをすでに見てきましたが、さまざまな理由から常に適切であるとは限りません。異なる型間でのデータ変換をより精密に行うために、MQL5 APIには変換関数のセットが含まれています。特に、文字列と他の型(数値、日付と時刻、色、構造体、列挙型など)間の変換に関する関数に重点が置かれています。

2023.12.15
MQL5プログラミング入門:トレーダーのためのオブジェクト指向プログラミング - パート3
MetaTrader5
MQL5プログラミング入門:トレーダーのためのオブジェクト指向プログラミング - パート3

パート3. MQL5におけるオブジェクト指向プログラミング 「パート3. MQL5におけるオブジェクト指向プログラミング」では、MQL5言語でのオブジェクト指向プログラミング(OOP)の世界に深く入っていきます。ソフトウェア開発は、複数のエンティティの管理に関する複雑さを伴うため、プログラミングの利便性、生産性、品質を向上させるための高度な技術が求められます。 OOP技術は、プログラマーがMQL5ツールを使用して定義したカスタムタイプの変数であるオブジェクトの概念に基づいています。カスタムタイプを作成することで、オブジェクトのモデル化が可能になり、プログラムの作成とメンテナンスが簡素化されます。 このパートでは、クラス、構造体、共用体など、新しいタイプを定義するさまざまな方法を検討します。これらのカスタムタイプは、データとアルゴリズムを組み合わせてアプリケーションオブジェクトの状態と振る舞いを表現します。 著者は「分割統治」の原則に焦点を当てており、オブジェクトはそれぞれが小さくても論理的に完結したタスクを解決するためのミニプログラムであることを示しています。オブジェクトを組み合わせて一つのシステムにし、任意の複雑さを持つ製品やサービスを作成することができます。 ユーザーがMQL5の機能を学ぶのを助けるために、「MQL5におけるオブジェクト指向プログラミング」ではOOPの原則と実践的な実装例を紹介しています。この書籍では、テンプレート、インターフェース、名前空間も取り上げており、MQL5プログラム開発におけるOOPの柔軟性と力を明らかにしています。

2023.12.15
MQL5プログラミング入門 - MetaTrader 5向けの開発環境
MetaTrader5
MQL5プログラミング入門 - MetaTrader 5向けの開発環境

第1部. MQL5と開発環境の紹介 この本の第1部は、「MQL5と開発環境の紹介」というタイトルで、MQL5言語とその開発環境の基本を解説しています。 MQL5とMQL4(MetaTrader 4の言語)との違いの一つは、オブジェクト指向プログラミング(OOP)のサポートです。これはC++に似ており、プログラミングに不慣れなユーザーには少し難しく感じるかもしれませんが、OOPの機能を理解することで、より柔軟なプログラム作成が可能になります。 この本の目的は、MQL5のアプローチを分かりやすくし、誰でもアクセスできるようにすることです。MQL5リファレンスの補足として、プログラミングのあらゆる側面を詳しく説明しています。開発者はオブジェクト指向スタイルと手続き型スタイルを選択・組み合わせることができます。 すでにプログラミング経験がある方は、基本を飛ばしても構いません。C++のプログラマーにとってはMQL5が習得しやすいですが、言語の違いに注意することが重要です。 MQL5を使用すると、データを視覚的に表示するインジケーターや、取引を自動化するエキスパートアドバイザー、単発のアクション用スクリプト、バックグラウンドタスク用のサービスなど、さまざまなプログラムを作成できます。 MetaTrader 5の特徴は、クライアント端末から全ての取引システムを管理できる点です。MQL5プログラムはここで実行され、取引サーバーに取引コマンドを送ります。MQL5アプリケーションはサーバーにインストールされません。 第1部では、プログラムの編集、コンパイル、実行方法や、さまざまなデータ型、変数、式、配列、デバッグ、出力について説明します。

2023.12.15
手書き数字を認識するEAの活用法 - MetaTrader 5での実践
MetaTrader5
手書き数字を認識するEAの活用法 - MetaTrader 5での実践

手書き数字を認識するエキスパートアドバイザー 今回紹介するのは、手書き数字を認識するためのエキスパートアドバイザー(EA)です。このEAは、MNISTデータベースを基にしています。このデータベースには、トレーニング用の60,000枚とテスト用の10,000枚の画像が含まれています。これらの画像は、元々のNISTセットから作成されたもので、米国国勢調査局から取得した20x20ピクセルの白黒サンプルを再構成したものです。 手書き数字認識用のモデル「mnist.onnx」は、GithubのModel Zooからダウンロードできます(opset 8)。興味がある方は、最新のONNXランタイムでサポートされていないopset 1のモデルを除いて、他のモデルも試してみてください。驚くべきことに、出力ベクトルは一般的な分類モデルで使われるSoftmax活性化関数を通していませんでしたが、私たちが独自に実装することは簡単です。 int PredictNumber(void)  {    static matrixf image(28,28);    static vectorf result(10);    PrepareMatrix(image);    if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))      {        Print("OnnxRun error ",GetLastError());        return(-1);     }    result.Activation(result,AF_SOFTMAX);    int predict=int(result.ArgMax());    if(result[predict]<0.8)        Print(result);      Print("value ",predict," predicted with probability ",result[predict]);    return(predict);  } マウスを使って特別なグリッドに数字を描くことができます。左ボタンを押し続けて描いた後、CLASSIFYボタンを押すことで、描いた数字を認識させることができます。 認識された数字の確率が0.8未満の場合、各クラスの確率を含むベクトルがログに表示されます。例えば、空の未記入の入力フィールドを分類してみると良いでしょう。 [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267]value 5 predicted with probability 0.11471312493085861 不思議なことに、数字の9(9)の認識精度は特に低いことが分かりました。左に傾いた数字はより正確に認識される傾向があります。

2023.11.23
現在の利益に基づくテイクプロフィット設定 - MetaTrader 4のための自動売買ツール
MetaTrader4
現在の利益に基づくテイクプロフィット設定 - MetaTrader 4のための自動売買ツール

はじめに 多くの自動売買ツール(EA)は、購入価格からのピップ数を基にテイクプロフィットを設定します。しかし、EA Perceptronが使用するコードは、現在の利益を主に基準にしています。このアプローチにより、複数のポジションを持っている場合でも、マジックナンバーに基づいて現在の総利益を簡単に管理できます。複数のボットインスタンスや異なるEAを同時に使用している場合でも便利です。ぜひ、友達に追加して最新情報をフォローしてください! このコードを使用することで、ピップに基づくテイクプロフィットを使った際に発生する可能性のある問題に対処できます。たとえば、ブローカーのスリッページによってピップベースのテイクプロフィットが変動し、利益が制限されることがありますが、現在の利益に基づくコードを使用することで、この問題を回避し、取引の管理をよりコントロールできます。 現在の利益に基づくテイクプロフィットの設定方法をさらに学びたい場合は、EA SwingBotのコードを参考にしてください。 … 総注文数の計算 まず、同じマジックナンバーを持つオープンオーダーの総数を計算するコードを見てみましょう。 マジックナンバーは、トレーダーやEA(エキスパートアドバイザー)によってオーダーに付与される一意の識別子です。 このコードは、変数total_ordersをゼロで初期化します。次に、forループを使用してすべてのオープンオーダーをループし、OrderSelect()関数を使用して各オーダーを選択します。オーダーが正常に選択された場合、total_orders変数を1増加させます。 //-----------------    int total_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == MagicNumber)          {          total_orders++;         }         }      } … 現在の利益の計算 このコードでは、2つの変数ProfittoMinimoとProfitを初期化します。ProfittoMinimoは、このレベルでテイクプロフィットをアクティブにするために使用され、アカウントの通貨で表されます。Profit変数は、同じマジックナンバーを持つすべてのオープンポジションの現在の利益を累積するために使用されます。変数StopLossは、ストップロスに使用されます。 コードは、OrdersTotal()関数を使用してすべてのオープンポジションを反復処理するためにforループを使用します。各オープンポジションについて、対応するオーダーがOrderSelect()関数を使用して選択されます。オーダーが正常に選択され、同じマジックナンバーを持つ場合、そのオーダーの利益がProfit変数に追加されます。       double ProfittoMinimo = 3; // 目標利益       double Profit = 0; // 現在の利益              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // 複数のEAがある場合は、MagicNumberフィルターを削除して総オーダーを維持できます               {                Profit += OrderProfit();               }            }         } 最小利益は外部変数として設定でき、EAのオプションで設定可能です: … 利益が達成された場合のポジションのクローズ このコードは、OrdersTotal()関数を使用してすべてのオープンオーダーを反復処理するためにforループを使用します。ループは最後のオーダーから始まり、最初のオーダーまで上がります。各オーダーについて、対応するトレードがOrderSelect()関数を使用して選択されます。 選択されたトレードが現在のチャートと同じシンボルであり、タイプがOP_BUYで、コードで指定されたマジックナンバーと同じである場合、トレードのProfitがProfittoMinimo以上であるかどうかを確認します。そうであれば、OrderClose()関数を使用してビッド価格でトレードをクローズし、買いオーダーがクローズされたことを示すメッセージを出力します。 同様に、選択されたトレードが現在のチャートと同じシンボルであり、タイプがOP_SELLで、コードで指定されたマジックナンバーと同じであれば、トレードのProfitがProfittoMinimo以上であるかどうかを確認します。そうであれば、OrderClose()関数を使用してアスク価格でトレードをクローズし、売りオーダーがクローズされたことを示すメッセージを出力します。       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // オーダーは現在のオーダーのMagicNumberと一致する場合のみ変更されます。               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // ビッド価格                   Print("買いオーダーがクローズされました", Profit, " - ストップロス最小: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(Profit >= ProfittoMinimo)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // アスク価格                   Print("売りオーダーがクローズされました", Profit, " - ストップロス最小: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }               }            }         } … まとめ このコードは、テイクプロフィットに基づくすべてのポジションクローズ戦略に役立ちますが、現在の利益に基づくトレーリングストップと組み合わせることも可能です。このシステムは、複数のエキスパートアドバイザーがある場合にも便利です。MagicNumberに関するif条件を除外すれば、すべてのアクティブなEAからすべてのオープンポジションを同時に管理するための一般的なテイクプロフィットレベルを設定できます。

2023.10.27
ダブルボリンジャーバンド戦略:MT4での実践ガイド
MetaTrader4
ダブルボリンジャーバンド戦略:MT4での実践ガイド

1. 概要 ダブルボリンジャーバンド戦略は、2つのボリンジャーバンドを利用して、為替市場でのエントリーおよびエグジットをフィルタリングします。 この戦略は、価格が3σ(標準偏差2)の上を越えたときに買い(または売り)ポジションを取ることを目指しています。また、ボリンジャーバンドの2σ(標準偏差2)のレベルも、トレード判断の際に考慮します。 デフォルトのパラメーター: 2σボリンジャーバンド (20,2):単純移動平均 (20) と標準偏差の数 (2)。 3σボリンジャーバンド(20,3):単純移動平均 (20) と標準偏差の数 (3)。 入力パラメーター 2. ロングエントリー 以下の2つの条件が満たされたときに、買い注文を開きます: 条件1:Ask価格が3σ上部ボリンジャーバンド (BB3UP) を上回る。 条件2:条件1が満たされたら、現在の価格が2σ上部ボリンジャーバンド (BB2UP) と2σ下部ボリンジャーバンド (BB2LO) の範囲内であるか確認します。 3. セールエントリー 以下の2つの条件が満たされたときに、売り注文を開きます: - 条件1:Bid価格が3σ下部ボリンジャーバンド (BB3LO) を下回る。 - 条件2:条件1が満たされたら、現在の価格が2σ下部ボリンジャーバンド (BB2LO) と2σ上部ボリンジャーバンド (BB2UP) の範囲内であるか確認します。 4. エグジットオーダー OCO形式のオーダーを使用し、ストップロスとテイクプロフィットをN pipsに設定します。 ※N:設定する入力パラメーター。

2023.10.02
マーチンゲールブレイクアウトEAの解説 - MetaTrader 4向けのトレーディング戦略
MetaTrader4
マーチンゲールブレイクアウトEAの解説 - MetaTrader 4向けのトレーディング戦略

こんにちは、トレーダーの皆さん!今日は、FX市場で取引を行うために設計された「マーチンゲールブレイクアウト」戦略についてお話しします。このEA(エキスパートアドバイザー)は、ブレイクアウト取引のアプローチとマーチンゲール資金管理システムの要素を組み合わせて、取引パフォーマンスを最適化しています。 入力パラメータ: テイクプロフィットポイント: このパラメータでは、各取引のテイクプロフィットレベルをポイントで設定できます。 利用可能バランスのパーセンテージ: 取引に使用するアカウント残高のパーセンテージを指定します。 バランスのテイクプロフィットパーセンテージ: 各取引のテイクプロフィットとして使用されるアカウント残高のパーセンテージを決定します。 バランスのストップロスパーセンテージ: 取引に割り当てられるバランスのパーセンテージを設定します。 リカバリーの開始: このパラメータは、リカバリー処理の際にいつどのようにリカバリー措置が発動するかを制御します。 テイクプロフィットポイントの倍率: テイクプロフィットポイントの倍率で、柔軟な利益確定戦略を実現します。 マジックナンバー: このEAに固有の識別子で、独立して取引を管理できるようにします。 戦略の特徴: ブレイクアウト取引: このEAは、市場で重要なレベルを突破する価格変動を見つけることに特化しています。 ダイナミックなロットサイズ: ロットサイズは、アカウント残高やリスクの好みに基づいて動的に調整され、マーチンゲール資金管理の原則に従います。 損失回復: このEAには、必要に応じて取引パラメータを適応的に変更することで損失を回復する強力なメカニズムが含まれています。 このEAで使用される主な関数は、CalcLotWithTP()関数で、3つの入力パラメータ(テイクプロフィット、開始価格、終了価格)があります。これは、開始価格で取引を開始し、終了価格で終了する際に利益目標を達成するために必要なボリュームを計算します。 コード内のすべての部分にはコメントが付いているので、理解しやすくなっています。 また、これに関するYouTube動画も作成しました:

2023.09.26
MT5用ブレイクアウトマーチンゲールシステムトレーディングEA
MetaTrader5
MT5用ブレイクアウトマーチンゲールシステムトレーディングEA

「マーチンゲールブレイクアウト」戦略は、外国為替市場での取引に特化したEA(エキスパートアドバイザー)です。このEAは、ブレイクアウトトレーディングのアプローチとマーチンゲール資金管理システムの要素を組み合わせて、取引パフォーマンスを最適化します。 入力パラメーター: テイクプロフィットポイント: 各取引のテイクプロフィットレベルをポイント単位で設定できます。 利用可能バランスの割合: 取引に使用するアカウント残高の割合を指定します。 テイクプロフィット割合: 各取引のテイクプロフィットに使用するアカウント残高の割合を決定します。 ストップロス割合: 取引のストップロスに割り当てるバランスの割合を設定します。 リカバリー開始: このパラメーターはリカバリー過程において重要な役割を果たし、リカバリー措置がいつどのように発動されるかを制御します。 テイクプロフィットポイント乗数: テイクプロフィットポイントの乗数で、柔軟な利益確定戦略を可能にします。 マジックナンバー: このEAに特有の識別子で、独自に取引を管理できるようにします。 戦略のハイライト: ブレイクアウトトレーディング: このEAは、価格の動きが重要なレベルを突破するブレイクアウトの機会を特定することに特化しています。 ダイナミックロットサイズ: ロットサイズはアカウント残高やリスクの好みに基づいて動的に調整され、マーチンゲール資金管理の原則に従います。 損失回復: EAには、必要に応じて取引パラメーターを適応的に修正することで損失を回復する強力なメカニズムが含まれています。 このEAで使用される主な関数は、CalcLotWithTP()関数で、3つの入力パラメーター(テイクプロフィット、スタートプライス、エンドプライス)があります。これは、スタートプライスで取引を開始し、エンドプライスで終了する際に、利益目標を達成するために必要なボリュームを計算します。 コード内のすべてはコメントが付けられているので、理解が容易です。

2023.09.26
MetaTrader 5のシンボルフィリングポリシーの決定
MetaTrader5
MetaTrader 5のシンボルフィリングポリシーの決定

トレードをする上で、シンボルのフィリングポリシーを理解することは非常に重要です。この記事では、MetaTrader 5でのフィリングポリシーの決定方法について詳しく解説します。フィリングポリシーの取得シンボルの入力(symbol): この関数は、フィリングポリシーを決定したい金融商品(シンボル)の入力を受け取ります。フィリングポリシータイプの取得(filling): 関数は、SymbolInfoIntegerを使用して、指定されたシンボルのフィリングポリシーに関する情報を取得します。この情報は、数値としてfillingという変数に格納されます。フィリングポリシーの比較: 次に、取得した数値(filling)を「Fill or Kill」(SYMBOL_FILLING_FOK)や「Immediate or Cancel」(SYMBOL_FILLING_IOC)、「Return」(SYMBOL_FILLING_RETURN)などの事前に定義された定数と比較します。フィリングポリシータイプの返却: 比較結果に基づいてフィリングポリシーのタイプを決定します。「Fill or Kill」と一致すればORDER_FILLING_FOKを返し、「Immediate or Cancel」と一致すればORDER_FILLING_IOCを返します。どちらにも一致しなければORDER_FILLING_RETURNを返します。まとめこの関数を使うことで、MetaTrader 5におけるシンボルのフィリングポリシーを取得し、返すことができます。特定の金融商品のフィリングポリシーに基づいて、トレードの意思決定を行う際に非常に役立ちます。

2023.09.26
最初 前へ 3 4 5 6 7 8 9 10 11 12 13 次へ 最後