Nodejs MetaAPI クラウド / 移動平均の計算
P粉715274052
P粉715274052 2023-09-03 09:12:59
0
2
408

metaapi.cloud を使用して取引ボットを作成しており、移動平均 (高速/指数) を計算しようとしていますが、無効な値が返されます。コードは次のとおりです。

async moveAverage(symbol, period, type = "S") { letCandles = (await this.account.getHistoricalCandles(symbol, this.params.timeframe, null, period)).map(c => c.close); const 結果 = []; 合計 = 0 とします。 if (type === "S") { for (let i = 0; i < period; i ) { 合計 = キャンドル[i]; } result.push(合計 / 期間); for (let i = period; i
       

使用方法は次のとおりです: p>

async ontick(infos) let sma="await" this.movi​​ngaverage(infos.symbol, this.params.fast, "s"); console.log('sma ' sma[0]); 

ここでテストすると、sma は「1906.6963」を返すはずですが、「1900.7813」が返されます。 もしかしたら間違った計算方法を使っているのでしょうか? 誰かが解決策を持っていれば!前もって感謝します。 div>

P粉715274052
P粉715274052

全員に返信 (2)
P粉071743732
  • SMA は正しいようですが、EMA にはさまざまなパターンがあります。サンプルデータセットを投稿していないので、サーバーから何が渡されているかを推測するのは困難ですが、NaN、null、空の文字列やカンマ付きの数値など、変換できない値が多数ある可能性があります。指数などキャンドルを間違った値の配列に置き換えただけです。フィルタリングを行ってから計算を行います
  • 期間 > データセットを考えます。この場合、期間を length に設定します。

以下の例では、処理されたすべての値を表示するには期間を 1 に設定し、全体の平均を表示するには期間を非常に大きな数値に設定します。

私が思いつかなかった他のエッジケースが間違いなくあります。簡潔にするために、次の例では SMA を使用します。

リーリー リーリー
いいねを押す+0
    P粉563446579

    問題が見つかりました。これは MetaTrader の API、「getHistoricalCandles」が期待どおりに機能しないことに起因します。 API に書かれていることは次のとおりです:

    リーリー

    ここでの問題は StartTime パラメータです。空のままにしたり、Date.now()を入力すると、5 時間からのキャンドルが取得されます。これは間違いなく言われているように機能しません。以前、絶対的な最後のローソク足を取得するには、Date.now() 10000000000と入力する必要がありました。これは、API 側から発生しているため、現時点では解決できないタイムゾーン エラーである可能性があります。 . .

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!