記事"Expert Advisorの限界と検証"についてのディスカッション

 

新しい記事 Expert Advisorの限界と検証 はパブリッシュされました:

このシンボルは月曜ににトレードできる? ポジションをオープンするのに必要なお金が十分ある? ストップロスが起こった時ロスの大きさは? ペンディングオーダーの数を制限するには? トレード操作が実行されたのは現在のバーそれとも以前のバー? トレードロボットがこの種の検証をできない場合、どんなトレードストラテジーも負け戦略になる可能性があります。本記事はどんなExpert Advisorにおいても便利な検証例を紹介します。

ボリュームの正しさをチェックするCheckVolumeValue.mq5 のメッセージ

作者: MetaQuotes Software Corp.

 

有用な記事

 
そうですね、役に立つことがたくさんありますね。難しいことは考えずに、"Trading Session "と "Quotation Session "の概念を説明してください。
 

トレーディング・セッションが クォート・セッションと 異なるのは、すでに注文を出すことができるという点だと理解しています。

つまり、取引は行われていないが、注文は可能であるということです。

つまり、この商品の取引が行われているということです。


間違っていたら訂正してください

 
取引セッションでは 取引ができ、クォーテーション・セッションでは取引セッションと 同様に価格が表示されるが、取引はできない。
 
Rosh:
トレーディング・セッションでは 取引できますが、クォート・セッションでは価格はトレーディング・セッションと 同じように表示されますが、取引はできません。

ありがとうございます。
 
MQL5の言語が 変更されたため、1つのシンボルに対して許容される最大累積取引量をこの方法で取得する必要があります:
//--- ボリュームの文字数制限を取得する
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

旧バリアントは このようなものでしたので、これ以上使用しないでください

//--- ボリュームの文字数制限を取得する
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);


記事を修正し、Check_Order_And_Volume_Limits.mq5 Expert Advisorの新しいコードを添付しました。

 

MQL5の変更により、1つのシンボルで許容される全体の最大取引量は以下のようになります:

//--- ボリュームのシンボル制限を取得する
   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);

旧バリアントは使用しないでください! 旧バリアントは使用しないでください!

//--- ボリュームのシンボル制限を取得
   double max_volume=AccountInfoDouble(ACCOUNT_LIMIT_VOLUME);
この記事は修正され、新しいCheck_Order_And_Volume_Limits.mq5 エキスパート・コードが添付されています。
 

(ビルド306)

void OnStart()
{
double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT);
}

コンパイルエラー:

'SYMBOL_VOLUME_LIMIT' - 宣言されていない識別子 test.mq5 4 46
'SymbolInfoDouble' - 関数呼び出しにオーバーロードを適用できません test.mq5 4 20

 

記事より引用:「この関数には、シンボル名、タイムフレーム、SERIES_LASTBAR_DATE プロパティを指定する必要があります

リファレンスブックの以前のバージョンでは、CopyTime 関数を使用して 最後のバーのオープン時間を取得する例がありました:

datetime lastbar_time[1];

CopyTime(Symbol(),0,0,1,lastbar_time);

質問:最後のバーのオープン時間を取得するためのこれらの2つのオプションのうち、情報検索の速度と使用効率の点で、どちらが望ましいですか?

 
Yedelkin:

記事より引用:「この関数には、シンボル名、タイムフレーム、SERIES_LASTBAR_DATE プロパティを指定する必要があります。"

リファレンス・マニュアルの以前のバージョンでは、CopyTime 関数を使って 最終バーのオープン時間を取得する例がありました:

質問:最後のバーのオープン時間を取得するための2つのオプションのうち、情報検索のスピードと使用効率の点で、どちらが望ましいですか?

時間的には同等であるべきですが、SERIES_LASTBAR_DATE を使ったオプションの方が良さそうです。