pinescript-to-python-translator について
pinescript-to-python-translatorは、TradingViewのPineScript戦略を、ヘッドレスバックテストや最適化向けのPythonコンポーネントに変換するスキルです。入力分類、インジケーターの変換、シグナルとOptuna探索空間を含む出力構成を扱います。
主な機能
- 01シグナル・リスク・表示用入力の分類
- 02Optuna向けパラメーター範囲の抽出
- 03テクニカル指標をPythonへ変換
- 04エントリーと決済条件のベクトル化
- 05リペイントとゼロ除算リスクの確認
活用シーン
- 01TradingViewのバックテストをPythonへ移行
- 02ウォークフォワード分析向けに戦略を準備
- 03Optunaのハイパーパラメーター探索空間を作成
- 04変換したシグナルのリペイントリスクを監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill pinescript-to-python-translatorインストール後、Claude Code で/pinescript-to-python-translatorを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
🌲 PineScript から Python へのトランスレーター
このスキルは、生の TradingView PineScript ファイル (.pine) を受け取り、それを Python ネイティブのコンポーネントへ厳密に分解し、ベクトル化や Optuna のようなツールを使って最適化できるようにするために設計されています。
このスキルを使う場面
TradingView エコシステムからヘッドレスな Python 環境へバックテストを移行したいときに、このスキルを使います。これは、TradingView では扱えないマルチフォールドのウォークフォワード分析 (WFA) やモンテカルロシミュレーションを実行するうえで極めて重要です。
ワークフロー
-
分解と分類 (IR の構築)
.pineスクリプトを解析して、input()、input.int()、input.float()、input.bool()を識別します。- パラメータを次の 3 つのバケットに分類します。
- シグナル: エントリーを決定するパラメータ (例:
length、crossover_threshold)。 - リスク: エグジットを決定するパラメータ (例:
stop_ticks、trail_offset)。 - 表示: プロットや UI にのみ使用されるパラメータ (これらは破棄します)。
- シグナル: エントリーを決定するパラメータ (例:
-
境界の抽出
- すべてのシグナルおよびリスクのパラメータについて、指定があれば
minval、maxval、stepを抽出します。 - これらを Optuna の試行サジェスチョン (例:
trial.suggest_int('length', 10, 50)) の形式に整えます。
- すべてのシグナルおよびリスクのパラメータについて、指定があれば
-
ロジックの変換
- PineScript のテクニカル分析関数 (
ta.sma、ta.ema、ta.rsi) を、対応するpandas-taまたはnumpyの同等品へ変換します。 - エントリーとエグジットの条件をベクトル化します。パス依存性が厳密に必要な場合を除き、行に対する標準的な
forループは使わないでください。可能な限りnp.whereと.shift()を使用してください。
- PineScript のテクニカル分析関数 (
-
堅牢化と監査
- リペイントリスク: 現在 の未確定バーのデータに依存する箇所がないか、変換後のコードを走査します。シグナル生成には
.shift(1)の使用を強制します。 - ゼロ除算: すべての分母を
np.maximum(denominator, 1e-8)でガードし、最適化中に NaN が爆発的に増えるのを防ぎます。
- リペイントリスク: 現在 の未確定バーのデータに依存する箇所がないか、変換後のコードを走査します。シグナル生成には
出力形式
出力は、次の内容を含む単一の Python ファイルであるべきです。
- パラメータの辞書に基づいてすべてのインジケーターを構築する
extract_features(df, params)関数。 signal列 (1 はロング、-1 はショート、0 はフラット) を作成するgenerate_signals(df)関数。- ハイパーパラメータの探索空間の辞書を返す
get_optuna_space(trial)関数。
コメント
Markdown 対応