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

 

現在も数値.aiコンテストに参加されている方へ-。

そこで、独自の暗号通貨(NMR)を導入し、最初はコンテストの参加者に配り、その後、ドルとともに当選者に配るようになったのですが、あなたも受け取ったかどうかチェックしてみてください。NMRはコンテスト口座から引き出し、交換機を通して一般的なお金に換えることができるようになりました。

これはドルに対する為替レートですが、例えばhttps://www.cryptonator.com/rates/NMR-USD、 全然悪くありません。
https://bittrex.com/Market/Index?MarketName=BTC-NMR

 
どこかで聞いたことがあるのですが、忘れてしまいました、価格の異なる通貨ペアを一つの尺度に持ってきて、あるBPを他のBPから足したり引いたりなどできるようにするにはどうしたらいいでしょうか?)
 
mytarmailS:
どこかで聞いていたのですが、忘れてしまいました。価格の異なる通貨ペアを、他のVRの加算、減算などを可能にする単一のスケールに正規化するにはどうしたらよいでしょうか? なぜなら、101のスマートなアイデアを持っていて、101回目にそれが機能しないことに気づいたのです)

変数の正規化または正規化

 
mytarmailS:
もうどこかで聞いたと思うのですが、忘れてしまいました。価格の違う通貨ペアを同じ尺度に持ってきて、他のBPと足したり引いたりなどできるようにするにはどうしたらいいでしょうか。でも101回目の賢いアイデアで、うまくいかないことに気づきました)。
重回帰
 

ブロス!!!皆さん、こんにちは...。MQL5に移行することにしたので、ある面ではコードで助けてください...。サポートチームから回答を得るまでに時間がかかりすぎている...。は答えられないかもしれない...

新しいインジケータを作ったのですが、変数の値が出力されません・・・どう説明すればいいでしょうか?

ファイル:
ChekParam.mq5  11 kb
 

この方法を思い出すのを手伝ってください.

li シートの中に6つほど道具があります

head(li[[1]])
    ticker per     date   time  open  high   low close   vol
1 SPFB.RTS   5 20160104 100500 75390 76320 75250 76000 14319
2 SPFB.RTS   5 20160104 101000 76000 76030 75790 75900  4818
3 SPFB.RTS   5 20160104 101500 75920 76050 75850 75970  2947
4 SPFB.RTS   5 20160104 102000 75970 76120 75900 76080  2415
5 SPFB.RTS   5 20160104 102500 76080 76140 75870 75920  2347
6 SPFB.RTS   5 20160104 103000 75910 76010 75580 75640  3787
> head(li[[2]])
   ticker per     date   time  open  high   low close   vol
1 SPFB.BR   5 20160104 100500 36.67 38.20 36.67 37.63 40185
2 SPFB.BR   5 20160104 101000 37.63 37.64 37.58 37.61  5914
3 SPFB.BR   5 20160104 101500 37.62 37.63 37.56 37.61  5103
4 SPFB.BR   5 20160104 102000 37.62 37.77 37.62 37.73 13513
5 SPFB.BR   5 20160104 102500 37.74 37.78 37.59 37.60  5061
6 SPFB.BR   5 20160104 103000 37.60 37.66 37.48 37.53  6239
> head(li[[3]])
     ticker per     date   time  open  high   low close  vol
1 SPFB.GAZR   5 20160104 100500 13912 13943 13850 13936 4712
2 SPFB.GAZR   5 20160104 101000 13936 13943 13917 13937 1180
3 SPFB.GAZR   5 20160104 101500 13934 13937 13921 13926 1298
4 SPFB.GAZR   5 20160104 102000 13931 13938 13925 13934  294
5 SPFB.GAZR   5 20160104 102500 13935 13941 13927 13927  540
6 SPFB.GAZR   5 20160104 103000 13931 13934 13889 13896  704

