Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Financial Technical Analysis Indicator Library. Python bindings for https://github.com/TulipCharts/tulipindicators
This is a fork of newtulipy which is a fork of tulipy.
Install with pip install newnewtulipy
.
Tulipy requires numpy as all inputs and outputs are numpy arrays (dtype=np.float64
).
You can install via pip install newtulipy
.
If a wheel is not available for your system, you will need to pip install Cython numpy
to build from the source distribution.
When building from source on Windows, you will need the Microsoft Visual C++ Build Tools installed.
import numpy as np
import tulipy as ti
ti.TI_VERSION
'0.8.4'
DATA = np.array([81.59, 81.06, 82.87, 83, 83.61,
83.15, 82.84, 83.99, 84.55, 84.36,
85.53, 86.54, 86.89, 87.77, 87.29])
Information about indicators are exposed as properties:
def print_info(indicator):
print("Type:", indicator.type)
print("Full Name:", indicator.full_name)
print("Inputs:", indicator.inputs)
print("Options:", indicator.options)
print("Outputs:", indicator.outputs)
print_info(ti.sqrt)
Type: simple
Full Name: Vector Square Root
Inputs: ['real']
Options: []
Outputs: ['sqrt']
Single outputs are returned directly. Indicators returning multiple outputs use
a tuple in the order indicated by the outputs
property.
ti.sqrt(DATA)
array([ 9.03271831, 9.00333272, 9.10329611, 9.11043358, 9.14385039,
9.11866218, 9.1016482 , 9.16460583, 9.19510739, 9.18477 ,
9.24824308, 9.30268778, 9.32148057, 9.36856446, 9.34291175])
print_info(ti.sma)
Type: overlay
Full Name: Simple Moving Average
Inputs: ['real']
Options: ['period']
Outputs: ['sma']
ti.sma(DATA, period=5)
array([ 82.426, 82.738, 83.094, 83.318, 83.628, 83.778, 84.254,
84.994, 85.574, 86.218, 86.804])
Invalid options will throw an InvalidOptionError
:
try:
ti.sma(DATA, period=-5)
except ti.InvalidOptionError:
print("Invalid Option!")
Invalid Option!
print_info(ti.bbands)
Type: overlay
Full Name: Bollinger Bands
Inputs: ['real']
Options: ['period', 'stddev']
Outputs: ['bbands_lower', 'bbands_middle', 'bbands_upper']
ti.bbands(DATA, period=5, stddev=2)
(array([ 80.53004219, 80.98714192, 82.53334324, 82.47198345,
82.41775044, 82.43520292, 82.51133078, 83.14261781,
83.53648779, 83.8703237 , 85.28887096]),
array([ 82.426, 82.738, 83.094, 83.318, 83.628, 83.778, 84.254,
84.994, 85.574, 86.218, 86.804]),
array([ 84.32195781, 84.48885808, 83.65465676, 84.16401655,
84.83824956, 85.12079708, 85.99666922, 86.84538219,
87.61151221, 88.5656763 , 88.31912904]))
If inputs of differing sizes are provided, they are right-aligned and trimmed from the left:
DATA2 = np.array([83.15, 82.84, 83.99, 84.55, 84.36])
# 'high' trimmed to DATA[-5:] == array([ 85.53, 86.54, 86.89, 87.77, 87.29])
ti.aroonosc(high=DATA, low=DATA2, period=2)
array([ 50., 100., 50.])
FAQs
Financial Technical Analysis Indicator Library. Python bindings for https://github.com/TulipCharts/tulipindicators
We found that newnewtulipy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.