記事「取引における道徳的期待値」についてのディスカッション - ページ 2

 

良いスローガンだった。数式と例題のおかげで、コードで実装するよりもはるかに早く取り掛かることができる。

著者の過去の記事を 読んでいない。それらを読まなければならないだろう。本当にありがとう。

Aleksej Poljakov
Aleksej Poljakov
  • www.mql5.com
Профиль трейдера
 

記事をありがとうございます。

ロットサイズは、履歴で得られた一連の利益トレードと負けトレードに強く影響され、ロットの計算に使用されることは理解しています。ですから、ランダムにトレードの結果を取って結果を見るのは興味深いです。パスメトリクスの結果は大きく異なると推測します。

 
Aleksey Vyazmikin #:

記事をありがとう。

ロットの大きさは、履歴で得られた一連の利益トレードと負けトレードに強く影響され、ロットの計算に使用されることは理解しています。そこで、ランダムにトレードの結果を取って結果を見るのは興味深いです。パスメトリクスの結果は大きく異なると推測します。

スクリプトでは、取引結果はランダムに生成される。同時に、スクリプト自身は、ロットを計算する際にどのような確率が初期設定されているかを知らない。起こりうる最悪の事態は、特に一連の取引の終盤で、何度も連続して負けることです。最も簡単な方法は、計算時に入金額全体ではなく、その何%かを取ることです。仮に5-10%とすると、残高曲線はより安定したものになり、大きな損失はなくなりますが、利益も減少します。

 
Aleksej Poljakov #:

スクリプトでは、取引結果はランダムに生成される。同時に、スクリプト自身は、ロットを計算する際にどのような確率が最初に設定されるかを知りません。起こりうる最悪の事態は、特に一連の取引の最後に、何度も連続して負けることです。最も簡単な方法は、計算時に入金額全体ではなく、その何%かを取ることです。仮に5-10%とすると、残高曲線はより安定したものになり、大きな損失はなくなりますが、利益も減少します。

記事の最後の部分について書きます:

リスクが取引にどのような影響を与えるか、一緒に見てみましょう。テストには、2本の移動平均線の交点にあるシンプルなExpert Advisorを使用します。EAのテストは以下のパラメータで行われた:

また、過去の成功/失敗を計算するウィンドウがどのように変化するかを調べることも重要です。例えば、ストラテジーテスターでストラテジーを選択した後、10年間はその割合を取らない。

 
素晴らしい仕事だ。
よくやった著者、記事をブックマークしておこう。
 

それは興味深いアプローチだ。しかし、疑問が生じた。道徳的な期待とは、数学的な期待と同じ物理的な意味を持つのだろうか?記事中の数学的期待値には2つの解釈がある-合計によるもの(例えば記事冒頭の11ドゥカート)と、点によるもの(p*TP - (1-p)*SLの式)。道徳的期待についての説明はないが、基本式から判断すると、道徳的期待は合計である。

次の質問。私は、この論文にはない、要求される問題を考えたい。預託金が与えられ、希望する道徳的期待値が預託金の端数(Mr = Fraction * Deposit)とロットとして与えられる。勝つ確率の異なる値について、SL/TP曲線をプロットする。どうやら、確率0.5の場合、課題は定義されていないようだ。

私は手探りでやってみたが、おそらく間違いがあっただろう。どこもかしこも変な数字かNaNがルート定義の領域から飛び出している。

例えば、SLからTPを計算する側から:

#property script_show_inputs

input double Amount = 10000;
input double MoralExpectationPercent = 0.01;
input double Lot = 0;
input double WinProbability = 0.75;

void OnStart()
{
   const double pv = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
      * SymbolInfoDouble(_Symbol, SYMBOL_POINT) / SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
   const double lot = (Lot == 0 ? SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN) : Lot);

   const double sls[] = {10, 100, 1000};

   for(int i = 0; i < ArraySize(sls); ++i)
   {
      const double sl = sls[i];
      const double slp = sl * lot * pv;
      const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);
      const double tp = (MathPow(y1, 1 / WinProbability) - Amount) / (lot * pv);
      Print(sl, " ", tp);
   }
}

出力:

10.0 13358.8842517167
100.0 13389.287146464994
1000.0 13693.516911708502
 
Stanislav Korotky #:

それは興味深いアプローチだ。しかし疑問が生じた。道徳的な期待とは、数学的な期待と同じ物理的な意味を持つのだろうか?記事中の数学的期待値には2つの解釈がある-合計によるもの(例えば記事冒頭の11ドゥカート)と、点によるもの(p*TP - (1-p)*SLの式)。道徳的期待についての説明はないが、基本式から判断すると、道徳的期待は合計である。

