記事"MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用"についてのディスカッション

 

新しい記事 MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用 はパブリッシュされました:

本稿では MQL5 クックブックシリーズの先行記事をとおして作業をおこなってきているExpert Advisorの修正を続行します。今回は、Expert Advisor は値がポジションオープンの条件を確認するのに使用されるインディケータを使って強化されます。それに一点添えるために、外部パラメータにドロップダウンリストを作成し、3つのトレードインディケータの中から1つを選ぶことができるようにします。

MQL5 クックブック:Expert Advisorsにトレード条件を設定するためのインディケータ利用

作者: Anatoli Kazharski

 

アナトリー、記事をありがとう!MQL5-レシピのアプローチはとても成功していると思います。

いくつか質問とコメントがあります。それらはむしろ開発者に向けたものです。

記事の中で:

"...Напомню, для режима исполнения Market Execution открыть позицию сразу с установленными уровнями Stop Loss и Take Profit не получится: нужно сначала открыть позицию, а потом уже модифицировать ее, установив эти уровни..."

そして文字通りすぐに:

ビルド 803 から、市場執行と取引所執行の執行タイプでは、ポジションを建てるときにストップロスとテイクプロフィットのレベルを設定できます。

最後の段落は前の段落の意味をキャンセルするものだと理解しているのですが・・・。では、なぜこの情報は当初「MetaTrader 5 Client Terminal build 803」の 変更点リストに含まれていなかったのでしょうか?また、なぜドキュメントにないのですか?

 
denkir:
最後の段落が前の段落の意味をキャンセルすることは理解できますが...。では、なぜこの情報が変更点のリスト「MetaTrader 5 Client Terminal build 803」に元々含まれていなかったのでしょうか?また、なぜドキュメントに記載されていないのでしょうか?

なぜかニュースでは触れられていませんでしたが、この記事で脚注をつけることにしました。

 
Rosh:

なぜかニュースでは触れられていないが、この記事で脚注を与えることにした。


MT4については?
 
Rosh:

なぜかニュースでは触れられていないが、この記事で脚注を与えることにした。


ありがとう。

そして、一応、対処してください:

1) メソッド

bool CTrade::FillingCheck(const string symbol)


2)ツールに対して特定のモードが許可されているかどうか(SYMBOL_FILLING_ALL_OR_NONESYMBOL_CANCEL_REMAIND、SYMBOL_RETURN_REMAIND)。

2)はブローカーがカスタマイズできると理解していますが......。ドキュメンテーションに明記するのが筋ではないでしょうか?

もし、私の理解が間違っているのであれば、2)の質問は取り消しとなります。


 
denkir:

項目2)はブローカーがカスタマイズできると理解しているが......。ドキュメンテーションに明記するのが筋ではないでしょうか?

ブローカーがカスタマイズできる項目2)」を文書に明記する?

 
sergeev:

ドキュメントに "ポイント2)はブローカーによってカスタマイズできる "と明記されていますか?

なぜかというと...同じタイプの口座(スプレッド固定、FOK執行)でもブローカーによって関数

SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

が異なる値を返すことがあることに気づいたからです。

 
denkir:

そうだね。

ただ、その理由が明確ではありません。

実際、「ブローカーによってカスタマイズできる」というフレーズは、取引に関する文書のすべてのページに書かれているはずです :)

しかし、あなたが尋ねているのはブローカーについてではなく、シンボルについてです。

一つのシンボルは市場執行で、もう一つは証券取引所のシンボルです。

この2つのシンボルには異なる条件、異なる種類のフィル、その他多くのものがあります。

そのため、取引環境の状態をポーリングするすべての機能が与えられているのです。

 

sergeev:

...しかし、あなたが尋ねているのは、ブローカーではなく、シンボルに関連しています。

一方のシンボルは市場執行で、もう一方は証券取引所のシンボルです。

両者には異なる条件、異なる種類のフィルや他の多くのものがあります...


sergeev、あなたは 私が以前に書いたことに注意を払っていませんでした

...しかし、私は異なるブローカーで同じタイプの口座(フィックススプレッド、FOK実行)に気づいたので....


私は簡単なスクリプトをスケッチしました。その中で、私は異なるブローカーからEURUSDシンボルに関する以下の情報を得た:


ブローカー "A":

NQ    0    22:39:37    test_symbol (EURUSD,H1)    Число знаков после запятой: 4
GI    0    22:39:37    test_symbol (EURUSD,H1)    Плавающий спред: 1
KQ    0    22:39:37    test_symbol (EURUSD,H1)    Режим заключения сделок: SYMBOL_TRADE_EXECUTION_INSTANT
OK    0    22:39:37    test_symbol (EURUSD,H1)    Режим заливки оредеров: 1
DS    0    22:39:37    test_symbol (EURUSD,H1)    Путь в дереве символов: Forex\EURUSD


ブローカー「B」:

ON    0    22:45:00    test_symbol (EURUSD,H1)    Число знаков после запятой: 4
EQ    0    22:45:00    test_symbol (EURUSD,H1)    Плавающий спред: 0
RN    0    22:45:00    test_symbol (EURUSD,H1)    Режим заключения сделок: SYMBOL_TRADE_EXECUTION_INSTANT
LS    0    22:45:00    test_symbol (EURUSD,H1)    Режим заливки оредеров: 3
OK    0    22:45:00    test_symbol (EURUSD,H1)    Путь в дереве символов: Forex-Fix\EURUSD


取引成立のモードが 同じでも、注文を満たすモードが異なることにお気づきでしょう。はい、スプレッド・モードが異なります(ブローカーが同じタイプの口座を持っていると述べたときに見落としていました)。質問ですが、この2つのモード(取引成立と注文処理)は何らかの関係があるのでしょうか?

//+------------------------------------------------------------------+
//|test_symbol.mq5
//| Copyright 2013, MetaQuotes Software Corp.
//|http://mql5.commql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

#define  SymInt SymbolInfoInteger 
#define  SymS SymbolInfoString 

string _symbol="EURUSD";
//+------------------------------------------------------------------+
//| スクリプト番組開始機能|
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 1) SymbolInfoInteger()
   long symb_digits=SymInt(_symbol,SYMBOL_DIGITS);
   PrintFormat(「小数点以下の桁数:%u",symb_digits);
   bool symb_spread_float=SymInt(_symbol,SYMBOL_SPREAD_FLOAT);
   PrintFormat(「変動スプレッド:%d",symb_spread_float);
   string trade_mode=EnumToString((ENUM_SYMBOL_TRADE_EXECUTION)SymInt(_symbol,SYMBOL_TRADE_EXEMODE));
   PrintFormat(「トランザクションモード:%s",trade_mode);
   long fil_mode=SymInt(_symbol,SYMBOL_FILLING_MODE);
   PrintFormat(「オレダー充填モード:%u",fil_mode);
//--- 2) SymbolInfoString()
   string path=SymS(_symbol,SYMBOL_PATH);
   PrintFormat("文字ツリーのパス:%s",path);
  }
//+------------------------------------------------------------------+
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
denkir:

という質問だが、この2つのモード(契約を結ぶことと、読者を集めること)には何らかの関係があるのだろうか?

いいえ、もちろん違います。

また、有効期限や利益の計算方法も、「取引をする」モードとは関係ありません。

 

とても良い記事だ。

しかし、Zipファイルをダウンロードするのに苦労しています。