私たちのファンページに参加してください
組合せ論 - MetaTrader 5のためのライブラリ
- ビュー:
- 1164
- 評価:
- パブリッシュ済み:
- 2016.07.15 11:44
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
初期の組合せ論機能ライブラリー。
組合せ論は数学の一分野で、離散構造、集合(組み合わせ、置き換え、順列およびenumerative_combinatorics)とそれらの関係(例えば partially_ordered_set)を研究するものです。組合せ論は代数、幾何学、確率論などの 数学の 多分野に関係し、 知識のさまざまな分野での応用の広いスペクトルを有します(例えば遺伝学、コンピューター科学、統計物理学)。
1)1番目の関数:
//+------------------------------------------------------------------+ //| Number factorial | //+------------------------------------------------------------------+ double factorial(int x);
階乗はしばしば組合せ論、整数論およびf関数解析学で使われます。
階乗は非常に急速に大きくなる関数です。増加は任意の次数を持つ多項式 や指数関数 (二重指数関数よりは遅い)より急速です。
これが戻り値がdouble型である必要のある理由です。これは、階乗があまりにも速く増加していて13 がlong型にはまらないからです。
2)2番目の関数:
//+------------------------------------------------------------------+ //| 組み合わせ(combination) | //+------------------------------------------------------------------+ double combination(int N,int k);
組み合わせは、N個の要素からなる集合からいくつかのユニークな要素の集合を選択することを可能にします。各集合は、k個の要素を持つことになります。
10の売買シグナルがあったと仮定します。そして、取引システムでは3のみが使用されるとします。そして、さらなる分析のためには、0のシグナルの集合からすべての可能な集合(3シグナル)を選択する必要があります。
ここで、そのような集合の数が組み合わせの数になります。
C(k,N) = C(3,10) = 120
すなわち3シグナルそれぞれには120のユニークな組み合わせがあります。
3)3番目の関数:
//+------------------------------------------------------------------+ //| 繰り返しを許した組合せ (combination) | //+------------------------------------------------------------------+ double _combination(int N,int k);
繰り返しを許した組合せは、集合内のいくつかの要素が複数回提示されることを認めます。5つの果物があると仮定します。3つの要素からなる集合が2つのミカンと1つのリンゴを持つとしますそのような集合は繰り返しを許した組合せです。みかんが繰り返されます。
10のシグナルと可能な集合(3シグナル)では、繰り返しを許した組合せの数を見つけます。
~C(k,N) = ~C(3,10) = 220
4)4番目の関数:
//+------------------------------------------------------------------+ //| 順列 | //+------------------------------------------------------------------+ double arrangement(int N,int k);
順列は、集合内でのの要素の順序が重要であるという事実によって組み合わせから異なります。リンゴ・オレンジ・バナナ、リンゴ、バナナ、オレンジの3つの要素を持つセットが2つあると仮定します。組み合わせとしてはこれは1つです(要素が1組)。しかし、順列としてはこれは2のの組み合わせ(要素が集合内での順序を変更)となります。
組み合わせよりも順列が多く存在することは明らかです。例えば、シグナルの集合(10シグナル)とその可能な集合(3シグナル)から多くの順列を得ることができます。
A(k,N) = A(3,10) = 720
5)5番目の関数:
//+------------------------------------------------------------------+ //| 繰り返しを許した順列 | //+------------------------------------------------------------------+ double _arrangement(int N,int k);
すなわち組み合わせの場合と同様に集合内の要素の繰り返しを認めます。
その後、10のシグナルとその可能な集合(3シグナル)では次のような繰り返しを許した数が取得さrせます。
~A(k,N) = ~A(3,10) = 1000
6)6番目の関数:
//+------------------------------------------------------------------+ //| 置き換え | //+------------------------------------------------------------------+ double permutation(int N);
置き換え(permutation)では、要素の集合での順序をどのように変えられるかを知ることができます。
シグナル(10シグナル)の集合では多数の置き換えが得られます:
P(N) = P(10) = 3 628 800
3シグナルの集合で得られえる置き換え:
P(3) = 6
置き換えの数が帰るのは 階乗です。よって3要素と10要素の置き換えの数がこんなにも違うわけです。
7)7番目の関数:
//+------------------------------------------------------------------+ //| 繰り返しを許した置き換え | //+------------------------------------------------------------------+ double _permutation(int &nM[]);
すなわち組み合わせの場合と同様に集合内の要素の繰り返しを認めます。
パラメータは配列を受け渡し、各要素が繰り返すことができる回数を示します。
例えば、3つのシグナルのそれぞれが1回繰り返さられる場合は:
~P(N) = ~P({1,1,1}) = 6
つまり ~P({1,1,1}) = P(3)
1番目のシグナルが2回繰り返すことができると仮定すると:
~P({2,1,1}) = 12
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1197
iSAR指標の主な利点は、現在の価格の時系列に基づいているおかげで他の指標に適用可能だということです。
ColorX2MA-Parabolic偽信号の最良の濾過のための基本的な価格のシリーズとしてX2MA移動平均を使用するiSARテクニカル指標。