私たちのファンページに参加してください
- ビュー:
- 1579
- 評価:
- パブリッシュ済み:
- 2016.04.25 15:56
- アップデート済み:
- 2016.11.22 07:34
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
内容
これは MetaTrader 5 のフル機能を備えた多通貨モードの新しい実装です。それは拡張された OnTick(string symbol) 関数として実装されています。
メリット:
- デモ口座とリアル口座で本当の多通貨モードが提供されます。
- 設定は単純です。.
- OnTick(string symbol) のイベントリストは。NewTick および/または NewBar として設定できます
- シンボルのリストは、気配値表示のすべての銘柄または一部の指定された銘柄として設定することができます。
- 気配値表示を操作する際は、「その場」でイベントをOnTick(string symbol)で管理することができます。
- 動作の詳細を理解する必要はありません。コードはインクルードファイルに含まれています。
- ストラテジーテスターでの使用が可能です。
エキスパートアドバイザーテンプレートは下記の通りです。
//+------------------------------------------------------------------+ //| OnTick(string symbol).mq5 | //| Copyright 2010, Lizar | //| https://www.mql5.com/ru/users/Lizar | //+------------------------------------------------------------------+ #define VERSION "1.00 Build 1 (01 Fab 2011)" #property copyright "Copyright 2010, Lizar" #property link "https://www.mql5.com/ru/users/Lizar" #property version VERSION #property description "Template of the Expert Advisor" #property description "with multicurrency OnTick(string symbol) event handler" //+------------------------------------------------------------------+ //| 多通貨モード設定 | //| OnTick(string symbol) イベントハンドラ | //| | //| 1.1 イベントで進行するのに必要なシンボルのリスト: | #define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF" //| 1.2 気配値表示のすべての銘柄がいる場合、これを使う: | //#define SYMBOLS_TRADING "MARKET_WATCH" //| 注意:1.1 や 1.2 の一つのみを選択する | //| | //| 2. OnTick(string symbol)のイベントの種類 | #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //| 注意:イベントの種類は | //| ENUM_CHART_EVENT_SYMBOL 列挙体に対応する鵜必要がある | //| | //| 3. インクルードファイル: | #include <OnTick(string symbol).mqh> //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| エキスパート初期化関数 | //| この関数は空でも宣言される必要がある。 | //+------------------------------------------------------------------+ int OnInit() { //--- コードをここに追加する return(0); } //+------------------------------------------------------------------+ //| エキスパートの多数ティック関数 | //| 標準的な OnTick() 関数の代わりにこの関数を使う | //+------------------------------------------------------------------+ void OnTick(string symbol) { //--- コードをここに追加する Print("New event on symbol: ",symbol); } //+------------------------------------------------------------------+ //| ChartEvent 関数 | //| この関数は空でも宣言される必要がある。 | //+------------------------------------------------------------------+ void OnChartEvent(const int id, // イベント id const long& lparam, // long 型のイベントパラメータ const double& dparam, // double 型のイベントパラメータ const string& sparam) // string 型のイベントパラメータ { //--- コードをここに追加する } //+------------------------------------------------------------------+ //| エキスパート初期化解除関数 | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- コードをここに追加する } //+------------------------------ 終わり -------------------------------+
特徴:
1. 設定
設定は #define ディレクティブで設定できます。OnTick(string symbol) 関数の正しい操作には、SYMBOLS_TRADING と CHART_EVENT_SYMBOL の2つのパラメータの指定のみが必要です。一番目(SYMBOLS_TRADING)はイベントに使われるシンボルリストを定義します。二番目(CHART_EVENT_SYMBOL)はすべてのシンボルのイベントタイプを定義します。
SYMBOLS_TRADING はシンボルリストを含みます。例は下記です。
#define SYMBOLS_TRADING "EURUSD","GBPUSD","USDJPY","USDCHF"
リストはコンマで区切られた文字列として準備されるべきです。リストは、行の終わりで終了します。
SYMBOLS_TRADING は次のように定義できます。
#define SYMBOLS_TRADING "MARKET_WATCH"
これは気配値表示のすべての銘柄が使われることを意味します。この方法はシンボルリストを「その場で」変えるのに使うことができます。必要なシンボルを気配値表示に追加するか気配値表示から削除します。
CHART_EVENT_SYMBOLイベントタイプはENUM_CHART_EVENT_SYMBOL列挙体のフラグまたはフラグの組み合わせで定義されます。詳細はこちらでご覧ください(ロシア語)。
下記はイベントタイプの例です。
//--- 例1OnTick イベント: #define CHART_EVENT_SYMBOL CHARTEVENT_TICK //--- 例2NewBar M1 および New Bar H1: #define CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1
2. インクルードファイル
#include OnTick(string symbol).mqh が必要で、このファイルは OnTick(string symbol) 関数の実装を含みます。これは OnTick(string symbol) 関数のすべてを使う簡単な方法です。標準的な関数のいくつかは空であってもエキスパートアドバイザーのコードで宣言されるべきです。
3. ストラテジーテスター
ご存じのとおり(現在の時点では)OnChartEvent はストラテジーテスターでサポートされていません。この問題を解決するには、イベント処理にグローバル変数が使われます。これはストラテジーテスターのみで使われ、他のすべての場合には(リアル/デモ口座で)、イベントはOnChartEventで処理されます。
下記が特徴です。ストラテジーテスターでは、OnTick(string symbol)はストラテジーテスターの設定で指定された銘柄のティックに作動します。 言葉を変えると、それは OnTick()のように作動しますが選択された銘柄の新しいティックが出現した場合にも呼び出されます。ストラテジーテスターの操作にはSYMBOLS_TRADINGは銘柄リストとして指定される必要があります。
4. 「スパイ」
「スパイ(エージェントインディケータ)が使用されます。「Spy Control panel MCM.ex5」ファイルは \MQL5\Indicators\ フォルダに位置する必要があります。
5. アーカイブのファイルは \MQL5 フォルダに回答される必要があります。下記が必要なファイルです。
- /MQL5/Experts/OnTick(string symbol).mq5 - エキスパートアドバイザーの例とテンプレートのソースコード
- /MQL5/Experts/OnTick(string symbol).ex5 - エキスパートアドバイザーのコンパイルされたファイルの霊
- /MQL5/Indicators/Spy Control panel MCM.mq5 - エージェントインディケータのソースコード
- /MQL5/Indicators/Spy Control panel MCM.ex5 - エージェントインディケータのコンパイルされたファイル
- /MQL5/Include/OnTick(string symbol).mqh - OnTick(string symbol) 関数の実装に必要なすべての関数を持つファイル
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/280

「a-la Clyde Lee パタン」に基づいたノンパラメトリックZig Zag

ノンパラメトリックzigzagzigzagの上昇セグメントの単調性の条件は、後続のバーの高値は、上昇セグメントの安値のいずれかよりも低いべきではないということです。