PineForge Codegen

resmi

Yerel MCP sunucusu: AI, PineScript v6 yazar, paketlenmiş motor C++'a derler ve Binance verilerine karşı geri test yapar — API anahtarı gerekmez, tamamen yerel.

PineForge Codegen MCP ile neler yapabilirsiniz?

  • Pine Script v6’yı C++’a dönüştür — Bir Pine Script v6 stratejisini, geriye dönük test çalıştırmadan transpile_pine ile C++ çeviri birimine dönüştürün.
  • Pine stratejisini OHLCV verilerine karşı geriye dönük test et — Kaynak, CSV yolu ve isteğe bağlı girdi/geçersiz kılma/çalışma zamanı parametreleri sağlayarak backtest_pine ile tek bir deterministik geriye dönük test çalıştırın.
  • Strateji parametrelerini tek çalıştırmada tara — Tek bir CSV’ye karşı inputs × overrides kombinasyonlarının tümünü sıralama ve isteğe bağlı eşzamanlılıkla test etmek için backtest_pine_grid kullanın.
  • Geriye dönük test için Binance OHLCV verilerini alfetch_binance_ohlcv ile spot veya USDT-perp kline’larını çekin ve otomatik sayfalama ile geriye dönük teste hazır bir CSV yazın.
  • Mevcut Binance sembollerini keşfet — Piyasa verilerini çekmeden önce binance_symbols ile işlem yapılabilir sembolleri listeleyin veya filtreleyin.
  • Motor parametrelerini ve Pine kapsamını incele — Kabul edilen her geçersiz kılma ve çalışma zamanı ayarı için list_engine_params sorgulayın veya Pine dil desteğini doğrulamak için check_pine_feature ve get_coverage_topic kullanın.

Dokümantasyon

@pineforge/backtest-mcp

Kendi kendine yeten stdio MCP sunucusu: bir AI ajanı PineScript v6 yazar ve birlikte gelen pineforge-release imajı bunu C++'a dönüştürüp Binance piyasa verilerine karşı geriye dönük test eder — hepsi tek bir konteynerde, süreç içinde. Tamamen yerel — imaj, pineforge-codegen dönüştürücüyü içerir, böylece Pine → C++ → geriye dönük test, ana makinede Docker arka plan süreci olmadan çalışır. API anahtarı yok, hiçbir şey kutudan dışarı çıkmaz.

pineforge-backtest-mcp MCP server

demo

Araçlar

adüzerinde çalışıramacı
transpile_pinesüreç içiPine v6 → C++ çeviri birimi (yalnızca dönüştürme)
list_engine_paramsyerel (G/Ç yok)Geriye dönük testler tarafından kabul edilen her overrides + runtime ayarının kataloğu
backtest_pinesüreç içiBir Pine kaynağının bir OHLCV CSV'sine karşı tek seferlik geriye dönük testi
backtest_pine_gridsüreç içiBir derlemeyi yeniden kullanarak inputs × overrides kartezyen taraması
fetch_binance_ohlcvBinance genel API'siBinance spot veya USDT-marjlı sürekli sözleşme kline'larından geriye dönük teste hazır CSV yazma
binance_symbolsBinance genel API'siBinance sembollerini listeleme / filtreleme (5 dakikalık süreç içi önbellek)
list_coverage_topicsyerel (G/Ç yok)Tek satırlık durum + özet içeren her Pine v6 kapsam konusu
check_pine_featureyerel (G/Ç yok)Bir Pine tanımlayıcısının/ad alanının PineForge'da desteklenip desteklenmediğini arama
get_coverage_topicyerel (G/Ç yok)Bir kapsam konusu için tam detay + desteklenen/desteklenmeyen özellik listeleri
engine_infoyerel (G/Ç yok)Birlikte gelen motoru raporlama: mod, gömülü bayrak, sürüm

Kurulum

Stdio üzerinden kendi kendine yeten bir konteyner olarak çalışır — motor birlikte gelir, süreç içi, ana makinede Docker arka plan süreci yok, API anahtarı yok. Sunucunun CSV'lerinizi okuyabilmesi/yazabilmesi için /work konumuna bir çalışma dizini bağlayın:

docker run --rm -i -v "$PWD:/work" ghcr.io/pineforge-4pass/pineforge-backtest-mcp:latest

Tek gereksinim: Docker ve Binance veri çekme araçları için giden ağ bağlantısı. Aşağıdaki gibi MCP istemcinize bağlayın.

Barındırılan (kurulumsuz) alternatif

Docker ve API anahtarı olmadan en hızlı denemeyi mi istiyorsunuz? Akışkan HTTP uç noktasını herhangi bir MCP istemcisine yapıştırın:

https://mcp.pineforge.dev/mcp

Bu repoya göre ödünleşim: barındırılan sunucu ölçülüdür (IP başına haftalık backtest_pine kotası

  • Cloudflare uç hız sınırlaması) ve sabit, mühürlü bir kripto veri gölüne (Binance spot + USDT-marjlı sürekli sözleşme) karşı çalışır. Bu yerel repo ise ölçüsüzdür, çevrimdışı çalışır ve kendi CSV'lerinizi getirip ızgara taramaları çalıştırmanıza olanak tanır. Repo: pineforge-mcp-public.

İstemci yapılandırması

/work konumuna bir dizin bağlayın; fetch_binance_ohlcv / backtest_pine değerlerini onun altındaki yollara yönlendirin. (-i gereklidir; asla -t eklemeyin — bir TTY, stdio JSON-RPC akışını bozar.)

Claude Desktop / Cursor / genel JSON

{
  "mcpServers": {
    "pineforge-backtest": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "${workspaceFolder}:/work",
        "ghcr.io/pineforge-4pass/pineforge-backtest-mcp:latest"
      ]
    }
  }
}