次の質問。私は、この論文にはない、要求される問題を考えたい。預託金が与えられ、希望する道徳的期待値が預託金の端数(Mr = Fraction * Deposit)とロットとして与えられる。勝つ確率の異なる値について,SL/TP曲線をプロットする.どうやら、確率0.5ではこの問題は定義されていないようだ。

手当たり次第にやってみたが、おそらく間違いがあっただろう。どこもかしこも変な数字かNaNが出てきて、ルート定義の領域を超えている。

例えば、SL側からTPを計算する:

出力:

string const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);

WinProbability - 1は常に負の値です...そしてそれは厳密に負であってはなりません。

これはより正しい

ファイル:
 
Stanislav Korotky #:

それは興味深いアプローチだ。しかし、疑問が生じた。道徳的な期待とは、数学的な期待と同じ物理的な意味を持つのだろうか?記事中の数学的期待値には2つの解釈がある-合計によるもの(例えば記事冒頭の11ドゥカート)と、点によるもの(p*TP - (1-p)*SLの式)。道徳的期待についての説明はないが、基本式から判断すると、道徳的期待は合計である。

次の質問。私は、この論文にはない、要求される問題を考えたい。預託金が与えられ、希望する道徳的期待値が預託金の端数(Mr = Fraction * Deposit)とロットとして与えられる。勝つ確率の異なる値について,SL/TP曲線をプロットする.どうやら、確率0.5ではこの問題は定義されていないようだ。

手当たり次第にやってみたが、おそらく間違いがあっただろう。どこもかしこも変な数字かNaNが出てくる。

例えば、SL側からTPを計算する:

出力:

つ目のエラーは、道徳的な期待値を割り当てることができないことである。

道徳的期待値は常に数学的期待値より小さい。両者は預金が増えるにつれて互いに近づいていく。したがって,この問題は次の条件に厳密に還元される:数学的期待値が正であれば,道徳的期待値も正である.

 
Aleksej Poljakov #:

string const double y1 = (1 + MoralExpectationPercent) * Amount * MathPow(Amount - slp, WinProbability - 1);

WinProbability-1は常に負です...そしてそれは厳密に負でなければなりません。

これはより正しい

厳密な数学的変換に従ったように見えるが、どこに間違いがあるのだろうか?とりあえず、値そのものの意味は括弧の後ろに置いておいて、数式を抽象化して見てみよう。

F*D=(D+L*TP*PV)^p*(D-L*SL*PV)^(1-p)-D。

我々は数十の道徳的な期待 数を得ていた。なぜ、任意の数を預託金の%として表すことができないのか?できる。

次にこうなる:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

1 / x^y -> x^-yであることに注意。コンピュータがカウントするのに重要ではないが、分数を取り除くことができる。

(1+F)*D * (..)^(p-1) = (..)^p

(1+F)*D * (D - L * SL * PV)^(p-1)] ^ (1/p) =(D + L * TP * PV)

私のコードでは、変数y1に角括弧で囲んだものを入れています。

あなたのコードのバージョンは式が不完全です。

 
Stanislav Korotky #:

私は厳密な数学的変換に従っているようだが、どこに誤りがあるのだろうか?とりあえず、値そのものの意味を括弧から外して、数式を抽象化して見てみよう。

F*D=(D+L*TP*PV)^p*(D-L*SL*PV)^(1-p)-D。

我々は数十の道徳的な期待 数を得ていた。なぜ、任意の数を預託金の%として表すことができないのか?できる。

次にこうなる:

(1+F)*D = (...)^p * (...)^(1-p)

(1+F)*D / (...)^(1-p) = (...)^p

1 / x^y -> x^-yであることに注意してください。コンピュータがカウントするのに重要ではありませんが、分数を取り除くことができます。

(1+F)*D * (..)^(p-1) = (..)^p

[ (1+F)*D * (D - L * SL * PV)^(p-1)] ^ (1/p) =(D + L * TP * PV)

私のコードでは、変数y1に角括弧で囲んだものを入れている。

あなたのコードのバージョンは式が不完全です。

この取引に道徳的な期待値を割り当てると、(道徳的な期待値は数学的な期待値よりも小さいという性質から)次のような不等式が得られます:

p* L * TP * PV -(1-p)*L * SL *PV > F*D

すなわち、道徳的期待値が正になるTPの値を見つける代わりに、数学的期待値が与えられた値より大きくなるようなTPの値を探し始める。