हमने क्यों बनाया PineForge.
तीन रास्ते जो हमने नहीं चुने। दो साल जो दो strong-tier parity cases के पीछे लगे। एक thesis: PineScript को एक असली runtime चाहिए।
Offline reproducibility क्यों
ज़्यादातर Pine strategies TradingView पर रहती हैं, और सही ठहरता भी है — instant chart-side iteration, बहुत बड़ा community, social sharing। जो वो ship नहीं करता वो है offline runtime: आप engine version pin नहीं कर सकते, CI में backtest नहीं चला सकते, दूसरी machine पर bit-for-bit trade-list reproduce नहीं कर सकते।
Chart पर ideas browse करने के लिए इनमें से कुछ matter नहीं करता। ऐसी strategy बनाने के लिए जिस पर असली पैसा लगाएँगे, सब matter करता है। ‘मुझे browser में एक number दिख रहा है’ और ‘मेरे पास audit trail है’ के बीच का gap यही है जिसे हम Pine language छोड़े बिना भरने निकले।
PyneCore में contribute क्यों नहीं किया
PyneCore सबसे ambitious open-source PineScript engine है। हम खुद उसे second-opinion oracle के तौर पर use करते हैं। हमने जो बनाया वो सब upstream करने पर विचार किया। दो वजहें थीं जो नहीं किया:
- Runtime model. PyneCore Pine को Python में interpret करता है। PineForge Pine को C++ में transpile करता है और एक `.so` में compile करता है। अलग speeds, अलग parity tradeoffs, अलग distribution stories। कोई ग़लत नहीं — पर एक को दूसरे पर bolt करने के लिए दोनों rewrite करने पड़ेंगे।
- Distribution. एक compiled `.so` sellers को buyers तक strategies ship करने देता है बिना source expose किए। यही marketplace thesis है (2027 के लिए designed)। PyneCore के roadmap पर ये नहीं है और होना भी नहीं चाहिए — अलग product है।
हम PyneCore को second source मानते हैं। हर PineForge release parity sweep PyneCore और TradingView दोनों के against चलाती है। उनका excellent tier rate इतना high है कि दोनों engines के बीच disagreement लगभग हमेशा एक के bug की वजह से होती है — आम तौर पर हमारी।
Backtrader extend क्यों नहीं किया
Backtrader Python algo trading का workhorse है। Solid, well-loved, और इस काम के लिए ग़लत shape। ये एक Python-native backtesting framework है जो happen से custom strategy classes support करता है। Pine अलग semantics वाली अलग language है — आप ज़्यादा Python लिखकर `request.security()` lookahead, intra-bar order processing, या `oca_name` exit groups fake नहीं कर सकते।
और फिर: Backtrader strategy Python source है, Python source की तरह distribute होती है। Compiled-binary marketplace के लिए एक transpile step चाहिए जो deployable artifact produce करे। Backtrader की surface वो expose नहीं करती।
165/167 का पीछा
हमने 9 strategies और 76% strict parity से शुरुआत की। दो साल बाद: 167 strategies, 165 strict। 76 से 98.8% तक का gap ज़्यादा codegen लिखकर नहीं भरा — चार-decimal-place divergences का पीछा करके भरा, एक-एक करके, हर एक पर हफ़्तों लगाकर।
उन हफ़्तों का ज़्यादातर वक़्त TradingView की specific definitions match करने में गया — words जैसे “exit”, “fill”, “trail”। Pine documentation API describe करती है; order processing की exact semantics तब तक visible नहीं होतीं जब तक trade lists को bar-by-bar diff न करें। हमने वही किया, पूछते रहे कि हमारी और reference में disagreement क्यों है, और differences एक-एक करके सुलझाए।
जो दो strong-tier cases हैं वो दिलचस्प हैं — corner cases जिनमें सबसे ज़्यादा खुदाई लगी और जो अभी roadmap पर close करने को हैं। हम उन्हें embarrassment नहीं, research मानते हैं।
आगे क्या
Q3 2026: Optuna integration ship होगी। किसी भी strategy को किसी भी one-line objective function पर optimize करें — Sharpe, drawdown, profit factor, अपना Python lambda। Walk-forward analysis built-in, out-of-sample default है, बाद की सोच नहीं।
Q4 2026: Hosted Studio launch होगा। Project workspace, backtest, optimize, compare, paper-trade — सब browser में, सब उसी `.so` पर चलते हुए जिसे आप आज CLI से locally चलाएँगे। Wave-1 access पहले early-access waitlist को मिलेगा।
2027: Marketplace खुलेगी। Sellers compiled `.so` binaries publish करेंगे, seller-defined license bounds के साथ: time, machine, broker, symbol, input ranges। Buyers अपने data पर चलाते हैं, source कभी नहीं देखते। वही delivery model जो MQL5 के लिए चला — फ़र्क़ ये कि strategies Pine में लिखी हैं, runtime auditable है, और licenses revocable हैं।
वो 1% जो हाथ से नहीं लिखा जा सकता
हर parity engine जिसके बारे में हमने पढ़ा वो किसी ऐसे ने बनाया और छोड़ा जो 90% पर bore हो गया। आख़िरी 10% repetitive, high-effort, low-glamour काम है — वो वही लोग कर सकते हैं जिन्हें genuinely excitement होती है यह explain करने में कि दो trade lists 0.0001% से क्यों disagree करती हैं।
वही team है। वही discipline है। वही चीज़ है जो runtime को आपके पैसे चलाने के काबिल बनाती है।