記事「取引における数学:シャープレシオとソルティノレシオ」についてのディスカッション - ページ 3 123 新しいコメント Rashid Umarov 2024.10.24 08:19 #21 価格の対数を 読む 他の参考文献を自分で見つける Reset_index 2024.10.29 14:52 #22 Rashid Umarov #:価格の対数を 読む他の参考文献を自分で見つける もう1つの非常に重要なニュアンスは、このスクリプトでは、シャープを計算する際に、エクイティの変化があったバーだけが考慮されるということです: //--- add only if equity has changed if(m_equities[i] != prev_equity) { log_return = MathLog(m_equities[i] / prev_equity); // 対数のインクリメント aver += log_return; // インクリメントの平均対数 AddReturn(log_return); // 対数インクリメントの配列を埋める counter++; // リターンのカウンタ } prev_equity = m_equities[i]; 平均変化率は、そのような バーの数で割ることによって求められる: //--- インクリメント対数の平均値 aver /= counter; ただし、年間シャープへの移行は、現在のtfのすべてのバーが 計算にカウントされるかのように、時間枠比率に基づいて行われる: //--- それ以外のケースでは、シャープレシオを年間値に再計算する。 //--- 現在のタイムフレームがD1に収まる期間はいくつあるか。 double factor = double(PeriodSeconds(PERIOD_D1)) / PeriodSeconds(timeframe); sharpe = sharpe * MathSqrt(factor); // 1日の値に再計算する sharpe = sharpe * MathSqrt(252); // 日次から年次を取得する つまり、もう一度言う:スクリプトは、エクイティ・チェンジを伴う 1バーあたりの平均シャープ値を求め、次に、年間シャープ値を求めるために、1年間のそのようなバーの数ではなく、1年間のこのtfのバーの合計数(もちろん、そのルート)を乗算する。これは誤りであり、最終的な数値を過大評価している。 どうやらテスターでは同じ方法でシャープを計算しているのだろうか? Ivan Titov 2024.10.29 15:17 #23 Kristian Kafarov #: このスクリプトは、株式変動のある 1バーあたりの平均シャープを求め、次に年間シャープを求めるために、1年間のそのようなバーの数ではなく、1年間のこのtfのバーの合計数(もちろん、そのルート)でそれを乗算します。これは誤りであり、最終的な数字を過大評価している。 私もそのことに気づいた。そのため、私のバージョンでは、ゼロバーを考慮するオプションを追加しました。 123 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
価格の対数を 読む
他の参考文献を自分で見つける
価格の対数を 読む
他の参考文献を自分で見つける
もう1つの非常に重要なニュアンスは、このスクリプトでは、シャープを計算する際に、エクイティの変化があったバーだけが考慮されるということです:
//--- add only if equity has changed if(m_equities[i] != prev_equity) { log_return = MathLog(m_equities[i] / prev_equity); // 対数のインクリメント aver += log_return; // インクリメントの平均対数 AddReturn(log_return); // 対数インクリメントの配列を埋める counter++; // リターンのカウンタ } prev_equity = m_equities[i];平均変化率は、そのような バーの数で割ることによって求められる:
ただし、年間シャープへの移行は、現在のtfのすべてのバーが 計算にカウントされるかのように、時間枠比率に基づいて行われる:
つまり、もう一度言う:スクリプトは、エクイティ・チェンジを伴う 1バーあたりの平均シャープ値を求め、次に、年間シャープ値を求めるために、1年間のそのようなバーの数ではなく、1年間のこのtfのバーの合計数(もちろん、そのルート)を乗算する。これは誤りであり、最終的な数値を過大評価している。
どうやらテスターでは同じ方法でシャープを計算しているのだろうか?
このスクリプトは、株式変動のある 1バーあたりの平均シャープを求め、次に年間シャープを求めるために、1年間のそのようなバーの数ではなく、1年間のこのtfのバーの合計数(もちろん、そのルート)でそれを乗算します。これは誤りであり、最終的な数字を過大評価している。
私もそのことに気づいた。そのため、私のバージョンでは、ゼロバーを考慮するオプションを追加しました。