指数移動平均(EMA)計算機
10から1ずつ増える5つの値を係数0.5でならすと、最後のEMAは13.0625になります。新しい値ほど重く、古い値の影響は等比的に小さくなります。ならした推移がすべて分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 系列
- 10, 11, 12, 13, 14
- 係数
- 0.5
- N
- 5
- Ema
- 10, 10.5, 11.25, 12.125, 13.0625
- 最後のEMA
- 13.0625
指数移動平均(EMA)は、最新の観測値に平滑化係数αを掛け、直前のEMAと重み(1 − α)で合成する再帰的な平滑化です。固定窓内の各点に等しい重みを与え窓外はゼロにする単純移動平均と違い、EMAは幾何的に減衰する影響で履歴全体を覚え、直近の読みが遠い過去より結果を動かします。ホットパスに言語モデルや外部の市場データサービスは使いません。
指数移動平均とは何か、単純平均と何が違うか
単純移動平均(SMA)から始めます。窓長Nを選び、直近N点の平均を取り、窓を前へずらします。窓内の各点の重みは1/N、Nより古い点は重みゼロです。
この硬い切断は説明しやすい一方、大きなスパイクが窓に出入りすると段差ができ、有用な古い情報を完全に捨てます。指数移動平均は硬い窓を、0と1の間の単一の平滑化係数αに置き換えます。各時点で新しい推定は新しい観測と直前推定の凸結合です。
再帰を展開すると、kステップ前の観測の重みは α · (1 − α)^k となり、完全にはゼロに落ちず、αが大きいと速く減衰する幾何級数になります。αが小さいと経路は滑らかで遅れが大きく、αが1に近いとEMAは最新値に密着します。
実務では「N期間EMA」がN期間SMAと同程度の半減期になるよう α = 2 / (N + 1) とすることが多いですが、数学的対象に必要なのはαそのものです。価格・出来高・センサー流・Web指標・残差ノイズにEMAを使うのは、シード後の更新が1ティックあたりO(1)で、直前のEMA状態だけが必要で、オンライン適用時に先読みしないからです。
系列全体の単なる算術平均は別統計です。最初と最後を等しく扱い、時間フィルタではありません。本ツールは明示的αの再帰EMAフィルタであり、移動窓平均でも、指数分布の平均・分散でもありません。
実務での使い方、因子の選び方、料金と提供
取引ノートの確認、ノイズの多い実験室センサーの平滑化、パッケージなしでの統計授業での幾何重みの説明など、すぐEMAが欲しいときはブラウザツールを使います。αは領域の慣例から選びます。
短く反応的なフィルタは0.3–0.5付近、遅いトレンドは0.05–0.1付近、一般的なspan写像 α = 2 / (N + 1) では9期間EMAがα = 0.2、19期間がα = 0.1です。span Nだけを持つ場合は呼び出し前に一度変換します。
受理系列はWorker分離向けに最大10万点までで、授業表・日次価格履歴・典型的な分析断片を素早く処理します。言語モデルも外部市況フィードも乱数もなく、継続的インテグレーションや再現可能な教材に安全に固定できます。
活用例
取引ノートでの価格・リターン平滑化
クオンツや学生が終値に明示的α(またはspan N由来のα)でEMA経路を計算し、スプレッドシート式なしで遅れ・ノイズ・クロスオーバー規則を比較します。
センサーと運用メトリクス
技術者が温度・遅延・エラー率のストリームを反応的なαで平滑化し、ダッシュボードが直近のレジーム変化を強調しつつ単一サンプルのスパイクを抑えます。
よくある質問
平滑化係数が範囲外のときは?
αは0より大きく1以下の有限数でなければならず、範囲外は拒否されます。
N期間EMAのspanをαに変換するには?
一般的な慣例は α = 2 / (N + 1) です。得られたαをfactorに渡してください。本ツールはspanのみでは受け付けません。
指数移動平均はどのように計算しますか?
最初のEMAは最初の値と同じです。その後は、係数に新しい値を掛けたものと、1から係数を引いた値に直前のEMAを掛けたものを足します。更新には直前の結果だけがあれば十分です。
平滑化係数はどう選べばよいですか?
反応の速い短期の平滑化では0.3から0.5付近、ゆっくりした傾向を見るなら0.05から0.1付近がよく使われます。係数が大きいほど最新の値に近づき、小さいほど滑らかですが遅れが出ます。
EMAと単純移動平均はどう違いますか?
単純移動平均は決まった期間内の点を同じ重みで扱い、それより古い点を無視するため、急な値の出入りで段差が生じます。EMAは過去全体を、等比的に小さくなる重みで残します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/exponential-moving-average \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"series":[10,11,12,13,14],"factor":0.5}'const res = await fetch("https://api.kit.forhosting.com/stat/exponential-moving-average", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/exponential-moving-average",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/exponential-moving-average", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"series":[10,11,12,13,14],"factor":0.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"series":[10,11,12,13,14],"factor":0.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/exponential-moving-average", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"series": [
10,
11,
12,
13,
14
],
"factor": 0.5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.exponential_moving_average",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本計算機は有限数値の時系列と区間(0, 1]の因子αを受け取り、最初の観測で経路を初期化し、以降の各添字で EMA_t = α · x_t + (1 − α) · EMA_{t−1} を適用します。応答はEMA配列全体、最終のlast_ema、系列長n、使用した因子、簡潔な式文字列を返します。空系列・非有限の要素・(0, 1]外の因子はinvalid_inputで失敗し、呼び出し側が黙ったNaNを受け取ることはありません。演算は完全に決定的で、ブラウザでは無料、APIでは成功1件あたり$0.002です。
指数移動平均とは何か、単純平均と何が違うか
すなわち EMA_t は α 倍の x_t に (1 − α) 倍の EMA_{t−1} を加えたものです。
入力の検証とEMA経路の構築方法
series(時系列順・古い順の有限数値の非空配列)とfactor(平滑化係数α)です。検証後、核は最初の系列値でEMA_0を初期化し、一度だけ前方へ進みます。能力は2つの必須フィールドで呼び出します。エンジンは系列に対してvalues、data、x、prices、因子に対してalpha、smoothing、smoothing_factorの別名も受け付けるため、既にその語彙のスクリプトはリネーム不要です。欠落フィールド、配列でない系列、空系列、公開上限を超える長さ、有限でない要素、0より大きく1以下の有限数でない因子はすべて拒否します。因子が範囲外のときはinvalid_input下で明示メッセージとなり、検証失敗は前払い残高を消費しません。各添字tで EMA_t = α · x_t + (1 − α) · EMA_{t−1} とし、ランタイム間で安定したJSONのため中間結果を小数12桁に丸め、経路全体を保存します。この同型性は、宿題の答えをAPIに当たる自動採点と比較する場面や、継続的インテグレーションが数値フィクスチャを固定する場面で重要です。応答はn、factor、series、ema、last_ema、formulaを返し、下流コードは再送なしで経路の描画、最終水準の検証、中間段の再計算ができます。
実務での使い方、因子の選び方、料金と提供
多くの系列を一つの契約で安定したJSONにしたいスクリプト、学習基盤、バックテスト、ダッシュボードではAPIを使います。成功した各リクエストは$0.002の1アイテムとして課金され、検証失敗は残高を消費しません。結果は完全に決定的で、同じ系列と因子は常に同じema配列とlast_emaを返します。シード規則を隠したりαを黙ってクランプする不透明な平滑器より閉形式のEMA再帰を好む場面では、チャート支援、定量チュートリアル、品質ダッシュボード、コーディング面接サンドボックス、前処理にエンドポイントを接続できます。
連携の活用例
再帰フィルタと幾何重みの教育
講師と宿題チェッカーがEMA重みが(1 − α)^kで減衰することを示し、安定したゴールデンlast_emaに対して学生実装を検証します。
技術的な質問
この計算機で指数移動平均を求めるには?
series(数値配列・古い順)とfactor((0, 1]のα)をJSONでstat.exponential_moving_averageに送ってください。応答はema、last_ema、n、factor、series、formulaを返します。
EMAの式は何ですか?
EMA_0 = x_0;t ≥ 1 では EMA_t = α · x_t + (1 − α) · EMA_{t−1}(0 < α ≤ 1)。αが大きいほど直近点を重視します。
指数移動平均計算機は無料ですか?
ブラウザツールはお使いの端末で無料です。API呼び出しは成功1件あたり$0.002のKIT前払い残高を使い、検証失敗は課金されません。