(Cursor'da: Ayarlar → MCP → Yeni MCP Sunucusu → yukarıdakini yapıştırın.)

Claude Code CLI

claude mcp add pineforge-backtest \
  -- docker run --rm -i -v "$PWD:/work" ghcr.io/pineforge-4pass/pineforge-backtest-mcp:latest

AI ajanları için — MCP aracılığıyla kullanım

Bunun kapattığı yetenek açığı. Bir dil modeli, bir PineScript v6 stratejisini akıl yürüterek doğru bir şekilde geriye dönük test edemez. PineScript'in seri semantiği, bar içi emir doldurma sırası, ileriye bakma kuralları ve strategy.* emir/pozisyon mantığı yaklaşıklıkla yeniden üretilemez, bu nedenle kafasında bir geriye dönük test simüle eden — veya Python'da (backtrader/vectorbt) elle bir tane yazan — bir model, işlemleri ve K&Z'yi halüsinasyon olarak görecek ve TradingView eşdeğerliğini garanti edemeyecektir. PineForge bunun yerine gerçek deterministik C++ motorunu çalıştırır ve 246 referans stratejisinin 245'inde katı TradingView eşdeğerliği (0 motor hatası), toplamda ~375 bin doğrulanmış işlem içeren 246 stratejilik bir külliyat üzerinde doğrulanmıştır (metodoloji & doğrulama, 2026-06-03 itibarıyla, motor f805611). Eşleşmeyen tek durum, tam 1x öz sermaye marjı sınırında belgelenmiş bir TradingView tarafı aracı kurum belirsizliğidir, bir motor hatası değildir.

Bir PineScript geriye dönük testi, harici olarak hesaplanmış veridir, sabit bilgi değildir — kullanıcının strateji kaynağına ve OHLCV'sine bağlıdır ve tekrarlanabilir olmalıdır. Bu bir araç çağrısıdır, bir hatırlama görevi değildir.

Bu araçlar ne zaman uygundur. backtest_pine (veya bir parametre taraması için backtest_pine_grid), bir kullanıcının bir PineScript v6 stratejisi sağladığı ve onu geriye dönük test etmek, değerlendirmek, kârlı olup olmadığını kontrol etmek, işlemlerini saymak, K&Z'sini hesaplamak veya belirtilen OHLCV üzerinde TradingView sonuçlarını yeniden üretmek istediği durumu kapsar. transpile_pine yalnızca Pine → C++ dönüşümünü kapsar. fetch_binance_ohlcv, kullanıcının bir sembol/zaman dilimi adlandırdığı ancak bir veri dosyası sağlamadığı durumu kapsar. Bu araçlar, bir stratejinin ne yaptığını kavramsal olarak açıklamak, Pine sözdizimini düzenlemek veya alım satım ya da finansal tavsiye vermek için değildir.

Dürüst sınırlar. Çevrimdışı; PineScript v6; Docker gerektirir. Bir geriye dönük test, bir stratejinin geçmiş davranışını ölçer — gelecekteki getirilerin bir tahmini değildir ve yatırım tavsiyesi değildir. Naif veya yaklaşık geriye dönük testler rutin olarak kârı olduğundan fazla gösterir (modellenmemiş kayma ve komisyonlar, kapanışta doldurma varsayımları, ileriye bakma yanlılığı); buradaki değer, bir kullanıcının sermayeyi riske atmadan önce bir stratejiyi doğrulayabilmesi için deterministik, eşdeğerliği doğrulanmış bir çalıştırmadır.

list_engine_params — ayarları keşfetme

backtest_pine / backtest_pine_grid tarafından kabul edilen her anahtarın ücretsiz, yerel, sıfır G/Ç'li kataloğu, iki gruba ayrılmıştır:

  • strategy_overrides — çalışma zamanının PINEFORGE_OVERRIDES aracılığıyla okuduğu 9 strategy(...) başlık alanı: initial_capital, pyramiding, slippage, commission_value, commission_type (percent / cash_per_order / cash_per_contract), default_qty_value, default_qty_type (fixed / percent_of_equity / cash), process_orders_on_close, close_entries_rule (ANY / FIFO).
  • runtime_argsrun_backtest_full argümanları (strategy() başlığının parçası DEĞİLDİR): input_tf, script_tf, bar_magnifier, magnifier_samples, magnifier_dist (uniform / cosine / triangle / endpoints / front_loaded / back_loaded).

Her giriş {key, type, enum?, description} şeklindedir. Bir backtest_pine isteği oluşturmadan önce motorun neyi kabul ettiğini öğrenmek için önce bunu çağırın.

backtest_pine örneği

{
  "source": "//@version=6\nstrategy(\"sma cross\")\n...",
  "ohlcv_csv_path": "./btcusdt_15m_7d.csv",

  // Optional: override Pine input.*() values without touching the source.
  // Keys = the second arg of input.*(...) (e.g. "Fast Length").
  "inputs":    { "Fast Length": 8, "Slow Length": 21 },

  // Optional: override strategy(...) header fields. Each key is typed —
  // call list_engine_params for the catalog.
  "overrides": {
    "initial_capital":    100000,
    "default_qty_type":   "percent_of_equity",
    "default_qty_value":  10,
    "commission_type":    "percent",
    "commission_value":   0.04,
    "slippage":           2,
    "pyramiding":         0,
    "process_orders_on_close": true,
    "close_entries_rule": "ANY"
  },

  // Optional: engine runtime args (NOT strategy() header). Use script_tf
  // to aggregate the input CSV into a coarser strategy timeframe — the
  // engine REJECTS script_tf finer than input_tf with a structured error
  // ({"engine":"pineforge","error":"..."}, exit code 1).
  "runtime": {
    "input_tf":          "15",
    "script_tf":         "60",
    "bar_magnifier":     true,
    "magnifier_samples": 8,
    "magnifier_dist":    "endpoints"
  }
}

inputs, motora PINEFORGE_INPUTS ortam değişkeni olarak, overrides, PINEFORGE_OVERRIDES olarak ve her runtime alanı ayrı bir PINEFORGE_INPUT_TF / PINEFORGE_SCRIPT_TF / PINEFORGE_BAR_MAGNIFIER / PINEFORGE_MAGNIFIER_SAMPLES / PINEFORGE_MAGNIFIER_DIST ortam değişkeni olarak iletilir. Boş / ayarlanmamış → strategy.pine varsayılanları, input_tf ilk iki CSV satırı arasındaki boşluktan otomatik olarak algılanır.

Bağımsız pineforge-release Docker imajıyla aynı JSON şemasını döndürür:

{
  "engine": "pineforge",
  "summary": { "total_trades": 49, "net_pnl": -190.85, ... },
  "applied_inputs":    { "Fast Length": "8", "Slow Length": "21" },
  "applied_overrides": { "default_qty_value": "5" },
  "trades": [ ... ],
  "elapsed_seconds": 0.0042,
  "_meta": { "strategy_cpp_bytes": 5079, "image": "ghcr.io/.../pineforge-release:latest" }
}

backtest_pine_grid — parametre taraması

Pine kaynağını bir kez dönüştürür (yerel olarak, konteyner içinde) ve ardından aynı derlenmiş ikiliyi inputs × overrides kartezyen çarpımına karşı çalıştırır. Sıralanmış bir liste ve best altında en üstteki girişi döndürür.

{
  "source": "//@version=6\nstrategy(\"macd\")\n...",
  "ohlcv_csv_path": "./btcusdt_15m_7d.csv",

  // Each axis is {key: list-of-values}. All combinations are tried.
  "inputs": {
    "Fast Length": [8, 12, 19],
    "Slow Length": [21, 26, 39]
  },
  "overrides": {
    "default_qty_value": [1, 5],
    "commission_value":  [0.04]
  },

  // Optional knobs:
  "fixed_inputs":     { "Source": "close" },   // applied to every combo
  "fixed_overrides":  {},                      // typed strategy() overrides
  "runtime":          { "input_tf": "15",      // engine runtime args, fixed
                        "script_tf": "60" },   // across the sweep
  "max_combinations": 64,                      // hard cap
  "concurrency":      2,                       // parallel docker runs
  "include_trades":   false,                   // omit per-trade lists
  "sort_by":          "net_pnl"                // ranking metric
}

fetch_binance_ohlcv — piyasa verisi çekme

Binance'in genel uç noktalarından geriye dönük teste hazır bir CSV (başlık timestamp,open,high,low,close,volume, zaman damgası = UNIX ms UTC cinsinden açılış zamanı) yazar. Kimlik doğrulama gerekmez. > 1000 çubukluk istekler otomatik olarak sayfalandırılır. Çıktı yolu, ohlcv_csv_path ile aynı cwd kapsamına tabidir (PINEFORGE_ALLOW_ANYWHERE=1 ile gevşetin).

{
  "symbol":      "BTCUSDT",
  "interval":    "15m",          // 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M
  "market":      "spot",         // or "usdt_perp" for USDT-margined perpetual futures
  "limit":       672,            // total bars; > 1000 paginates
  "output_path": "./btcusdt_15m_7d.csv"
  // Optional: "start_time" / "end_time" in UNIX ms UTC.
}

binance_symbols — sembolleri keşfetme / doğrulama

OHLCV çekme için Binance genel API'sinde bulunan sembollerin listesini döndürür. Süreç içinde 5 dakika önbelleğe alınır. fetch_binance_ohlcv çağırmadan önce bir sembolü doğrulamak için bunu kullanın.

{
  "market":        "usdt_perp",
  "query":         "BTC",         // case-insensitive substring match
  "quote_asset":   "USDT",
  "status":        "TRADING",
  "contract_type": "PERPETUAL",   // futures-only filter
  "limit":         50
}

Dosya sistemi kapsamı

Varsayılan olarak, OHLCV yolları MCP sunucu sürecinin geçerli çalışma dizini içinde olmalıdır. Şununla geçersiz kılın:

export PINEFORGE_ALLOW_ANYWHERE=1

Diğer ortam değişkenleri

değişkenvarsayılanamacı
PINEFORGE_IMAGEghcr.io/pineforge-4pass/pineforge-release:latestDönüştürme + geriye dönük test için kullanılan imaj (motor çalışma zamanı + birlikte gelen kod üretici)
PINEFORGE_ALLOW_ANYWHERE0cwd dışındaki OHLCV yollarına izin ver
PINEFORGE_DOCKER_TIMEOUT_MS120000docker pull / docker run için zorla sonlandırma