数式
数式を使うと、チャートのメトリクスからカスタムの計算系列を作成できます。算術演算子と組み込み関数を使って、メトリクスを組み合わせ、変換し、分析できます。
数式の追加
- 編集モードでチャートを開きます
- + 追加ボタンをクリックし、数式を追加を選択します
- ラベルを入力します(例: "7-day SMA of Price")
- 式を入力します(例:
sma(m1, 7)) - 数式を追加をクリックします
数式の結果は、独自の色とスタイルを持つ新しい系列としてチャートに表示されます。
構文
メトリクスと数式の参照
m1、m2、... は位置でチャートのメトリクスを参照します(最初のメトリクス = m1)f1、f2、... は位置で以前の数式を参照します(最初の数式 = f1)
数式は順番に評価されるため、f2 は f1 を参照できますが、その逆はできません。
算術演算子
標準的な演算子で、優先順位も通常どおりです(* と / が + と - より先に評価されます)。
m1 + m2 # Addition
m1 - m2 # Subtraction
m1 * m2 # Multiplication
m1 / m2 # Division (returns null if divisor is 0)
(m1 + m2) * m3 # Parentheses for grouping
数値と水平線
定数値を式の中で使用できます。単独の数値は、その値に水平線を描画します。
42000 # Horizontal line at 42,000
m1 * 100 # Scale a metric
m1 / 1000000 # Convert to millions
0.5 # Horizontal line at 0.5 (useful as threshold)
関数
移動平均とローリング統計
| 関数 | 構文 | 説明 |
|---|---|---|
sma | sma(series, period) | 単純移動平均 — 直近 N 個のデータ点にわたる算術平均 |
ema | ema(series, period) | 指数移動平均 — EMA_t = value_t × k + EMA_(t-1) × (1 - k)(ここで k = 2 / (period + 1))。直近の値により大きな重みを与えます |
median | median(series, period) | N 期間にわたるローリング中央値(中央の値) |
sum | sum(series, period) | 直近 N 期間にわたるローリング合計 |
std | std(series, period) | N 期間にわたるローリング標準偏差 |
累積関数
データの開始点から各点までのすべてのデータを使用する、拡張ウィンドウ関数です。
| 関数 | 構文 | 説明 |
|---|---|---|
cumsum | cumsum(series) | データの開始点からの拡張累積合計 |
cummean | cummean(series) | データの開始点からの拡張累積平均 |
cummedian | cummedian(series) | データの開始点からの拡張累積中央値 |
cumstd | cumstd(series) | データの開始点からの拡張累積標準偏差 |
cummax | cummax(series) | 各点までの累積過去最高値 |
cummin | cummin(series) | 各点までの累積過去最低値 |
変化量関数
| 関数 | 構文 | 説明 |
|---|---|---|
percent_change | percent_change(series, period) | N 期間にわたる変化率。値は小数で返されます(例: 0.20 = +20% の上昇) |
diff | diff(series, period) | N 期間にわたる絶対変化量: value_t - value_(t-N) |
数学関数
| 関数 | 構文 | 説明 |
|---|---|---|
abs | abs(series) | すべてのデータ点の絶対値 |
pow | pow(series, n) | すべてのデータ点を n 乗します |
log | log(series) | 常用対数(底 10)(非正の値には null を返します) |
round | round(series, digits) | 値を小数点以下 N 桁に丸めます |
max | max(a, b, ...) | 点ごとの最大値 — 各データ点ですべての引数のうち最も高い値を返します。引数は系列または定数を指定できます(例: max(m1, m2, 0)) |
min | min(a, b, ...) | 点ごとの最小値 — 各データ点ですべての引数のうち最も低い値を返します。引数は系列または定数を指定できます(例: min(m1, m2, 100)) |
テクニカル指標
| 関数 | 構文 | 説明 |
|---|---|---|
rsi | rsi(series, period) | N 期間にわたり Wilder の平滑化法を用いた相対力指数(0〜100) |
corr | corr(series1, series2, period) | 直近 N 期間のウィンドウにおける 2 つの系列間のピアソンの相関係数。-1(逆相関)から +1(完全相関)の範囲の値を返します |
drawdown | drawdown(series) | 過去最高値からの相対的なドローダウン。負の小数を返します(例: -0.30 = ATH を 30% 下回る) |
リスクとリターン
| 関数 | 構文 | 説明 |
|---|---|---|
mean_return | mean_return(series, period) | N 期間にわたる年率換算ローリング平均リターン(日次対数リターン × 365 に基づく) |
realized_vol | realized_vol(series, period) | N 期間にわたる年率換算実現ボラティリティ(日次対数リターンの標準偏差 × √365) |
sharpe_ratio_arithmetic | sharpe_ratio_arithmetic(series, period) | N 期間にわたるリターンの算術平均を用いた年率換算シャープレシオ |
sharpe_ratio_geometric | sharpe_ratio_geometric(series, period) | N 期間にわたるリターンの幾何平均を用いた年率換算シャープレシオ |
系列の操作
| 関数 | 構文 | 説明 |
|---|---|---|
shift | shift(series, period) | 系列を N 期間だけ右にシフトします。正の period は現在の位置に過去の値を表示します(つまり、各データ点は N 期間前の値を表示します)。負の period は左にシフトします(未来の値を表示します) |
if | if(a, "op", b, then, else) | 条件式: 各データ点で比較 a op b を評価し、真の場合は then を、偽の場合は else を返します。op 引数は引用符付きの文字列として渡される比較演算子です: "="、"!="、">"、">="、"<"、"<=" |
例
移動平均
sma(m1, 7) # 7-day simple moving average of first metric
sma(m1, 30) # 30-day SMA
ema(m1, 21) # 21-day exponential moving average
median(m1, 14) # 14-day rolling median
SMA クロスオーバーの検出
f1: sma(m1, 7) # Short-term SMA
f2: sma(m1, 30) # Long-term SMA
f3: f1 - f2 # Difference (positive = short above long)
比率分析
m1 / m2 # Ratio between two metrics
過去最高値からのドローダウン
drawdown(m1) # Drawdown as negative decimal (-0.30 = 30% below ATH)
ボリンジャーバンド
f1: sma(m1, 20) # Middle band
f2: f1 + 2 * std(m1, 20) # Upper band (+2 standard deviations)
f3: f1 - 2 * std(m1, 20) # Lower band (-2 standard deviations)
期間ごとの変化量
percent_change(m1, 7) # 7-day percentage change (decimal)
diff(m1, 30) # 30-day absolute change
RSI
rsi(m1, 14) # 14-period RSI
30 # Oversold threshold line
70 # Overbought threshold line
値のクランプ
max(m1, 0) # Floor at zero (remove negative values)
min(m1, 100) # Cap at 100
max(m1, m2) # Higher of two metrics at each point
相関
corr(m1, m2, 30) # 30-day rolling correlation between two metrics
ボラティリティとリスク
realized_vol(m1, 30) # 30-day annualized volatility
sharpe_ratio_arithmetic(m1, 90) # 90-day annualized Sharpe ratio
スタイル設定
数式を追加した後、(編集モードで)凡例内の数式をクリックすると、次の項目を設定できます。
- チャートスタイル: 線、エリア、または棒
- 色: プリセットまたはカスタムから選択
- Y 軸: 任意の軸に割り当て
- 線の太さと塗りつぶしの不透明度
- 表示: 表示/非表示の切り替え
永続化
数式はチャート設定とともに保存されます。チャートを「マイチャート」に保存すると、すべての数式が保持され、チャートを再読み込みしたときに復元されます。
エクスポート
数式の値は CSV および JSON のエクスポートに含まれます。各数式の列は、数式のラベルをヘッダーとして使用します。