ALMAは、一定本数の価格へ山形の重みを掛けて平均する移動平均線です。正式にはArnaud Legoux Moving Averageと呼ばれます。重みの山をどこへ置くか、どれくらい狭くするかを調整できるため、同じ期間でも単純移動平均線や一般的な加重移動平均線とは違う動きになります。
調整に使うのが、期間、オフセット、シグマという三つの値です。オフセットは重みの中心位置、シグマは重みの広がりに関係します。ただし「シグマを大きくすれば分布も広がる」と覚えると、この指標では逆に理解してしまう場合があります。ALMAでよく使われる式は、幅を「期間÷シグマ」で決めるためです。
この記事では小さな価格例から重みの形を図解し、SMA・WMA・EMAとの違い、設定変更の意味、サービス間で表示がずれる理由まで整理します。基本の重み付けはEMA・WMAの計算と使い分け、平均線の位置と傾きは移動平均線の基礎で確認できます。
1.ALMAは何を平均しているのか
ALMAは、たとえば直近20本の終値を取り出し、それぞれへ異なる重みを配って足し合わせます。標準的な計算では、重みは正の値で、合計が1になるように調整します。価格を高くするための倍率ではなく、合計100%の持ち分を過去の各足へ配るイメージです。
SMAなら20本へ同じ重みを配ります。線形WMAなら、古い順に1、2、3と増える重みを使います。ALMAでは、指定した位置を中心とするガウス形の山を使います。正規分布に似た滑らかな山ですが、有限の窓で切り取り、合計をそろえて使うため、無限に続く分布そのものではありません。[出典1][出典2]
重みの山が最近の足に寄れば、新しい価格の影響が大きくなりやすくなります。ただしオフセットが1より小さい場合、最新の足より少し前の足が最大の重みになることがあります。「新しい足ほど必ず重い」とは限らない点が、線形WMAとの違いです。
また、通常のALMAは過去と現在の足だけで計算できます。ガウス形という言葉から、現在の前後へ同じ本数を置く未来データ込みの平滑化を想像する必要はありません。この記事の計算も、判定時点までにある直近N本だけを使います。
| 方式 | 重みの特徴 | 履歴の扱い |
|---|---|---|
| SMA | 窓の中で均等 | 直近N本 |
| 線形WMA | 古い順から段階的に増加 | 直近N本 |
| EMA | 新しい価格を取り込み、古い影響を指数的に残す | 前のEMAを引き継ぐ |
| ALMA | 指定した中心付近が山形に重い | 標準的には直近N本 |
2.古い足と新しい足の番号を先に決める
計算を読む前に、窓の中の番号をそろえます。本記事ではN本を古い順にi=0、1、2、…、N−1と番号付けします。i=0が最古、i=N−1が最新です。配列の先頭へ最新の価格を入れるサービスもあるため、説明の番号とプログラムの並びが逆になる場合があります。
価格の順序を間違えると、最近の価格を重くするつもりが古い価格を重くしてしまいます。式だけをコピーして、価格配列の順序を確認しないことが原因です。右肩上がりの簡単な価格を入れ、オフセットを新しい側へ動かしたとき平均値が上がるかを見ると、基本的な向きを確かめられます。
重みの中心位置をm、幅をsとします。よく使われる式は「m=オフセット×(N−1)」「s=N÷シグマ」です。ただしmを整数へ切り捨てる実装もあります。QuantConnectの公開コードではMath.Floorを使っており、ここが小数のまま計算する方式との差になります。[出典2]
この違いを隠して、すべてのALMAが完全に同じ値を出すと説明することはできません。本記事ではまずmを小数のまま使う方式で重みの意味を説明し、その後に切り捨てを使う方式との数値差を示します。どちらを使った図かも注記します。
3.計算式を三つの段階に分ける
第一段階は、中心と幅から各足の未調整の重みを計算することです。式は「w_i=exp{−(i−m)²÷(2s²)}」です。expは指数関数を表します。中心mへ近い位置ほど重みが大きく、離れると小さくなります。手計算しにくい場合でも、山の形と中心からの距離を見れば意味を追えます。
第二段階は、すべてのw_iの合計を求め、各w_iをその合計で割ることです。これを正規化と呼びます。正規化後の重みをa_iとすれば、a_i=w_i÷Σw_iです。合計が1になるため、すべての入力価格が100円ならALMAも100円になります。
第三段階は、各価格へa_iを掛けて合計することです。ALMA=Σ(a_i×P_i)です。計算の流れは、重みの山を作る、合計を1にそろえる、価格に掛けて足す、の三つです。前日のALMAを更新式へ代入するEMA方式とは異なります。
通常の範囲の設定で正規化した重みがすべて正なら、ALMAは対象窓の最安値と最高値の間に収まります。たとえば窓の価格が100〜110円なら、標準的な計算で112円にはなりません。ただし最新価格が100円のとき、過去の110円へ重みがあれば100円より上になるのは自然です。
4.5本の価格で実際に求める
古い順に100、102、104、106、108円という5本を使います。N=5、オフセット=0.5、シグマ=5とすると、m=2、s=1です。この例ではmが整数なので、小数のまま使う方式でも切り捨てる方式でも同じ重みになります。同じ価格列で計算すると、線の名前だけでは分からない重みの働きが見えます。設定を変える前に、この形を持っておきたいです。
未調整の重みは、古い順に約0.1353、0.6065、1、0.6065、0.1353です。合計で割ると、約5.45%、24.42%、40.26%、24.42%、5.45%になります。中央の104円へ最も大きな重みが付き、両端の100円と108円は同じ小さな重みになります。
| 古い順の番号 | 価格 | 重み/価格×重み |
|---|---|---|
| 0 | 100円 | 約5.45%/約5.45円 |
| 1 | 102円 | 約24.42%/約24.91円 |
| 2 | 104円 | 約40.26%/約41.87円 |
| 3 | 106円 | 約24.42%/約25.89円 |
| 4 | 108円 | 約5.45%/約5.88円 |
| 合計 | N=5、オフセット0.5、シグマ5 | 100%/104円(未丸め値で計算) |
この価格列は一定の刻みで上がっており、重みは中央を挟んで対称なので、ALMAは104円です。SMAもこの例では104円になります。ただし、同じ値になるのは価格列と重みの対称性によるもので、ALMAとSMAが同じ指標になったわけではありません。
たとえば中央の価格だけが大きく動けば、そこに約40.26%を配るALMAと、各20%を配るSMAでは影響の大きさが変わります。ある一日で値が一致したことだけをもって、設定や計算方式が同じだと判断しないようにします。
5.オフセットは重みの山を移動させる
次にN=5、シグマ=5を固定し、オフセットを0、0.5、1へ変えます。古い順に番号を付ける本記事の定義では、0が最も古い側、0.5が中央、1が最も新しい側に中心を置く設定です。

同じ100、102、104、106、108円では、オフセット0のALMAは約101.04円、0.5は104円、1は約106.96円です。重みが新しい側へ移るほど、上昇中の最新価格へ近づくことが分かります。下落中なら逆に、新しい側を重くするほど平均は低くなりやすくなります。
オフセットを0.85へすると、中心は5本の例でm=3.4です。最新の番号4よりやや手前へ中心があり、重みの最大値は最新より前の位置になる場合があります。そのため、オフセット0.85を「最新足が必ず最大の重み」と覚えないことが大切です。
重みの中心を過去側へ寄せると、直近の一時的な動きの影響を弱められる場合があります。しかし、相場が本当に転換した場合もその変化を取り込むのが遅くなります。滑らかさと反応の速さを両方無条件に増やせる調整ではありません。
6.シグマを大きくすると、山は狭くなる
本記事の式ではs=N÷シグマなので、Nを固定してシグマを大きくするとsが小さくなります。したがって重みは中心の近くへ集中します。通常の正規分布で標準偏差をσと書く場合の直感を、そのままALMAの設定名「シグマ」へ持ち込まないようにします。

N=20、オフセット=0.85を固定した図では、シグマを2、6、10と増やしたときの重みを比較しています。小さいシグマでは比較的広い範囲へ重みを配り、大きいシグマでは中心付近の少数の足が強く効きます。実際の重みは窓の端で切られ、正規化される点も図で確認できます。
ただし「シグマを大きくすれば必ず最新価格への反応が速い」とは限りません。中心が最新より前なら、山を狭めるほどその過去位置へ集中し、最新の足の重みが小さくなる場合があります。反応を決めるのはシグマ一つではなく、オフセットとの組み合わせです。
中心をちょうど窓の中央に置いて非常に狭くすると、中央付近の価格を強く取り出す線に近づきます。見た目が滑らかな区間でも、実態として数本前の価格を強く参照している可能性があります。線の形だけでなく、各足に何%を配っているかを確認するほうが設定の意味を把握できます。
7.期間を変えると、見る範囲と重みの形が変わる
期間Nは、平均の対象となる本数です。10本から20本へ変えると、対象とする過去の範囲が広がります。同時にm=オフセット×(N−1)とs=N÷シグマの値も変わります。そのため、期間だけを変えても中心の位置と幅の具体的な本数は変わります。
日足の20本と5分足の20本は、同じ「20」でも時間の意味が違います。長い足から短い足へ切り替えて線が敏感になった場合、ALMA固有の性質なのか、足の時間が短くなったことの影響なのかを分けて考えます。
過去の一定本数だけを使うALMAは、必要な窓がそろえば、その窓より前の価格を直接計算へ残しません。前の平均値を引き継ぐEMA・KAMAとは、この点が違います。一方、窓の中のデータ自体が修正されれば、ALMAの過去値も変わり得ます。
期間、オフセット、シグマを同時に変えると、なぜ表示が変わったのか分かりにくくなります。最初は期間とシグマを固定してオフセットだけを比べ、次にシグマを変えるなど、変更を一つに絞ると理解を深めやすくなります。
8.小数の中心と整数の中心で、値はどれくらい違うか
N=5、オフセット=0.85、シグマ=5の例では、小数中心はm=3.4です。切り捨てを行う方式ではm=3になります。同じ100、102、104、106、108円を入れると、小数中心のALMAは約106.31円、切り捨て中心では約105.74円になります。
差は約0.57円です。この例の価格帯で差が大きいか小さいかだけでなく、判定価格が二つの線の間にあった場合、上抜けの判断が変わる点に意味があります。実装差は見た目の問題にとどまらず、厳密な売買条件の一致に関わります。
| 計算条件 | 中心m | ALMAの値 |
|---|---|---|
| 小数中心 | 0.85×4=3.4 | 約106.31円 |
| 整数へ切り捨て | floor(3.4)=3 | 約105.74円 |
| 共通の入力 | 100、102、104、106、108円 | N=5、シグマ5、古い順 |
| 比較時の要点 | 丸めと価格の並びを確認 | 表示差が判定の差になる場合もある |
QuantConnectの公開実装では、中心を切り捨て、正規化した重みの配列を反転させて、最新足から並ぶ内部データへ対応させています。[出典2] 表面的に式の添字だけを見て「重みが逆だ」と結論付けず、価格配列と重み配列を一緒に確認します。
また、サービスが最初のN本未満でどんな値を表示するかも確認します。必要本数が足りない間は空欄にする方式、暫定値を返す方式などが考えられます。窓がそろう前の値を、その後と同じ条件の売買検証へ混ぜないことが大切です。
9.SMAやWMAと同じ価格で比べる
図3では、上昇、往復、下落をつないだ架空の価格へ、20期間SMA、線形WMA、ALMAを重ねています。ALMAはオフセット0.85、シグマ6、小数中心を採用しています。同じ価格、同じ期間を使うことで、重みの違いに注目できます。

上昇中は最近の価格を重くする線が価格へ近づきやすくなりますが、急な反転では直前まで大きかった価格の影響が残ります。往復の多い区間でどの線が見やすいかも、価格の周期や振れ幅によって変わります。図で一度見やすく見えた設定を、そのまま全銘柄へ適用する根拠にはできません。
ALMAの線が滑らかでも、上抜けや下抜けの回数が少ないとは限りません。価格が線の周囲を細かく往復すれば、交差は何度も起こります。線の見た目と、具体的な売買条件から発生する取引数を分けて評価します。
比較するときには、縦軸の範囲や表示期間を変えないことも役立ちます。別々の画面で拡大率を変えてしまうと、一方だけが敏感に見える可能性があります。同じ図へ重ね、数値を同じ日付で確認してから、使い方を検討します。
10.実際に使うなら、傾き・位置・交差を区別する
ALMAが前日より高いことは傾きの情報、終値がALMAより高いことは位置の情報、前日は下で今日は上という変化は交差の情報です。これらをすべて「上昇サイン」とまとめると、どの条件を満たした日に行動するのか曖昧になります。
方向の確認に使うなら、一定本数にわたる傾きを見る方法があります。候補の発見に使うなら、確定終値が上抜けた日だけを拾う設計が考えられます。どちらの場合も、価格が直近高値に近いのか、売買が成立しやすいのか、決算などをまたぐのかは別に確認します。
例として「前日の終値がALMA以下、今日の終値がALMAより上、今日のALMAが前日より上」という条件を置けば、位置と傾きと交差を分けて記録できます。ただしこれは検証可能な条件を示したもので、利益が確認された手法ではありません。
日足の確定終値を使うなら、条件が決まるのはその足が確定したあとです。その情報を使いながら同じ終値で必ず約定したと計算すると、検証が実際より有利になる場合があります。注文を出せる時刻と価格を一致させ、翌日の価格変化も考慮します。
11.撤退と数量は平均線とは別に設計する
買い候補が出ても、どこで仮説が崩れるかを先に決めます。直近安値の割れ、一定の値幅、確定終値で線を再び下回ることなど、どれを採用するかを明示します。毎日動くALMAを使う場合は、前日の確定値で注文するのか、当日の確定を待つのかも区別します。
資金100万円、1回の許容損失5,000円、買値1,500円、撤退の想定価格1,460円という架空例なら、価格差は40円です。費用・滑りの余裕を1株あたり5円と仮定すると、5,000÷45で約111株です。100株単位の取引を仮定すれば100株へ切り下げます。
翌日に1,530円で始まった場合、同じ1,460円までの距離は70円へ広がります。余裕の5円を含めると100株で7,500円となり、予定の枠に収まりません。買いの形が残っていても、想定する価格や数量に合わなければ見送る判断が必要です。
逆指値を設定しても、急な値飛びや取引の薄さによって予定価格で約定しない可能性があります。ALMAの曲線が滑らかなことは、実際の損益が滑らかになる保証ではありません。資金管理はポジションサイズの決め方、手仕舞いは利確と損切りの設計で確認できます。
| 決める項目 | 記録する内容 | 確認の目的 |
|---|---|---|
| 指標 | 期間・オフセット・シグマ・中心の丸め | 同じ線を再現する |
| 判定 | 入力価格・時間軸・確定時点 | 未来情報や途中足の混入を防ぐ |
| 注文 | 発注時刻・価格・未約定時の扱い | 検証と実際の順序をそろえる |
| リスク | 撤退水準・費用・滑り・数量 | 許容損失から取引を判断する |
12.検証で設定を増やしすぎない
ALMAは調整項目が複数あるため、過去に一番きれいに合った組み合わせを探しやすい指標です。しかし設定を大量に試せば、偶然よく見える組み合わせも見つかります。その結果だけを根拠に、将来も同じように機能すると考えないことが大切です。
最初に比較する候補を少数に決め、選ぶ期間と評価する期間を分けます。総損益、費用、取引数、平均利益・平均損失、最大ドローダウンを記録し、近い設定で極端に崩れないかを確認します。上昇期間だけでなく、下落や往復の多い期間も含めます。
シグマを増やして線が見やすくなった場合は、最新足の重みがどう変わったかも残します。「反応が速くなった」という印象を、重みの数値や実際の交差日で確かめるためです。中心が古い側なら、狭い重みが古い価格を強く拾う可能性もあります。
「ALMAはリペイントしますか」という疑問では、未確定足の値が動くこと、過去データが修正されること、未来を使う独自スクリプトを区別します。標準的な過去N本だけのALMAは未来足を必要としませんが、場中の最新価格を使えばその足の値は確定まで動きます。
「最適なオフセットは0.85ですか」という問いにも、よく見かける設定値と最適値は別であると答えられます。必要なのは、対象の値動きと売買条件でどう機能するかです。設定値だけを他人から借りても、発注時刻や撤退が違えば取引結果は変わります。
13.重みを見れば、線の違いを説明できる
ALMAを理解する入口は、期間で過去の窓を選び、オフセットで重みの中心を移し、シグマでその周辺への集中度を変えることです。式ではs=N÷シグマなので、シグマを大きくすると幅が狭まる点を押さえます。
そのうえで、中心を小数のまま使うか切り捨てるか、価格をどちら向きに並べるか、確定足を使うかを確認します。同じ名称や設定の数字だけで一致を想定せず、簡単な数値列を入力して確かめると、表示差の原因を切り分けやすくなります。
ALMAは、重みの形を調整できる平均線です。未来の価格を予測する特別な近道ではありません。自分が見たい変化を明確にし、売買条件、撤退、数量、検証をつなげて使ってください。指標の位置づけに迷ったら、テクニカル分析の全体像へ戻り、どの役割を任せるか整理するのがおすすめです。反応を変えられるおもしろさはありますが、自分の売買を良くするかは別の問いです。見たい変化を一つ決め、早すぎる判断が増えていないかも記録して考えます。
参考・出典
公式資料の確認日:2026年9月22日。図・数値例は編集部作成の架空例です。公開ソースコードの仕様は変更される場合があります。
免責事項・広告表示
本記事は指標と検証方法の一般的な解説で、特定銘柄や売買を推奨するものではありません。計算例は将来の利益や約定を保証しません。投資判断は最新情報を確認のうえご自身で行ってください。本記事には広告・アフィリエイトリンクを含みます。アイキャッチの人物は生成イメージです。投資判断はご自身の責任でお願いいたします。記載の数値は、本文中に示した日付時点の決算短信・会社のIR資料などの公開情報に基づきます。最新の情報は各社の開示でご確認ください。

