Skip to main content

Python based Pine Script like runtime and API

Project description

PyneCore Logo

PyneCore™

Pine Script in Python - Without Limitations

Python License

What is PyneCore?

PyneCore brings TradingView's Pine Script capabilities to Python through a revolutionary approach - it transforms regular Python code to behave like Pine Script through AST transformations, while maintaining the full power of the Python ecosystem.

Instead of creating another object-oriented wrapper or a new language, PyneCore modifies your Python code at import time, giving you the intuitive bar-by-bar execution model of Pine Script without leaving Python's rich environment.

Key Features

  • Native Pine Script Semantics in Python: Write familiar Python code that runs with Pine Script's bar-by-bar execution model
  • AST Transformation Magic: Your code is transformed at import time to implement Pine Script behavior
  • High Performance: Zero mandatory external dependencies with highly optimized implementation
  • Series & Persistent Variables: Full support for Pine Script's time series and state persistence
  • Function Isolation: Each function call gets its own isolated persistent state
  • NA Handling: Graceful handling of missing data with Pine Script's NA system
  • Technical Analysis Library: Comprehensive set of Pine Script-compatible indicators and functions
  • Strategy Backtesting: Pine Script compatible framework for developing and testing trading strategies

Quick Example

"""
@pyne
"""
from pynecore import Series
from pynecore.lib import script, close, ta, plot, color, input

@script.indicator(title="Bollinger Bands")
def main(
    length=input.int("Length", 20, minval=1),
    mult=input.float("Multiplier", 2.0, minval=0.1, step=0.1),
    src=input.source("Source", close)
):
    # Calculate Bollinger Bands
    basis = ta.sma(src, length)
    dev = mult * ta.stdev(src, length)

    upper = basis + dev
    lower = basis - dev

    # Output to chart
    plot(basis, "Basis", color=color.orange)
    plot(upper, "Upper", color=color.blue)
    plot(lower, "Lower", color=color.blue)

Innovative Concepts

PyneCore introduces several revolutionary concepts:

1. Magic Comment & Import Hook

Identify your scripts with a simple magic comment:

"""
@pyne
"""

This activates PyneCore's import hook system which intercepts Python imports and applies AST transformations to recognized scripts.

2. Series Variables

Track historical data across bars, just like in Pine Script:

from pynecore import Series

price: Series[float] = close
previous_price = price[1]  # Access previous bar's price

3. Persistent Variables

Maintain state between bars with simple type annotations:

from pynecore import Persistent

counter: Persistent[int] = 0
counter += 1  # Increments with each bar

4. Function Isolation

Each call to a function maintains its own isolated state:

def my_indicator(src, length):
    # Each call gets its own instance of sum
    sum: Persistent[float] = 0
    sum += src
    return sum / length

Installation

# Basic installation
pip install pynesys-pynecore

# With CLI tools (recommended)
pip install pynesys-pynecore[cli]

# With all features including data providers
pip install pynesys-pynecore[all]

Getting Started

Create a Simple Script

  1. Create a file with the @pyne annotation:
"""
@pyne
"""
from pynecore.lib import script, close, plot

@script.indicator("My First Indicator")
def main():
    # Calculate a simple moving average
    sma_value = (close + close[1] + close[2]) / 3

    # Plot the result
    plot(sma_value, "Simple Moving Average")
  1. Run your script with the PyneCore CLI:
# First, download some price data
pyne data download ccxt --symbol "BYBIT:BTC/USDT:USDT"

# Then run your script on the data
pyne run my_script.py ccxt_BYBIT_BTC_USDT_USDT_1D.ohlcv

Why Choose PyneCore?

  • Beyond TradingView Limitations: No more platform restrictions, code size limits, or subscription fees
  • Python Ecosystem Access: Use Python's data science, ML, and analysis libraries alongside trading logic
  • Performance & Precision: Designed for speed and precision, the same results as Pine Script
  • Open Source Foundation: The core library and runtime is open source under Apache 2.0 license
  • Professional Trading Tools: Build institutional-grade systems with Pine Script simplicity
  • Advanced Backtesting: Run sophisticated strategy tests outside platform constraints

Documentation & Support

Community

License

PyneCore is licensed under the Apache License 2.0.

Disclaimer

Pine Script™ is a trademark of TradingView, Inc. PyneCore is not affiliated with, endorsed by, or sponsored by TradingView. This project is an independent implementation that aims to provide compatibility with the Pine Script language concept in the Python ecosystem.

Risk Warning

Trading involves significant risk of loss and is not suitable for all investors. The use of PyneCore does not guarantee any specific results. Past performance is not indicative of future results.

  • PyneCore is provided "as is" without any warranty of any kind
  • PyneCore is not a trading advisor and does not provide trading advice
  • Scripts created with PyneCore should be thoroughly tested before using with real funds
  • Users are responsible for their own trading decisions
  • You should consult with a licensed financial advisor before making any financial decisions

By using PyneCore, you acknowledge that you are using the software at your own risk. The creators and contributors of PyneCore shall not be held liable for any financial loss or damage resulting from the use of this software.

Commercial Support

PyneCore is part of the PyneSys ecosystem. For commercial support, custom development, or enterprise solutions:


Elevate Your Trading with the Power of Python & Pine Script

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynesys_pynecore-6.0.1.tar.gz (122.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynesys_pynecore-6.0.1-py3-none-any.whl (153.6 kB view details)

Uploaded Python 3

File details

Details for the file pynesys_pynecore-6.0.1.tar.gz.

File metadata

  • Download URL: pynesys_pynecore-6.0.1.tar.gz
  • Upload date:
  • Size: 122.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pynesys_pynecore-6.0.1.tar.gz
Algorithm Hash digest
SHA256 a584576256b4328a473691b56352be67482bfc38e4ea10d123aceb745d383562
MD5 99929cb23cbaf626b6a3ba0728f04ef7
BLAKE2b-256 6f6bc1ed3864a820f0e15ace5c4be4f9d876bbc6526fbcebb1ef7b32ebc74ac6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynesys_pynecore-6.0.1.tar.gz:

Publisher: release.yml on PyneSys/pynecore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pynesys_pynecore-6.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pynesys_pynecore-6.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 23d23b7ff04f37f19f6ea157349a37a899a466f9895f8bfbc370326e59d0ff80
MD5 3fd51459f0bb9f0677a0644d42a93aa6
BLAKE2b-256 5d62fdba7341975fbda3e0962f5fb5d38d3a3cbe0adee7adce0ef5e751ecdbd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynesys_pynecore-6.0.1-py3-none-any.whl:

Publisher: release.yml on PyneSys/pynecore

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page