すべてのツールで日付と時刻が異なるインデックスにあり、それぞれのツールに「穴」があります。 すべてのツールから日付を削除して、すべてのツールに存在する日付と時刻だけを残すには、簡単に言うと、これらのデータフレームをすべて同期させることができます。

 
ミハイル・マルキュカイツ

ブロス!!!皆さん、こんにちは...。MQL5に移行することにしたので、ある面ではコードで助けてください...。サポートチームから回答を得るまでに時間がかかりすぎている...。は出ないかもしれない...

このコードを作成しましたが、変数の値が出力されません。


1.どの値を出力したいのかがわからない。

2.カスタムインジケータが 正しく呼び出されていない - MT5におけるiCustomの特殊性についての記事をお読みください。

 
mytarmailS:

この方法を思い出すのを手伝ってください.

li シートの中に6つほど道具があります

すべてのツールから日付と時刻を削除し、すべてのツールに存在する日付と時刻だけを残すにはどうすればよいですか?

私はこの方法で行いました。日付と時刻を結合した新しい列を作成し、異なるテーブルでそのような値の一致を検索しました。
liSynchronized <- li
#создание  новой колонки по которой будут сравниваться значения разных таблиц
for(i in 1:length(liSynchronized)){
  liSynchronized[[i]]$datetime <- paste0(liSynchronized[[i]]$date, liSynchronized[[i]]$time)
}

while(TRUE){
  somethingChanged <- FALSE
  for(i in 1:length(liSynchronized)){
    syncIndexes <- rep(TRUE, nrow(liSynchronized[[i]]))
    for(j in (1:length(liSynchronized))[-i]){
      syncIndexes <- syncIndexes & (liSynchronized[[i]]$datetime %in% liSynchronized[[j]]$datetime)
    }
    if(!all(syncIndexes)){
      somethingChanged <- TRUE
    }
    liSynchronized[[i]] <- liSynchronized[[i]][syncIndexes, ]
  }
  if(!somethingChanged){
    break
  }
}

また、削除されたバーはohlc値に誤差を生じます。つまり、ある価格でバーが閉じると、削除されたバーのためにテーブルの次のバーが異なる価格で開き、削除されたバーの高値と安値が失われます。削除されたバーの高値、安値、終値を削除されなかった前のバーと比較し、必要であれば更新する必要があります。
ちょうどオープンプライスでやっていたので、そこまで気にすることはなかったですね。

 
アレクセイ・ヴャジミキン

1.出力したい変数の値が明確でない。

2.カスタムインジケータが コード内で正しく呼び出されていない - MT5におけるiCustomの特殊性についての記事をお読みください。


エヘン...えっとこの情報がどのように役立ったかというと、ヘルプをすでに読んでいて少し混乱している場合です...。

 
ミハイル・マルキュカイツ

エヘン...エヘン...と、この情報が何か役に立ったかというと......すでにヘルプを読んでいて、少し混乱している場合......。


まあ、答えていないならどうしようもないのですが......どんな変数を呼び出す必要があるのでしょうか。

そしてiCustomの場合は、ヘンデルを作成する、つまり変数にバインドする必要があります。

Expert Advisorではだいたいこんな感じでやっています(原理はインジケータでも同じです ...)

//Хендали - мать их
int handle_iMomentum;

int OnInit()
  {
//Хендаль объявляем iMomentum
   handle_iMomentum=iMomentum(Symbol(),0,100,0);
   if(handle_iMomentum==INVALID_HANDLE)
     {
      PrintFormat("Failed to create handle of the iMomentum indicator for the symbol %s/%s, error code %d",
                  Symbol(),EnumToString(Period()),GetLastError());
      return(INIT_FAILED);
     }

   return(INIT_SUCCEEDED);
  }

void OnTick()
  {
double Momentum=Momentumf(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Momentumf(const int index)
  {
   double MA[1];
   ResetLastError();
   if(CopyBuffer(handle_iMomentum,0,index,1,MA)<0)
     {
      PrintFormat("Failed to copy data from the iMA indicator, error code %d",GetLastError());
      return(0.0);
     }
   return(MA[0]);
  }

理由: