トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2001

 
mytarmailS:

ああ、それなら私が書いたことは忘れてください、私の言語ではi+1は未来です


であれば、この写真で行きましょう。


X[,10]は1 , x[,1]は10です。

 
int ForecastSum = 0;

int ForecastStart = 1;

if(X[ForecastStart] <= -0.025 && X[ForecastStart] > -0.08201612905){ForecastSum++;}
if(X[ForecastStart + 1] > -0.057983871 && X[ForecastStart + 1] <= -0.01129032255 && X[ForecastStart] > 0.0219354839){ForecastSum--;}
if(X[ForecastStart + 1] <= -0.057983871){ForecastSum++;}
if(X[ForecastStart + 1] > 0.0702419355){ForecastSum--;}
if(X[ForecastStart + 2] > 0.01362903225 && X[ForecastStart + 2] <= 0.0564516129 && X[ForecastStart + 1] > 0.00153225805){ForecastSum--;}
if(X[ForecastStart + 2] <= 0.0564516129 && X[ForecastStart + 2] > -0.01153225805 && X[ForecastStart + 1] <= 0.0040322581 && X[ForecastStart] <= -0.00596774195){ForecastSum--;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 2] <= -0.00403225805 && X[ForecastStart] > 0.00032258065){ForecastSum++;}
if(X[ForecastStart + 2] <= -0.03370967745 && X[ForecastStart] > 0.02814516125){ForecastSum--;}
if(X[ForecastStart + 3] > -0.025 && X[ForecastStart + 3] <= -0.00403225805 && X[ForecastStart + 2] > -0.03370967745){ForecastSum++;}
if(X[ForecastStart + 2] > -0.0266935484 && X[ForecastStart + 2] <= -0.025){ForecastSum--;}
if(X[ForecastStart + 1] > 0.0091129032 && X[ForecastStart + 1] <= 0.0277419355 && X[ForecastStart] <= -0.00096774195){ForecastSum++;}
if(X[ForecastStart + 1] <= 0.0564516129 && X[ForecastStart + 1] > 0.03935483875){ForecastSum++;}
if(X[ForecastStart + 2] > 0.02346774195 && X[ForecastStart + 1] > -0.057983871 && X[ForecastStart + 1] <= -0.0212903226){ForecastSum--;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 2] <= 0.0233870968 && X[ForecastStart + 1] <= 0.0233870968 && X[ForecastStart] > 0.0091129032 && X[ForecastStart] <= 0.02766129035){ForecastSum++;}
if(X[ForecastStart + 2] > -0.03370967745 && X[ForecastStart + 1] <= -0.00120967745 && X[ForecastStart] > -0.00596774195 && X[ForecastStart] <= 0.0229032258){ForecastSum++;}
if(X[ForecastStart] > 0.0012903226){ForecastSum--;}
if(X[ForecastStart + 9] == X[ForecastStart + 9]){ForecastSum++;}

これを、データ配列にかけたら、半々になったんです。

マキシムの絵の方がかっこよかった。

 
Evgeniy Chumakov:

これを、データ配列にかけたら、半々になったんです。

マキシムの絵の方がかっこよかった。

コードに間違いがあるからデタラメになるんだよ。

98%であることが望ましい。

マキシムのように))


============================

最初の5キロのデータで学習し、最後の1000キロをテストに使いました。

このモデルはこうでなくっちゃね+-。

 ###  тест на нов. данных
Reference
Prediction  -1   1
        -1 619   4
        1    1 565
                                          
               Accuracy : 0.9958          
                 95% CI : (0.9902, 0.9986)
    No Information Rate : 0.5214          
    P-Value [Acc > NIR] : <2 e-16          
                                      


しかし、この結果は決して起こらない。データをめちゃくちゃにしたか、データが歪んでいて予測に価値がないかのどちらかだ...。

ちなみに、そのデータはどうされたのですか?

 
condition                                                                                                       
 
[1,] "X[,10]<=-0.025 & X[,10]>-0.08201612905"                                                                        
                                                                          
      pred
 [1,] "1" 


上はあなた、下は私のような


int ForecastSum = 0;

int ForecastStart = 1;

if(X[ForecastStart] <= -0.025 && X[ForecastStart] > -0.08201612905){ForecastSum++;}

ForecastSumは1を足したり、1を引いたりするものです。

ForecastStartは、どのバーから始めるか(シフト)、0カウントの予測バーです。


予測値が0になることがあるんです。

 
Evgeniy Chumakov:


上はあなた、下は私のような


ForecastSumは1を足したり、1を引いたりするものです。

ForecastStartは、どのバーから始めるか(シフト)、0カウントの予測バーです。


予測値が0になることがあるんです。

理解できない。

X[,1]を持っている......。X[,10]

は1から10までの値を持っています。

で、forecaststartが1〜9、つまり9の値域である。

なんで)

 
mytarmailS:

理解できない。

X[,1]を持っている......。X[,10]

1から10までの値域を持つ

で、1〜9の範囲、つまり9を指定しています。

なんで)

ForecastStart + 9

1(スタートバー)+9=10となります。


array[セル番号] - mt4ではこのように動作します。

 
私が投稿したファイルでは、最初の行は最後に値を受け取った時で、配列の0セルに位置し、次に1,2,3,4,5,6,7,8セルと続いています。
 
Evgeniy Chumakov:

1(スターティングバー)+9=10となります。


array[セル番号] - mt4ではこのようになります。


が、レンジ自体は9

ForecastStart <- 1:9

ForecastStart
 1 2 3 4 5 6 7 8 9

length(ForecastStart)
9
 
Evgeniy Chumakov:
私が投稿したファイルでは、冒頭の1行目が時間的に来た最後の値です。 これは配列の0セルにあり、次に1,2,3,4,5,6,7,8などのセルに移動します。

うん)))) 誰がそんなことするんだ?)

変更します))

 

массив[0],[1],[2],[3],...[n]

は、セル0を予測する必要があります。

ForecastStartは範囲ではなく、オフセットです。つまり、セル1から始める。 x[ForecastStart + 9] = 10 は配列のセルである。

したがって、セル1~10の範囲となる。

理由: