無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
ライブラリ

CTradeStatistics - MetaTrader 5のためのライブラリ

ビュー:
903
評価:
(48)
パブリッシュ済み:
2016.07.08 10:49
\MQL5\Scripts\ \MQL5\Include\
MQL5フリーランス このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

CTradeStatisticsクラスはすべてのENUM_STATISTICS列挙パラメータ計算を含みます。

このクラスでは、株式ドローダウンを除いた全てのパラメータは取引履歴に基づいて算出することができます。

このクラスの主な目的はTesterStatistics()関数の制限を除いて、ストラテジーテスターの外側だけでなく、テスト中にいつでも必要な統計データを取得できるようにすることです。

テスタ外での使用例

パラメータはすべてCTradeStatistics::Calculate()関数を呼び出して計算されます。この関数の実行が成功した後、結果は、多くのメソッドの呼び出しを介して利用可能であり、その名前は統計パラメータの名前に類似しています。 

下記はコードの例です。

CTradeStatistics m_stat;

if(m_stat.Calculate()) PrintFormat("LR Correlation: %.2f",m_stat.LRCorrelation());
else Print(m_stat.GetLastErrorString());

結果

2012.09.13 08:52:19 TradeStatistics (EURUSD,H1) LR Correlation: 0.97

 

CTradeStatistics::PrintStatistics() 関数はパラメータをログに出力するのに使われます。

if(m_stat.Calculate()) PrintStatistics();

簡単なクラスの操作例はTradeStatistics.mq5スクリプトで見られます。

TradeStatisticsPanelパネルは結果のより良い視覚化のために設計されています。 

テスターでの使用例

エクイティドローダウンを正確に計算するには CTradeStatistics::CalculateEquityDD() 関数が使われるべきです。

下記はコードの例です。

#include <CTradeStatistics.mqh>
CTradeStatistics m_stat;

//+------------------------------------------------------------------+
//| エキスパート初期化関数                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   m_stat.CalculateEquityDD(CALC_INIT);

   return(0);
  }
//+------------------------------------------------------------------+
//| エキスパート初期化解除関数                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   m_stat.CalculateEquityDD(CALC_DEINIT);

   if(m_stat.Calculate())m_stat.PrintStatistics();

  }
//+------------------------------------------------------------------+
//| エキスパートティック関数                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   m_stat.CalculateEquityDD(CALC_TICK);

  }

統計的指標の信頼性のある値は検証の終わりのみではなくプログラム内の任意の時点でOnTester()またはOnDeinit()イベントを使用して取得できることには留意すべきです。計算は下の例でみられるようにOnTrade()イベントで更新できます。

void OnTrade()
  {
//--- 同秒内での繰り返したリクエストを阻止する
   static datetime time_on_trade;
   if(time_on_trade==TimeTradeServer())return;
   time_on_trade=TimeTradeServer();

//--- 統計を更新する
   if(!m_stat.Calculate())Print(m_stat.GetLastErrorString());

  }


MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1081

up3x1_Krohabor_D up3x1_Krohabor_D

決済逆指値と決済指値を使用した3移動平均とエグジットに基づいたエキスパートアドバイザー。動向でエントリを設定します。

up3x1 up3x1

決済逆指値と決済指値を使用した3移動平均とエグジットに基づいたエキスパートアドバイザー。これは、動向反転にトよるレンドの終了時に市場参入を設定します。

ATR_OpenIndent_v2 ATR_OpenIndent_v2

この指標は、シニア時間枠(例えば、1日の時間枠)の始値を示し、始値に線のインデントを描画して範囲を形成します。

取引シグナルモジュール:シンプルなMAクロスオーバーシグナル 取引シグナルモジュール:シンプルなMAクロスオーバーシグナル

エキスパートアドバイザーウィザードのためのシンプルなMAクロスオーバーシグナリング