Vector3Library "Vector3"
Representation of 3D vectors and points.
This structure is used to pass 3D positions and directions around. It also contains functions for doing common vector operations.
Besides the functions listed below, other classes can be used to manipulate vectors and points as well.
For example the Quaternion and the Matrix4x4 classes are useful for rotating or transforming vectors and points.
___
**Reference:**
- github.com
- github.com
- github.com
- www.movable-type.co.uk
- docs.unity3d.com
- referencesource.microsoft.com
- github.com
\
new(x, y, z)
Create a new `Vector3`.
Parameters:
x (float) : `float` Property `x` value, (optional, default=na).
y (float) : `float` Property `y` value, (optional, default=na).
z (float) : `float` Property `z` value, (optional, default=na).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.new(1.1, 1, 1)
```
from(value)
Create a new `Vector3` from a single value.
Parameters:
value (float) : `float` Properties positional value, (optional, default=na).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.from(1.1)
```
from_Array(values, fill_na)
Create a new `Vector3` from a list of values, only reads up to the third item.
Parameters:
values (float ) : `array` Vector property values.
fill_na (float) : `float` Parameter value to replace missing indexes, (optional, defualt=na).
Returns: `Vector3` Generated new vector.
___
**Notes:**
- Supports any size of array, fills non available fields with `na`.
___
**Usage:**
```
.from_Array(array.from(1.1, fill_na=33))
.from_Array(array.from(1.1, 2, 3))
```
from_Vector2(values)
Create a new `Vector3` from a `Vector2`.
Parameters:
values (Vector2 type from RicardoSantos/CommonTypesMath/1) : `Vector2` Vector property values.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.from:Vector2(.Vector2.new(1, 2.0))
```
___
**Notes:**
- Type `Vector2` from CommonTypesMath library.
from_Quaternion(values)
Create a new `Vector3` from a `Quaternion`'s `x, y, z` properties.
Parameters:
values (Quaternion type from RicardoSantos/CommonTypesMath/1) : `Quaternion` Vector property values.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.from_Quaternion(.Quaternion.new(1, 2, 3, 4))
```
___
**Notes:**
- Type `Quaternion` from CommonTypesMath library.
from_String(expression, separator, fill_na)
Create a new `Vector3` from a list of values in a formated string.
Parameters:
expression (string) : `array` String with the list of vector properties.
separator (string) : `string` Separator between entries, (optional, default=`","`).
fill_na (float) : `float` Parameter value to replace missing indexes, (optional, defualt=na).
Returns: `Vector3` Generated new vector.
___
**Notes:**
- Supports any size of array, fills non available fields with `na`.
- `",,"` Empty fields will be ignored.
___
**Usage:**
```
.from_String("1.1", fill_na=33))
.from_String("(1.1,, 3)") // 1.1 , 3.0, NaN // empty field will be ignored!!
```
back()
Create a new `Vector3` object in the form `(0, 0, -1)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.back()
```
front()
Create a new `Vector3` object in the form `(0, 0, 1)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.front()
```
up()
Create a new `Vector3` object in the form `(0, 1, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.up()
```
down()
Create a new `Vector3` object in the form `(0, -1, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.down()
```
left()
Create a new `Vector3` object in the form `(-1, 0, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.left()
```
right()
Create a new `Vector3` object in the form `(1, 0, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.right()
```
zero()
Create a new `Vector3` object in the form `(0, 0, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.zero()
```
one()
Create a new `Vector3` object in the form `(1, 1, 1)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.one()
```
minus_one()
Create a new `Vector3` object in the form `(-1, -1, -1)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.minus_one()
```
unit_x()
Create a new `Vector3` object in the form `(1, 0, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.unit_x()
```
unit_y()
Create a new `Vector3` object in the form `(0, 1, 0)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.unit_y()
```
unit_z()
Create a new `Vector3` object in the form `(0, 0, 1)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.unit_z()
```
nan()
Create a new `Vector3` object in the form `(na, na, na)`.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.nan()
```
random(max, min)
Generate a vector with random properties.
Parameters:
max (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Maximum defined range of the vector properties.
min (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Minimum defined range of the vector properties.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.random(.from(math.pi), .from(-math.pi))
```
random(max)
Generate a vector with random properties (min set to 0.0).
Parameters:
max (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Maximum defined range of the vector properties.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
.random(.from(math.pi))
```
method copy(this)
Copy a existing `Vector3`
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .one().copy()
```
method i_add(this, other)
Modify a instance of a vector by adding a vector to it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_add(.up())
```
method i_add(this, value)
Modify a instance of a vector by adding a vector to it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_add(3.2)
```
method i_subtract(this, other)
Modify a instance of a vector by subtracting a vector to it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_subtract(.down())
```
method i_subtract(this, value)
Modify a instance of a vector by subtracting a vector to it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_subtract(3)
```
method i_multiply(this, other)
Modify a instance of a vector by multiplying a vector with it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_multiply(.left())
```
method i_multiply(this, value)
Modify a instance of a vector by multiplying a vector with it.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_multiply(3)
```
method i_divide(this, other)
Modify a instance of a vector by dividing it by another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_divide(.forward())
```
method i_divide(this, value)
Modify a instance of a vector by dividing it by another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_divide(3)
```
method i_mod(this, other)
Modify a instance of a vector by modulo assignment with another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_mod(.back())
```
method i_mod(this, value)
Modify a instance of a vector by modulo assignment with another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_mod(3)
```
method i_pow(this, exponent)
Modify a instance of a vector by modulo assignment with another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
exponent (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Exponent Vector.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_pow(.up())
```
method i_pow(this, exponent)
Modify a instance of a vector by modulo assignment with another vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
exponent (float) : `float` Exponent Value.
Returns: `Vector3` Updated source vector.
___
**Usage:**
```
a = .from(1) , a.i_pow(2)
```
method length_squared(this)
Squared length of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1)
Returns: `float` The squared length of this vector.
___
**Usage:**
```
a = .one().length_squared()
```
method magnitude_squared(this)
Squared magnitude of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `float` The length squared of this vector.
___
**Usage:**
```
a = .one().magnitude_squared()
```
method length(this)
Length of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `float` The length of this vector.
___
**Usage:**
```
a = .one().length()
```
method magnitude(this)
Magnitude of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `float` The Length of this vector.
___
**Usage:**
```
a = .one().magnitude()
```
method normalize(this, magnitude, eps)
Normalize a vector with a magnitude of 1(optional).
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
magnitude (float) : `float` Value to manipulate the magnitude of normalization, (optional, default=1.0).
eps (float)
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .new(33, 50, 100).normalize() // (x=0.283, y=0.429, z=0.858)
a = .new(33, 50, 100).normalize(2) // (x=0.142, y=0.214, z=0.429)
```
method to_String(this, precision)
Converts source vector to a string format, in the form `"(x, y, z)"`.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
precision (string) : `string` Precision format to apply to values (optional, default='').
Returns: `string` Formated string in a `"(x, y, z)"` format.
___
**Usage:**
```
a = .one().to_String("#.###")
```
method to_Array(this)
Converts source vector to a array format.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `array` List of the vector properties.
___
**Usage:**
```
a = .new(1, 2, 3).to_Array()
```
method to_Vector2(this)
Converts source vector to a Vector2 in the form `x, y`.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector2` Generated new vector.
___
**Usage:**
```
a = .from(1).to_Vector2()
```
method to_Quaternion(this, w)
Converts source vector to a Quaternion in the form `x, y, z, w`.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Sorce vector.
w (float) : `float` Property of `w` new value.
Returns: `Quaternion` Generated new vector.
___
**Usage:**
```
a = .from(1).to_Quaternion(w=1)
```
method add(this, other)
Add a vector to source vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).add(.unit_z())
```
method add(this, value)
Add a value to each property of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).add(2.0)
```
add(value, other)
Add each property of a vector to a base value as a new vector.
Parameters:
value (float) : `float` Value.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(2) , b = .add(1.0, a)
```
method subtract(this, other)
Subtract vector from source vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).subtract(.left())
```
method subtract(this, value)
Subtract a value from each property in source vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).subtract(2.0)
```
subtract(value, other)
Subtract each property in a vector from a base value and create a new vector.
Parameters:
value (float) : `float` Value.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .subtract(1.0, .right())
```
method multiply(this, other)
Multiply a vector by another.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).multiply(.up())
```
method multiply(this, value)
Multiply each element in source vector with a value.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).multiply(2.0)
```
multiply(value, other)
Multiply a value with each property in a vector and create a new vector.
Parameters:
value (float) : `float` Value.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .multiply(1.0, .new(1, 2, 1))
```
method divide(this, other)
Divide a vector by another.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).divide(.from(2))
```
method divide(this, value)
Divide each property in a vector by a value.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).divide(2.0)
```
divide(value, other)
Divide a base value by each property in a vector and create a new vector.
Parameters:
value (float) : `float` Value.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .divide(1.0, .from(2))
```
method mod(this, other)
Modulo a vector by another.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).mod(.from(2))
```
method mod(this, value)
Modulo each property in a vector by a value.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
value (float) : `float` Value.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).mod(2.0)
```
mod(value, other)
Modulo a base value by each property in a vector and create a new vector.
Parameters:
value (float) : `float` Value.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .mod(1.0, .from(2))
```
method negate(this)
Negate a vector in the form `(zero - this)`.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .one().negate()
```
method pow(this, other)
Modulo a vector by another.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(2).pow(.from(3))
```
method pow(this, exponent)
Raise the vector elements by a exponent.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
exponent (float) : `float` The exponent to raise the vector by.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).pow(2.0)
```
pow(value, exponent)
Raise value into a vector raised by the elements in exponent vector.
Parameters:
value (float) : `float` Base value.
exponent (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` The exponent to raise the vector of base value by.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .pow(1.0, .from(2))
```
method sqrt(this)
Square root of the elements in a vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).sqrt()
```
method abs(this)
Absolute properties of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).abs()
```
method max(this)
Highest property of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `float` Highest value amongst the vector properties.
___
**Usage:**
```
a = .new(1, 2, 3).max()
```
method min(this)
Lowest element of the vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `float` Lowest values amongst the vector properties.
___
**Usage:**
```
a = .new(1, 2, 3).min()
```
method floor(this)
Floor of vector a.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .new(1.33, 1.66, 1.99).floor()
```
method ceil(this)
Ceil of vector a.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .new(1.33, 1.66, 1.99).ceil()
```
method round(this)
Round of vector elements.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .new(1.33, 1.66, 1.99).round()
```
method round(this, precision)
Round of vector elements to n digits.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
precision (int) : `int` Number of digits to round the vector elements.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .new(1.33, 1.66, 1.99).round(1) // 1.3, 1.7, 2
```
method fractional(this)
Fractional parts of vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1.337).fractional() // 0.337
```
method dot_product(this, other)
Dot product of two vectors.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `float` Dot product.
___
**Usage:**
```
a = .from(2).dot_product(.left())
```
method cross_product(this, other)
Cross product of two vectors.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).cross_produc(.right())
```
method scale(this, scalar)
Scale vector by a scalar value.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
scalar (float) : `float` Value to scale the the vector by.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).scale(2)
```
method rescale(this, magnitude)
Rescale a vector to a new magnitude.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
magnitude (float) : `float` Value to manipulate the magnitude of normalization.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(20).rescale(1)
```
method equals(this, other)
Compares two vectors.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
other (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Other vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).equals(.one())
```
method sin(this)
Sine of vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).sin()
```
method cos(this)
Cosine of vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).cos()
```
method tan(this)
Tangent of vector.
Namespace types: TMath.Vector3
Parameters:
this (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .from(1).tan()
```
vmax(a, b)
Highest elements of the properties from two vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .vmax(.one(), .from(2))
```
vmax(a, b, c)
Highest elements of the properties from three vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
c (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .vmax(.new(0.1, 2.5, 3.4), .from(2), .from(3))
```
vmin(a, b)
Lowest elements of the properties from two vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .vmin(.one(), .from(2))
```
vmin(a, b, c)
Lowest elements of the properties from three vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
c (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .vmin(.one(), .from(2), .new(3.3, 2.2, 0.5))
```
distance(a, b)
Distance between vector `a` and `b`.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = distance(.from(3), .unit_z())
```
clamp(a, min, max)
Restrict a vector between a min and max vector.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
min (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Minimum boundary vector.
max (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Maximum boundary vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .clamp(a=.new(2.9, 1.5, 3.9), min=.from(2), max=.new(2.5, 3.0, 3.5))
```
clamp_magnitude(a, radius)
Vector with its magnitude clamped to a radius.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.object, vector with properties that should be restricted to a radius.
radius (float) : `float` Maximum radius to restrict magnitude of vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .clamp_magnitude(.from(21), 7)
```
lerp_unclamped(a, b, rate)
`Unclamped` linearly interpolates between provided vectors by a rate.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
rate (float) : `float` Rate of interpolation, range(0 > 1) where 0 == source vector and 1 == target vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .lerp_unclamped(.from(1), .from(2), 1.2)
```
lerp(a, b, rate)
Linearly interpolates between provided vectors by a rate.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
rate (float) : `float` Rate of interpolation, range(0 > 1) where 0 == source vector and 1 == target vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = lerp(.one(), .from(2), 0.2)
```
herp(start, start_tangent, end, end_tangent, rate)
Hermite curve interpolation between provided vectors.
Parameters:
start (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Start vector.
start_tangent (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Start vector tangent.
end (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` End vector.
end_tangent (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` End vector tangent.
rate (int) : `float` Rate of the movement from `start` to `end` to get position, should be range(0 > 1).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
s = .new(0, 0, 0) , st = .new(0, 1, 1)
e = .new(1, 2, 2) , et = .new(-1, -1, 3)
h = .herp(s, st, e, et, 0.3)
```
___
**Reference:** en.m.wikibooks.org
herp_2(a, b, rate)
Hermite curve interpolation between provided vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
rate (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Rate of the movement per component from `start` to `end` to get position, should be range(0 > 1).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
h = .herp_2(.one(), .new(0.1, 3, 2), 0.6)
```
noise(a)
3D Noise based on Morgan McGuire @morgan3d
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = noise(.one())
```
___
**Reference:**
- thebookofshaders.com
- www.shadertoy.com
rotate(a, axis, angle)
Rotate a vector around a axis.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
axis (string) : `string` The plane to rotate around, `option="x", "y", "z"`.
angle (float) : `float` Angle in radians.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .rotate(.from(3), 'y', math.toradians(45.0))
```
rotate_x(a, angle)
Rotate a vector on a fixed `x`.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
angle (float) : `float` Angle in radians.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .rotate_x(.from(3), math.toradians(90.0))
```
rotate_y(a, angle)
Rotate a vector on a fixed `y`.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
angle (float) : `float` Angle in radians.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .rotate_y(.from(3), math.toradians(90.0))
```
rotate_yaw_pitch(a, yaw, pitch)
Rotate a vector by yaw and pitch values.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
yaw (float) : `float` Angle in radians.
pitch (float) : `float` Angle in radians.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .rotate_yaw_pitch(.from(3), math.toradians(90.0), math.toradians(45.0))
```
project(a, normal, eps)
Project a vector off a plane defined by a normal.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
normal (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` The normal of the surface being reflected off.
eps (float) : `float` Minimum resolution to void division by zero (default=0.000001).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .project(.one(), .down())
```
project_on_plane(a, normal, eps)
Projects a vector onto a plane defined by a normal orthogonal to the plane.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
normal (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` The normal of the surface being reflected off.
eps (float) : `float` Minimum resolution to void division by zero (default=0.000001).
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .project_on_plane(.one(), .left())
```
project_to_2d(a, camera_position, camera_target)
Project a vector onto a two dimensions plane.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
camera_position (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Camera position.
camera_target (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Camera target plane position.
Returns: `Vector2` Generated new vector.
___
**Usage:**
```
a = .project_to_2d(.one(), .new(2, 2, 3), .zero())
```
reflect(a, normal)
Reflects a vector off a plane defined by a normal.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
normal (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` The normal of the surface being reflected off.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .reflect(.one(), .right())
```
angle(a, b, eps)
Angle in degrees between two vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
eps (float) : `float` Minimum resolution to void division by zero (default=1.0e-15).
Returns: `float` Angle value in degrees.
___
**Usage:**
```
a = .angle(.one(), .up())
```
angle_signed(a, b, axis)
Signed angle in degrees between two vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
axis (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Axis vector.
Returns: `float` Angle value in degrees.
___
**Usage:**
```
a = .angle_signed(.one(), .left(), .down())
```
___
**Notes:**
- The smaller of the two possible angles between the two vectors is returned, therefore the result will never
be greater than 180 degrees or smaller than -180 degrees.
- If you imagine the from and to vectors as lines on a piece of paper, both originating from the same point,
then the /axis/ vector would point up out of the paper.
- The measured angle between the two vectors would be positive in a clockwise direction and negative in an
anti-clockwise direction.
___
**Reference:**
- github.com
angle2d(a, b)
2D angle between two vectors.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
b (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Target vector.
Returns: `float` Angle value in degrees.
___
**Usage:**
```
a = .angle2d(.one(), .left())
```
transform_Matrix(a, M)
Transforms a vector by the given matrix.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
M (matrix) : `matrix` A 4x4 matrix. The transformation matrix.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
mat = matrix.new(4, 0)
mat.add_row(0, array.from(0.0, 0.0, 0.0, 1.0))
mat.add_row(1, array.from(0.0, 0.0, 1.0, 0.0))
mat.add_row(2, array.from(0.0, 1.0, 0.0, 0.0))
mat.add_row(3, array.from(1.0, 0.0, 0.0, 0.0))
b = .transform_Matrix(.one(), mat)
```
transform_M44(a, M)
Transforms a vector by the given matrix.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
M (M44 type from RicardoSantos/CommonTypesMath/1) : `M44` A 4x4 matrix. The transformation matrix.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .transform_M44(.one(), .M44.new(0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0))
```
___
**Notes:**
- Type `M44` from `CommonTypesMath` library.
transform_normal_Matrix(a, M)
Transforms a vector by the given matrix.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
M (matrix) : `matrix` A 4x4 matrix. The transformation matrix.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
mat = matrix.new(4, 0)
mat.add_row(0, array.from(0.0, 0.0, 0.0, 1.0))
mat.add_row(1, array.from(0.0, 0.0, 1.0, 0.0))
mat.add_row(2, array.from(0.0, 1.0, 0.0, 0.0))
mat.add_row(3, array.from(1.0, 0.0, 0.0, 0.0))
b = .transform_normal_Matrix(.one(), mat)
```
transform_normal_M44(a, M)
Transforms a vector by the given matrix.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector.
M (M44 type from RicardoSantos/CommonTypesMath/1) : `M44` A 4x4 matrix. The transformation matrix.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .transform_normal_M44(.one(), .M44.new(0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0))
```
___
**Notes:**
- Type `M44` from `CommonTypesMath` library.
transform_Array(a, rotation)
Transforms a vector by the given Quaternion rotation value.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector. The source vector to be rotated.
rotation (float ) : `array` A 4 element array. Quaternion. The rotation to apply.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .transform_Array(.one(), array.from(0.2, 0.2, 0.2, 1.0))
```
___
**Reference:**
- referencesource.microsoft.com
transform_Quaternion(a, rotation)
Transforms a vector by the given Quaternion rotation value.
Parameters:
a (Vector3 type from RicardoSantos/CommonTypesMath/1) : `Vector3` Source vector. The source vector to be rotated.
rotation (Quaternion type from RicardoSantos/CommonTypesMath/1) : `array` A 4 element array. Quaternion. The rotation to apply.
Returns: `Vector3` Generated new vector.
___
**Usage:**
```
a = .transform_Quaternion(.one(), .Quaternion.new(0.2, 0.2, 0.2, 1.0))
```
___
**Notes:**
- Type `Quaternion` from `CommonTypesMath` library.
___
**Reference:**
- referencesource.microsoft.com
在腳本中搜尋"非ST、非创业板、非科创板主板股票的筹码分布数据"
Index_and_Commodity_PricesThis indicator shows real-time current day-to-day performance of 18 different indices and commodities . Here is the list of different sector ETFs that this indicator tracks
/////INDEX//////
1. BİST-100 - XU0100 - TR- Index
2. BİST-30 - XU030 - TR - Index
3. VİOP-30 - XU030D1! - Index
4. DJI - Dow Jones - Index
5. DAX - DAX Index
6. VIX - Volatilite S&P Index
//////FOREX MARKET/////
7. DXY - U.S. Dollar Index
8. EURUSD -
9. BTCUSD -
10. XAUUSD -
11. XAGUSD -
//////COMMODITY///////
12. BR1! - Brent
13. NG1! - Natural Gas
14. HRC1! -
15. ZW1! -
16. HG1! -
17. DJUSCL -
///////OTHER///////
18. US10Y -
RSI adjusted SuperTrendThis script is a variation on the SuperTrend.
The original function is from Tradingview, the difference is that I added a calculation with RSI
First 50 is subtracted from the RSI.
The absolute value of this number is on its turn divided with 100 or 50 (settings: 'Divide RSI value by')
-> this gives the 'aRSI', which is similar to a percentage
Finally a last calculation is made:
- lower * 'aRSI' is subtracted from the lower band
- upper * 'aRSI' is added to the upper band
If you want to see the Regular ST -> Toggle 'Show Regular ST'
Settings:
- factor (for both SuperTrends)
- ATR length (for SuperTrends)
- RSI length (for 'RSI adjusted SuperTrend')
Cheers!
Variable Purchase Options [Loxx]Handley (2001) describes how to value variable purchase options (VPO). A VPO is basically a call option, but where the number of underlying shares is stochastic rather than fixed, or more precisely, a deterministic function of the asset price. The strike price of a VPO is typically a fixed discount to the underlying share price at maturity. The payoff at maturity is equal to max , where N is the number of shares. VPOs may be an interesting tool for firms that need to raise capital relatively far into the future at a given time. The number of underlying shares N is decided on at maturity and is equal to
N = X / St(1 -D)
where X is the strike price, ST is the asset price at maturity, and D is the fixed discount expressed as a proportion 0 > D < 1. The number of shares is in this way a deterministic function of the asset price. Further, the number of shares is often subjected to a minimum and maximum. In this case, we will limit the minimum number of shares to Nmin = X / U(1 -D) if, the asset price at maturity is above a predefined level U at maturity. Similarly, we will reach the maximum number of shares A T = x if the stock price at maturity is equal Nmax = X / L(1 -D) or lower than a predefined level L. Based on Handley (2001), we get the following closed-form solution: (via "The Complete Guide to Option Pricing Formulas")
c = XD / 1-D e^-rT + Nmin(Se^(b-r)T * N(d1) - Ue^-rT * N(d2))
- Nmax(Le^-rT * N(-d4) - Se^(b-r)T * N(-d3))
+ Nmax(L(1-D)e^-rT * N(-d6) - Se^(b-r)T * N(-d5))
where
d1 = (log(S/U) + (b+v^2/2)T) / vT^0.5 ... d2 = d1 - vT^0.5
d3 = (log(S/L) + (b+v^2/2)T) / vT^0.5 ... d4 = d3 - vT^0.5
d5 = (log(S/L(1-D)) + (b+v^2/2)T) / vT^0.5 ... d6 = d5 - vT^0.5
Inputs
Asset price (S)
Strike price (K)
Discount %
Lower bound
Upper bound
Time to maturity
Risk-free rate (r) %
Cost of carry (b) %
Volatility (v) %
Things to know
Only works on the daily timeframe and for the current source price.
You can adjust the text size to fit the screen
STP Fractal CorridorsFractal Corridors is a lagging channel connecting Fractal highs and lows each with added/substracted pre-set value.
It is inspired and designed for Vladimir Poltoratskiy's trading style with his ST patterns (book: Forex Strategy: ST Patterns Trading Manual).
This uses fractals with one candle lower/higher on each side as in the book.
You may choose to disable fractals and view the channel only.
Good luck trading!
Fractal CorridorsFractal Corridors is a lagging channel connecting Fractal highs and lows each with added/substracted pre-set value.
It is inspired and designed for Vladimir Poltoratskiy's trading style with his ST patterns (book: Forex Strategy: ST Patterns Trading Manual).
However, to keep the charts clearer, I used William's Fractals that require two previous and following candles to be higher/lower opposed to just one as described in the book.
You may choose to disable fractals and view the channel only.
Divergence of Stocks Above MA50 v.s. US-Stock MarketEnglish:
This indicator has been developed as an early warning tool to estimate the probability of correction in the US stock market. It works best in the daily chart.
Function:
1.) "Index-line"
The underlying stock index is converted to a scale between 0% and 100% based on its 52-week highs and lows. Where 100% is closing price at 52-week high and 0% is closing price at 52-week low.
2nd) "Stocks Above MA50".
For each major stock index, there is an index that determines the percentage of stocks above its 50 moving average. For example, for the S&P 500, this is the S5FI.
3) "Divergence
In an efficient market, both lines (index and number of stocks above the 50 MA) would run more or less in sync. A new high in the index would also mean a new high in the stocks trading above the 50 moving average. Often, however, a correction in the index is announced when the number of stocks trading above their 50 MA do not make a new, or even a lower, high while the underlying index marks a new high. The divergence signal measures this divergence of the indices. The higher the bar, the more pronounced the divergence.
How to read the indicator?
If a divergence occurs, then the stops should be tightened. As with any indicator, false signals can occur because a divergence does not automatically lead to a correction. The higher the divergence is indicated, the higher the probability. The strength of a correction cannot be predicted with the indicator.
For which symbols does the indicator work?
The indicator works exclusively for the following symbols:
S&P500: SPX, SPY, ES1!, US500 Index above MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index above MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index above MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index above MA50: NCFI
NYSE: XAX, NYA Index above MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index above MA50: DIFI
DowJonesComp: DOW, IYY Index above MA50: DCFI
Deutsch:
Dieser Indikator ist als Frühwarninstrument zur Einschätzung der Korrekturwahrscheinlichkeit im US-Aktienmarkt entwickelt worden. Er funktioniert am besten im Tages-Chart.
Funktion:
1.) „Index-line“
Der zugrunde liegende Aktienindex wird bezogen auf seine 52Wochen Hochs und Tiefs in eine Skala zwischen 0% und 100% umgerechnet. Dabei sind 100% Schlusskurs auf 52-Wochen Hoch und 0% Schlusskurs auf 52-Wochen Tief.
2.) „Stocks Above MA50“
Zu jedem Hauptaktienindex gibt es einen Index, der den Prozentwert der Aktien über Ihrem 50 gleitenden Durchschnitt ermittelt. Beim S&P 500 ist das z.B. der S5FI.
3.) „Divergence“
In einem effizienten Markt würden beide Linien (Index und Anzahl Aktien über dem 50 MA) mehr oder weniger synchron laufen. Ein neues Hoch im Index würde auch ein neues Hoch bei den Aktien, die über dem 50 gleitenden Durchschnitt notieren, bedeuten. Oft jedoch kündigt sich eine Korrektur im Index an, wenn die Anzahl der Aktien, die über ihrem 50 MA notieren kein neues, oder sogar ein niedrigeres Hoch machen, während der zu Grunde liegende Index ein neues Hoch markiert. Das Divergenz-Signal misst diese auseinanderlaufen der Indices. Je höher der Balken, umso stärker ist die Divergenz ausgeprägt.
Wie ist der Indikator zu lesen?
Wenn eine Divergenz auftritt, dann sollten die Stopps enger herangezogen werden. Es kann wie bei jedem Indikator zu Fehlsignalen kommen, da eine Divergenz nicht automatisch zu einer Korrektur führen muss. Die Wahrscheinlichkeit ist um so höher, je höher die Divergenz angezeigt wird. Die Stärke einer Korrektur kann mit dem Indikator nicht prognostiziert werden.
Für welche Symbole funktioniert der Indikator?
Der Indikator funktioniert ausschließlich für folgende Symbole:
S&P500: SPX, SPY, ES1!, US500 Index über MA50: S5FI
Russel2000: IWM, US2000, RTY1!, RUT, IWO Index über MA50: R2FI
NASDAQ100: NDX, NAS100, NQ1!, US100, QQQ Index über MA50: NDFI
NASDAQ: IXIC, ONEQ, QCN1!, NDAQ Index über MA50: NCFI
NYSE: XAX, NYA Index über MA50: MMFI
DowJones100: DJX, DJI, DIA, MYM1!, YM1! Index über MA50: DIFI
DowJonesComp: DOW, IYY Index über MA50: DCFI
[SerDarK] SMA RSI Engulfing BarENG: This indicator includes the SMA line colored according to the price position, the RSI to identify the bearish or the bullish points, the Engulfing bars, the clock and the information panel showing the countdown to the candle closing.
SMA: default period is set to 50. It can change from the settings.
Definition of SMA line default colors: When the price is below the SMA line, its color is blue. It is green when the price is above the SMA line. It is yellow in RSI alerts and when the price hits the SMA line.
RSI: default period 14 is set. It can be changed in the settings.
🔨 Hammer Emoji: RSI is located at the overbought turnaround point. This sign does not mean that the trend will definitely return.
🚀Rocket Emoji: Tries to catch the "RSI oversold point turn".This sign does not mean that the trend will definitely return.
↗️↘️Up and Down arrows emojis. After the price crosses the SMA line, it indicates that it is closing a candle in that direction.
Engulfing candles: bullish engulfing candle is blue color. Bear engulfing candle is black in color.colors can be changed in settings.
Note that this indicator is only an indicator. It does not give advice on buying or selling.
Enjoy
TUR: Bu indikatör, fiyat konumuna göre renklendirilmiş SMA çizgisi, RSI ile düşüş veya yükseliş noktalarını belirleme, Engulfing (Yutan) barlar , saat ve mum kapanışı için geri sayım gösteren bilgi paneli içermektedir.
SMA: varsayılan periyodu 50 ayarlıdır. Ayarlardan değiştirebilir.
SMA çizgisi varsayılan renklerinin tanımı: Fiyat SMA çizgisi altında iken rengi mavidir. Fiyat SMA çizgisi üstünde iken yeşildir. RSI uyarılarında ve fiyat SMA çizgisine temas ettiğinde sarı renktedir.
RSI: varsayılan periyodu 14 ayarlanmıştır. Ayarlardan değiştirilebilir.
🔨 Çekiç Emojisi: RSI aşırı alım dönüş noktasında bulunur. Bu işaret trendin kesin döneceği anlamına gelmez.
🚀Roket Emojisi: "RSI aşırı satım noktası dönüşünü "yakalamaya çalışır. Bu işaret trendin kesin döneceği anlamına gelmez.
↗️↘️Yukarı ve Aşağı yönlü okl emojileri. Fiyat SMA çizgisini kestikten sonra, o yönde mum kapattığını gösterir.
Engulfing mumları: bullish engulfing (yutan boğa) mumu mavi renktir. Bear engulfing (yutan ayı) mumu siyah renktir. Renkler ayarlardan değiştirilebilir.
Not: Bu indikatörün yalnızca gösterge olduğunu unutmayın. Alma satma tavsiyesi vermez.
Kalan süre etiketi BIST gibi sınırlı süreli sembollerde, gün ve daha üstü periyotlarda doğru çalışmayabiliyor.
Standard deviation zones Support & Resistance [LM]Hi Guy,
I would like to introduce you Standard deviation zones Support & Resistance horizontals. It draws line horizontals on high and low st dev zone. The colors are dynamic depending whether price is below or above the line.
Credit is due to @Zeiierman for st dev zone calculation so shout out to him.
There are various sections in setting:
general setting where you can select source for zone calculation
tops setting
bottom setting
show and hide section of the first timeframe
show and hide section of the second timeframe
Be aware that when new zone starts and is not finished yet than the top will trail the high of unfinished zone that could be also at the high of current candle and next candle it can change
Any suggestions are welcomed
ema based pseudo RSI - JDIf you reverse engineer the "50-level" of the 14 period rsi, you end up with almost exactly the 27 period ema
So to calculate the rsi, you can 'reverse engineer' the 'reverse engineered rsi'.
This can be done by taking the distance between the current price and the "50-level ema"
you can then normalise this by dividing with the atr or the st dev to end up with a chart that's almost exactly like the rsi line
As OB/OS levele, a multiplier of the atr or st dev can be used
one application for this is to quickly refer to MTF rsi levels by multiplying th 27 ema value with the timeframe multiplier
as it turns out, I discovered that the ema's with multiples of 27 as a period align with the 50-level line of the rsi of all the corresponding timeframes.
Enjoy!
JD.
#NotTradingAdvice
#DYOR
QuantNomad - SuperTrend - XBTUSD - 1mInteresting performance for Super Trend strategy for XBTUSD 1m chart.
Params: ST Mult: 2, ST Period 14.
Performance: 144% profit, 1988 trades, only 41% prof, 2.04% dd , 2.51 Sharpe.
On its own, it might be not a very good strategy, but the big amount of trades allows you to add more filters and improve it.
And remember:
Past performance does not guarantee future results.
QuantNomad - SuperTrend - TSLA - 1mInteresting performance for Super Trend strategy for Tesla ( TSLA ) 1m chart.
Params: ST Mult: 3, ST Period 120.
Performance:61% profit, 637 trades, only 33% prof, 4.84% dd , 0.4 Sharpe.
On its own, it might be not a very good strategy, but the big amount of trades allows you to add more filters and improve it.
The strategy is not bad both with "when" params when strategy executed on open of next bar and with stop orders when strategy enters on exact Super Trend level.
You can comment/uncomment lines in the code and switch from one approach to another.
And remember:
Past performance does not guarantee future results.
Recursive StochasticThe Self Referencing Stochastic Oscillator
The stochastic oscillator bring values in range of (0,100). This process is called Feature scaling or Unity-Based Normalization
When a function use recursion you can highlights cycles or create smoother results depending on various factors, this is the goal of a recursive stochastic.
For example : k = s(alpha*st+(1-alpha)*nz(k )) where st is the target source.
Using inputs with different scale level can modify the result of the indicator depending on which instrument it is applied, therefore the input must be normalized, here the price is first passed through a stochastic, then this result is used for the recursion.
In order to control the level of the recursion, weights are distributed using the alpha parameter. This parameter is in a range of (0,1), if alpha = 1, then the indicator act as a normal stochastic oscillator, if alpha = 0, then the indicator return na since the initial value for k = 0. The smaller the alpha parameter, the lower the correlation between the price and the indicator, but the indicator will look more periodic.
Comparison
Recursive Stochastic oscillator with alpha = 0.1 and bellow a classic oscillator (alpha = 1)
The use of recursion can both smooth the result and make it more reactive as well.
Filter As Source
It is possible to stabilize the indicator and make it less affected by outliers using a filter as input.
Lower alpha can be used in order to recover some reactivity, this will also lead to more periodic results (which are not inevitably correlated with price)
Hope you enjoy
For any questions/demands feel free to pm me, i would be happy to help you
Ultimate SuperTrend with Support and ResistanceModified ST with Support and resistance levels. This was developed by SAM team to provide a singular indicator to trade in NIFTY. It can also be used in other securities.
Based on the trading style, can be used for Sell and Buy trades. Provide your comments and guidance.
The VoVix Experiment The VoVix Experiment
The VoVix Experiment is a next-generation, regime-aware, volatility-adaptive trading strategy for futures, indices, and more. It combines a proprietary VoVix (volatility-of-volatility) anomaly detector with price structure clustering and critical point logic, only trading when multiple independent signals align. The system is designed for robustness, transparency, and real-world execution.
Logic:
VoVix Regime Engine: Detects pre-move volatility anomalies using a fast/slow ATR ratio, normalized by Z-score. Only trades when a true regime spike is detected, not just random volatility.
Cluster & Critical Point Filters: Price structure and volatility clustering must confirm the VoVix signal, reducing false positives and whipsaws.
Adaptive Sizing: Position size scales up for “super-spikes” and down for normal events, always within user-defined min/max.
Session Control: Trades only during user-defined hours and days, avoiding illiquid or high-risk periods.
Visuals: Aurora Flux Bands (From another Original of Mine (Options Flux Flow): glow and change color on signals, with a live dashboard, regime heatmap, and VoVix progression bar for instant insight.
Backtest Settings
Initial capital: $10,000
Commission: Conservative, realistic roundtrip cost:
15–20 per contract (including slippage per side) I set this to $25
Slippage: 3 ticks per trade
Symbol: CME_MINI:NQ1!
Timeframe: 15 min (but works on all timeframes)
Order size: Adaptive, 1–2 contracts
Session: 5:00–15:00 America/Chicago (default, fully adjustable)
Why these settings?
These settings are intentionally strict and realistic, reflecting the true costs and risks of live trading. The 10,000 account size is accessible for most retail traders. 25/contract including 3 ticks of slippage are on the high side for MNQ, ensuring the strategy is not curve-fit to perfect fills. If it works here, it will work in real conditions.
Forward Testing: (This is no guarantee. I've provided these results to show that executions perform as intended. Test were done on Tradovate)
ALL TRADES
Gross P/L: $12,907.50
# of Trades: 64
# of Contracts: 186
Avg. Trade Time: 1h 55min 52sec
Longest Trade Time: 55h 46min 53sec
% Profitable Trades: 59.38%
Expectancy: $201.68
Trade Fees & Comm.: $(330.95)
Total P/L: $12,576.55
Winning Trades: 59.38%
Breakeven Trades: 3.12%
Losing Trades: 37.50%
Link: www.dropbox.com
Inputs & Tooltips
VoVix Regime Execution: Enable/disable the core VoVix anomaly detector.
Volatility Clustering: Require price/volatility clusters to confirm VoVix signals.
Critical Point Detector: Require price to be at a statistically significant distance from the mean (regime break).
VoVix Fast ATR Length: Short ATR for fast volatility detection (lower = more sensitive).
VoVix Slow ATR Length: Long ATR for baseline regime (higher = more stable).
VoVix Z-Score Window: Lookback for Z-score normalization (higher = smoother, lower = more reactive).
VoVix Entry Z-Score: Minimum Z-score for a VoVix spike to trigger a trade.
VoVix Exit Z-Score: Z-score below which the regime is considered decayed (exit).
VoVix Local Max Window: Bars to check for local maximum in VoVix (higher = stricter).
VoVix Super-Spike Z-Score: Z-score for “super” regime events (scales up position size).
Min/Max Contracts: Adaptive position sizing range.
Session Start/End Hour: Only trade between these hours (exchange time).
Allow Weekend Trading: Enable/disable trading on weekends.
Session Timezone: Timezone for session filter (e.g., America/Chicago for CME).
Show Trade Labels: Show/hide entry/exit labels on chart.
Flux Glow Opacity: Opacity of Aurora Flux Bands (0–100).
Flux Band EMA Length: EMA period for band center.
Flux Band ATR Multiplier: Width of bands (higher = wider).
Compliance & Transparency
* No hidden logic, no repainting, no pyramiding.
* All signals, sizing, and exits are fully explained and visible.
* Backtest settings are stricter than most real accounts.
* All visuals are directly tied to the strategy logic.
* This is not a mashup or cosmetic overlay; every component is original and justified.
Disclaimer
Trading is risky. This script is for educational and research purposes only. Do not trade with money you cannot afford to lose. Past performance is not indicative of future results. Always test in simulation before live trading.
Proprietary Logic & Originality Statement
This script, “The VoVix Experiment,” is the result of original research and development. All core logic, algorithms, and visualizations—including the VoVix regime detection engine, adaptive execution, volatility/divergence bands, and dashboard—are proprietary and unique to this project.
1. VoVix Regime Logic
The concept of “volatility of volatility” (VoVix) is an original quant idea, not a standard indicator. The implementation here (fast/slow ATR ratio, Z-score normalization, local max logic, super-spike scaling) is custom and not found in public TradingView scripts.
2. Cluster & Critical Point Logic
Volatility clustering and “critical point” detection (using price distance from a rolling mean and standard deviation) are general quant concepts, but the way they are combined and filtered here is unique to this script. The specific logic for “clustered chop” and “critical point” is not a copy of any public indicator.
3. Adaptive Sizing
The adaptive sizing logic (scaling contracts based on regime strength) is custom and not a standard TradingView feature or public script.
4. Time Block/Session Control
The session filter is a common feature in many strategies, but the implementation here (with timezone and weekend control) is written from scratch.
5. Aurora Flux Bands (From another Original of Mine (Options Flux Flow)
The “glowing” bands are inspired by the idea of volatility bands (like Bollinger Bands or Keltner Channels), but the visual effect, color logic, and integration with regime signals are original to this script.
6. Dashboard, Watermark, and Metrics
The dashboard, real-time Sharpe/Sortino, and VoVix progression bar are all custom code, not copied from any public script.
What is “standard” or “common quant practice”?
Using ATR, EMA, and Z-score are standard quant tools, but the way they are combined, filtered, and visualized here is unique. The structure and logic of this script are original and not a mashup of public code.
This script is 100% original work. All logic, visuals, and execution are custom-coded for this project. No code or logic is directly copied from any public or private script.
Use with discipline. Trade your edge.
— Dskyz, for DAFE Trading Systems
Stock_Cloud-EMA,VWAP,ST Indicator_V1Stock_Cloud V1 - EMA, VWAP, SuperTrend Strategy Indicator
This indicator combines three powerful technical indicators (EMA, VWAP, and SuperTrend) to create a comprehensive trading system that helps identify high-probability trading setups when all components align.
Strategy Components & Logic:
• EMA (Exponential Moving Average): Acts as a dynamic support/resistance and trend direction indicator
• VWAP (Volume Weighted Average Price): Provides important institutional price levels and volume-based trend strength
• SuperTrend: Offers trend direction and potential reversal points
Why These Components Work Together:
1. EMA filters out market noise while maintaining responsiveness to price changes
2. VWAP adds volume-based price validation, especially useful for intraday trading
3. SuperTrend confirms trend direction and potential reversal points
4. When all three indicators align, it creates a high-probability setup
Signal Generation:
• Bullish Signal: Generated when price crosses above all three indicators (EMA, VWAP, and SuperTrend turns bullish)
• Bearish Signal: Generated when price crosses below all three indicators (EMA, VWAP, and SuperTrend turns bearish)
• Background color changes help visualize the current market condition
Settings:
- EMA Length: 20 (default, adjustable)
- SuperTrend Period: 10 (default, adjustable)
- SuperTrend Multiplier: 3.0 (default, adjustable)
How to Use:
1. Look for potential entries when all three indicators align
2. Small triangles mark key entry points when alignment occurs
3. Use background color as additional confirmation
4. Monitor price action relative to all three indicators for exit signals
Best Timeframes:
Works well on all timeframes, but particularly effective on 5-minute to daily charts for stocks and indices.
Note: This indicator combines traditional technical analysis tools in a unique way to provide clear, actionable signals. Always use proper risk management and consider other factors like market conditions and support/resistance levels.
Created by Stock_Cloud
Version 2.0
Pullback Scalp Trade V2Pullback Scalp Trading Indicator
This indicator combines multiple technical analysis tools to identify potential pullback trading opportunities in trending markets. It uses a dual moving average system along with RSI for confirmation, providing a comprehensive approach to trend-following and momentum trading.
Key Features:
1. Trend Identification:
- Uses 50 and 200 period moving averages to define the overall trend
- Visual trend zone highlighting for clear market direction
- Customizable MA periods for different timeframes
2. Signal Generation System:
- Combines RSI crossovers with trend direction
- Buy signals occur when:
* Price is above 200 MA (uptrend)
* RSI crosses above its SMA
* RSI is below the lower threshold (default 50)
- Sell signals occur when:
* Price is below 200 MA (downtrend)
* RSI crosses below its SMA
* RSI is above the upper threshold (default 50)
3. Customizable Parameters:
- Short and Long MA periods
- MA types (SMA, EMA, VWMA)
- RSI length and RSI-SMA length
- RSI signal thresholds
- Trend MA periods
Usage Guidelines:
- Best used on higher timeframes (1H and above) for trend trading
- Wait for price to respect the trend zone before taking trades
- Use additional confirmation from price action or other indicators
- Adjust RSI levels based on market volatility
Limitations:
- Like all indicators, this tool may generate false signals in choppy markets
- Should not be used as a sole decision-making tool
- Past performance does not guarantee future results
----------
Türkçe Açıklama:
Bu indikatör, trendli piyasalarda potansiyel geri çekilme fırsatlarını belirlemek için birden fazla teknik analiz aracını birleştirir. Trend takibi ve momentum ticareti için kapsamlı bir yaklaşım sunan ikili hareketli ortalama sistemi ile RSI'yı bir arada kullanır.
Temel Özellikler:
1. Trend Belirleme:
- Genel trendi tanımlamak için 50 ve 200 periyotlu hareketli ortalamalar
- Görsel trend bölgesi vurgulaması
- Farklı zaman dilimleri için özelleştirilebilir MA periyotları
2. Sinyal Üretim Sistemi:
- RSI kesişimlerini trend yönü ile birleştirir
- Alış sinyalleri şu durumlarda oluşur:
* Fiyat 200 MA'nın üzerinde (yükseliş trendi)
* RSI, SMA'sını yukarı keser
* RSI alt eşiğin altında (varsayılan 50)
- Satış sinyalleri şu durumlarda oluşur:
* Fiyat 200 MA'nın altında (düşüş trendi)
* RSI, SMA'sını aşağı keser
* RSI üst eşiğin üzerinde (varsayılan 50)
3. Özelleştirilebilir Parametreler:
- Kısa ve Uzun MA periyotları
- MA tipleri (SMA, EMA, VWMA)
- RSI uzunluğu ve RSI-SMA uzunluğu
- RSI sinyal seviyeleri
- Trend MA periyotları
Kullanım Önerileri:
- Trend ticareti için yüksek zaman dilimlerinde (1S ve üzeri) kullanılması önerilir
- İşlem almadan önce fiyatın trend bölgesine saygı göstermesini bekleyin
- Fiyat hareketi veya diğer indikatörlerden ek teyit alın
- RSI seviyelerini piyasa volatilitesine göre ayarlayın
Sınırlamalar:
- Tüm indikatörler gibi, dalgalı piyasalarda yanlış sinyaller üretebilir
- Tek başına karar verme aracı olarak kullanılmamalıdır
- Geçmiş performans, gelecekteki sonuçların garantisi değildir
Flashtrader´s Statistical BandwidthsThe vast majority of traders exclusively concern
themselves with trend-following in all its facets. Scoring
points with trends on a regular basis is a difficult task
since prices do not constantly move in one direction
or another. In the case of the DAX future, for example,
only about 30 per cent of all trading days in a year are
trend days. And of these, there are x percent long ones
and x per cent short ones. Catching the very days when
prices rise or fall from the opening to the close is a major
challenge for a trader who also needs to have previously
recognised the corresponding direction.
However, there are also other ways of profit-taking
every day – for example, by using the mean reversion
strategy. The idea behind this is the fact that prices reach
a high and a low every day – but very rarely close at the
high or the low. This means that prices always move
away from these extreme points and the closing price is
somewhere in between. A profitable trading strategy can
be developed out of this.
But how can you know where the high and the low
will be tomorrow? Is it possible for you to know this in
advance? No – because no one can predict the future. Or
can they? At least it can be statistically determined how
high or low prices could go tomorrow. There is a high
degree of probability that one of the two possibilities
will materialise. It will then be necessary to act.
Calculation
Classic pivot points for the following day are calculated
from the high, low and closing price. But does it really
make sense to use such a mix? I don’t think so and
use a different calculation for this strategy. In a first step,
only the differences between the start and the high or low
are calculated on a daily basis. To avoid being dependent
on individual days and outliers, it is advisable to calculate,
in a second step, the average of these differences over
the past five days. Finally, this average will then be added
at the opening price of the current trading day for the
upper statistical bandwidth and subtracted for the lower
bandwidth.
upper bandwidth = oSTB (violet dashed line in the chart)
lower bandwidth = uSTB (violet dashedline in the chart)
The second interesting question is, if the previous day's high has been exceeded, how much further can the price rise from a mathematical/statistical point of view?
These calculated previous day highs expansions are shown as red dashed lines
Previous day's high expansion = VTHA
Previous day's low expansion = VTTA
For further orientation, the previous day's high (VTH) and the previous day's low (VTT) are shown in light blue dashed lines
And as a supplement, the previous day's close in the DAX Future at 10:00 p.m. VTSA in violet solid lines and the previous day's close in the cash register at 5:30 p.m. VTSN in yellow solid lines
Reaching the calculated extreme values does not mean that the trend has to change immediately, but there is at least temporary exhaustion potential with which you can earn a few points every day in the area of scalping.
Example for cheap entry long:
Example for cheap entry short:
Deutsch:
Die Masse der Trader beschäftigt sich ausschließlich mit Trendfolge in all ihren Facetten. Mit Trends regelmäßig zu punkten ist ein schwieriges Unterfangen, da die Kurse nicht ständig in die eine oder andere Richtung laufen. Beim DAX-Future zum Beispiel sind von allen Börsentagen im Jahr lediglich zirka 30 Prozent Trendtage. Davon sind dann auch noch x Prozent Long und x Prozent Short. Hier genau die Tage abzupassen, an denen die Kurse von Börsenbeginn bis zum Schluss steigen beziehungsweise fallen, ist eine große Herausforderung – wobei der Trader zuvor noch die entsprechende Richtung erkannt haben muss. Es gibt jedoch auch noch andere Methoden täglich Gewinne mitzunehmen, zum Beispiel mit der Mean-Reversion-Strategie (Mittelwertumkehr).
Hintergrund ist die Tatsache, dass die Kurse jeden Tag ein Hoch und ein Tief erreichen – aber sehr selten am Hoch oder am Tief schließen. Das bedeutet, dass die Preise sich immer wie der von diesen Extrempunkten wegbewegen und der Schlusskurs irgendwo dazwischen liegt. Hieraus lässt sich eine profitable Handelsstrategie entwickeln. Aber woher kannst Du wissen, wo morgen das Hoch und das Tief sein wird? Kannst Du das vorher schon wissen? Nein – denn niemand kann die Zukunft vorhersagen. Oder doch? Statistisch lässt sich zumindest bestimmen, wie hoch und wie tief die Kurse morgen steigen oder fallen könnten. Eine Seite wird mit sehr hoher Wahrscheinlichkeit ein treffen. Dann gilt es zu handeln.
Berechnung Klassischer Pivot-Punkte für den folgenden Tag werden aus Hoch, Tief und Schlusskurs berechnet. Aber ist es wirklich sinnvoll, einen solchen Mix zu verwenden? Ich finde das nicht und verwenden für diese Strategie eine andere Berechnung. Im ersten Schritt werden täglich die Differenzen nur vom Start bis zum Hoch beziehungsweise Tief errechnet. Um nicht von einzelnen Tagen und Ausreißern abhängig zu sein, empfiehlt es sich, in einem zweiten Schritt den Durchschnitt dieser Differenzen über die letzten fünf Tage zu errechnen. Zuletzt wird dann dieser Durchschnitt zum Eröffnungskurs des aktuellen Handelstages für die obere statistische Bandbreite addiert und für die untere Bandbreite subtrahiert.
Obere statistische Bandbreite = oSTB (violette gestrichelte Linie im Chart)
Untere statistische Bandbreite = uSTB (violette gestrichelte Linie im Chart)
Die zweite interessante Frage ist, wenn das Vortageshoch überschritten wurde, wie weit kann der Kurs dann noch steigen aus mathematisch/statistischer Sicht?
Diese berechneten Vortagesextremausdehnungen sind als rote gestrichelte Linien dargestellt
Vortageshochausdehnung = VTHA
Vortagestiefausdehnung = VTTA
Für die weitere Orientierung sind die Vortageshochs (VTH) und die Vortagestiefs (VTT) als hellblaue gestrichelte Linien abgebildet.
Als Ergänzung wird noch der Vortages Schluss im Dax Future um 22:00 Uhr VTSA mit einer violetten durchgezogenen Linie und der Kassamarktschluss um 17:30 Uhr mit einer gelben durchgezogenen Linie gezeigt.
Das Erreichen der berechneten Extremwerte bedeutet nicht, das der Trend sofort drehen muss, aber es sind zumindest temporäre Erschöpfungspotentiale mit denen sich im Bereich scalping täglich einige Punkte verdienen lassen.
Beispiel für günstigen Einstieg Long:
Beispiel für günstigen Einstieg Short:
Dynamic Darvas BoxBu Darvas Box göstergesi, finansal piyasadaki potansiyel fiyat kırılımlarını hacimle birlikte analiz eden dinamik bir sistem sunar. Geliştirdiğiniz bu Pine Script, belirli bir "bakış aralığı" parametresi kullanarak geçmiş fiyat hareketlerinden yüksek ve düşük noktalar oluşturur ve bu seviyelerin kırılımını takip eder. Hacimli veya hacimsiz kırılımlar da ayrıca işaretlenir. Aşağıda hem Türkçe hem de İngilizce açıklamalar yer almakta:
Türkçe Açıklama:
Darvas Kutusu ve Hacim Kırılımı
Bu gösterge, fiyatların Darvas Kutusu mantığıyla analiz edilmesini sağlar ve kutunun kırılım seviyelerini hacimle birlikte değerlendirir.
Bakış Aralığı (bakis_araligi): Bu parametre, fiyatın geçmişte kaç bar geri giderek yeni bir yüksek veya düşük seviyenin tespit edilmesi gerektiğini belirler.
Hacim SMA (hacim_sma): Hacim için kullanılan basit hareketli ortalamanın (SMA) uzunluğunu belirler. Gösterge, hacim ortalamasının üzerinde veya altında olup olmadığını bu SMA değerine göre değerlendirir.
Kapanış Fiyatı ile Tamamlama (kapanis_kullan): Eğer bu seçenek aktifse, kutu kapanış fiyatı baz alınarak tamamlanır. Aksi takdirde, yüksek ve düşük seviyelerle tamamlanır.
Kırılım Fiyatını Göster (kirilim_goster): Hacim yetersiz olsa bile kırılım seviyesini etiketlemek için kullanılır.
Bu göstergede, yüksek bir fiyatın oluşması durumunda bir kutu başlatılır. Kutu, bakış aralığı boyunca yüksek ve düşük seviyeler ile onaylanır. Sonrasında, fiyatın kutu seviyesini kırıp kırmadığı izlenir. Eğer fiyat kutunun üzerine çıkarsa veya altına düşerse, hacim durumu kontrol edilerek bir "Hacimli Kırılım" veya "Hacimsiz Kırılım" etiketi gösterilir.
Kutu Arka Plan Renkleri: Kutu içerisindeki fiyat hareketinin durumu, renklerle gösterilir:
Yukarı Kırılım: Kutunun üst seviyesinin kırılması durumunda yeşil renk.
Aşağı Kırılım: Kutunun alt seviyesinin kırılması durumunda kırmızı renk.
Nötr: Kutu içinde tarafsız durum için sarı renk.
Ayrıca, kutunun orta hattı (orta_hat), yüksek ve düşük seviyelerin ortalamasını temsil eder ve fiyatın bu çizgiyi kaç kez kestiğini analiz etmek için kullanılabilir.
English Description:
Darvas Box and Volume Breakout
This indicator implements a dynamic Darvas Box strategy that tracks potential price breakouts in combination with volume analysis.
Lookback Period (bakis_araligi): This parameter defines how many bars back the price needs to look for determining a new high or low.
Volume SMA (hacim_sma): Specifies the length of the Simple Moving Average (SMA) for volume. The indicator uses this value to determine if volume is above or below average.
Completion with Closing Price (kapanis_kullan): If this option is enabled, the box is completed based on the closing price. Otherwise, the high and low prices are used for completion.
Show Breakout Price (kirilim_goster): This option is used to label the breakout price, even if the volume is below the average.
The indicator starts a box when a new high price is detected. The box is confirmed over the lookback period using high and low levels. The breakout levels are then monitored. If the price breaks above the upper or lower box boundary, it checks the volume condition and labels the breakout as either "Volume Breakout" or "Non-Volume Breakout."
Box Background Colors: The price movement within the box is represented with colors:
Upward Breakout: The background is green if the upper box boundary is broken.
Downward Breakout: The background is red if the lower boundary is broken.
Neutral: The background is yellow for neutral price movement within the box.
Additionally, the middle line (orta_hat) represents the average of the high and low levels and can be used to analyze how many times the price crosses this midline.
China's stock market Limit up / Limit downThe price limit system in China’s stock market is a regulatory measure implemented by the Chinese securities authorities to curb excessive speculation. It refers to the maximum allowable daily price fluctuation of a stock, which cannot exceed a certain percentage of the previous trading day's closing price. For regular stocks, the daily price movement limit is 10%. For stocks under special treatment (ST stocks), the maximum daily price movement is restricted to 5%. There is no price limit on the listing day of newly issued stocks or stocks undergoing a rights issue. This indicator highlights the K-lines (candlesticks) of stocks that have hit the upper or lower price limits with different background colors and lists the recent number of instances of limit-up and limit-down occurrences in a table format.
Swiss Knife [MERT]Introduction
The Swiss Knife indicator is a comprehensive trading tool designed to provide a multi-dimensional analysis of the market. By integrating a wide array of technical indicators across multiple timeframes, it offers traders a holistic view of market sentiment, momentum, and potential reversal points. This indicator is particularly useful for traders looking to combine trend analysis, momentum indicators, volume data, and price action into a single, easy-to-read format.
---
Key Features
Multi-Timeframe Analysis : Evaluates indicators on Daily , 4-Hour , 1-Hour , and 15-Minute timeframes.
Comprehensive Indicator Suite : Incorporates MACD , Awesome Oscillator (AO) , Parabolic SAR , SuperTrend , DPO , RSI , Stochastic Oscillator , Bollinger Bands , Ichimoku Cloud , Chande Momentum Oscillator (CMO) , Donchian Channels , ADX , volume-based momentum indicators, Fractals , and divergence detection.
Market Sentiment Scoring : Aggregates signals from multiple indicators to provide an overall sentiment score.
Visual Aids : Displays EMA lines, trendlines, divergence signals, and a sentiment table directly on the chart.
Super Trend Reversal Signals : Identifies potential market reversal points by assessing the momentum of automated trading bots.
---
Explanation of Each Indicator
Moving Average Convergence Divergence (MACD)
- Purpose : Measures the relationship between two moving averages of price.
- Interpretation : A positive histogram suggests bullish momentum; a negative histogram indicates bearish momentum.
Awesome Oscillator (AO)
- Purpose : Gauges market momentum by comparing recent market movements to historic ones.
- Interpretation : Above zero indicates bullish momentum; below zero indicates bearish momentum.
Parabolic SAR (SAR)
- Purpose : Identifies potential reversal points in price direction.
- Interpretation : Dots below price suggest an uptrend; dots above price suggest a downtrend.
SuperTrend
- Purpose : Determines the prevailing market trend.
- Interpretation : Provides buy or sell signals based on price movements relative to the SuperTrend line.
Detrended Price Oscillator (DPO)
- Purpose : Removes trend from price to identify cycles.
- Interpretation : Values above zero suggest price is above the moving average; values below zero indicate it is below.
Relative Strength Index (RSI)
- Purpose : Measures the speed and change of price movements.
- Interpretation : Values above 50 indicate bullish momentum; values below 50 indicate bearish momentum.
Stochastic Oscillator
- Purpose : Compares a particular closing price to a range of its prices over a certain period.
- Interpretation : Values above 50 indicate bullish conditions; values below 50 indicate bearish conditions.
Bollinger Bands (BB)
- Purpose : Measures market volatility and provides relative price levels.
- Interpretation : Price above the middle band suggests bullishness; below the middle band suggests bearishness.
Ichimoku Cloud
- Purpose : Provides support and resistance levels, trend direction, and momentum.
- Interpretation : Bullish signals when price is above the cloud; bearish signals when price is below the cloud.
Chande Momentum Oscillator (CMO)
- Purpose : Measures momentum on both up and down days.
- Interpretation : Values above 50 indicate strong upward momentum; values below -50 indicate strong downward momentum.
Donchian Channels
- Purpose : Identifies volatility and potential breakouts.
- Interpretation : Price above the upper band suggests bullish breakout; below the lower band suggests bearish breakout.
Average Directional Index (ADX)
- Purpose : Measures the strength of a trend.
- Interpretation : DI+ above DI- indicates bullish trend; DI- above DI+ indicates bearish trend.
Volume Momentum Indicators (VolMom, CumVolMom, POCMom)
- Purpose : Analyze volume to assess buying and selling pressure.
- Interpretation : Positive values suggest bullish volume momentum; negative values indicate bearish volume momentum.
Fractals
- Purpose : Identify potential reversal points in the market.
- Interpretation : Up fractals may indicate a future downtrend; down fractals may indicate a future uptrend.
Divergence Detection
- Purpose : Identifies divergences between price and various indicators (RSI, MACD, Stochastic, OBV, MFI, A/D Line).
- Interpretation : Bullish divergences suggest potential upward reversal; bearish divergences suggest potential downward reversal.
- Note : This functionality utilizes the library from Divergence Indicator .
---
Coloring Scheme
Background Color
- Purpose : Reflects the overall market sentiment by combining sentiment scores from all indicators across different timeframes.
- Interpretation :
- Green Shades : Indicate bullish market sentiment.
- Red Shades : Indicate bearish market sentiment.
- Intensity : The strength of the color corresponds to the strength of the sentiment score.
Sentiment Table
- Purpose : Displays the status of each indicator across different timeframes.
- Interpretation :
- Green Cell : The indicator suggests a bullish signal.
- Red Cell : The indicator suggests a bearish signal.
- Percentage Score : Indicates the overall bullish or bearish sentiment on that timeframe.
Exponential Moving Averages (EMAs)
- Purpose : Provide dynamic support and resistance levels.
- Colors :
- EMA 10 : Lime
- EMA 20 : Yellow
- EMA 50 : Orange
- EMA 100 : Red
- EMA 200 : Purple
Trendlines
- Purpose : Visual representation of support and resistance levels based on pivot points.
- Interpretation :
- Upward Trendlines : Colored green , indicating support levels.
- Downward Trendlines : Colored red , indicating resistance levels.
- Note : Trendlines are drawn using the library from Simple Trendlines .
---
Utility of Market Sentiment
The indicator aggregates signals from multiple technical indicators across various timeframes to compute an overall market sentiment score . This comprehensive approach helps traders understand the prevailing market conditions by:
Confirming Trends : Multiple indicators pointing in the same direction can confirm the strength of a trend.
Identifying Reversals : Divergences and fractals can signal potential turning points.
Timeframe Alignment : Aligning signals across different timeframes can enhance the probability of successful trades.
---
Divergences
Divergence occurs when the price of an asset moves in the opposite direction of a technical indicator, suggesting a potential reversal.
- Bullish Divergence : Price makes a lower low, but the indicator makes a higher low.
- Bearish Divergence : Price makes a higher high, but the indicator makes a lower high.
The indicator detects divergences for:
RSI
MACD
Stochastic Oscillator
On-Balance Volume (OBV)
Money Flow Index (MFI)
Accumulation/Distribution Line (A/D Line)
By identifying these divergences, traders can spot early signs of trend reversals and adjust their strategies accordingly.
---
Trendlines
Trendlines are essential tools for identifying support and resistance levels. The indicator automatically draws trendlines based on pivot points:
- Upward Trendlines (Support) : Connect higher lows, indicating an uptrend.
- Downward Trendlines (Resistance) : Connect lower highs, indicating a downtrend.
These trendlines help traders visualize the trend direction and potential breakout or reversal points.
---
Super Trend Reversals (ST Reversal)
The core idea behind the Super Trend Reversals indicator is to assess the momentum of automated trading bots (often referred to as 'Supertrend bots') that enter the market during critical turning points. Specifically, the indicator is tuned to identify when the market is nearing bottoms or peaks, just before it shifts direction based on the triggered Supertrend signals. This approach helps traders:
Engage Early : Enter the market as reversal momentum builds up.
Optimize Entries and Exits : Enter under favorable conditions and exit before momentum wanes.
By capturing these reversal points, traders can enhance their trading performance.
---
Conclusion
The Swiss Knife indicator serves as a versatile tool that combines multiple technical analysis methods into a single, comprehensive indicator. By assessing various aspects of the market—including trend direction, momentum, volume, and price action—it provides traders with valuable insights to make informed trading decisions.
---
Citations
- Divergence Detection Library : Divergence Indicator by DevLucem
- Trendline Drawing Library : Simple Trendlines by HoanGhetti
---
Note : This indicator is intended for informational purposes and should be used in conjunction with other analysis techniques. Always perform due diligence before making trading decisions.
---
Momentum with ATR and Volatility [ST]Momentum with ATR and Volatility
Description in English:
This indicator combines price momentum with market volatility to identify entry and exit points in trades.
It utilizes the difference in closing prices (momentum) and the Average True Range (ATR) to measure volatility. Buy and sell signals are generated based on the combination of these two components.
Detailed Explanation:
Configuration:
Momentum Length: This input defines the period for calculating the momentum, which is the difference between the closing prices. The default value is 10.
ATR Length: This input defines the period for calculating the Average True Range (ATR), which measures market volatility. The default value is 14.
ATR Threshold: This input defines the threshold multiplier for the ATR to generate buy and sell signals. The default value is 3.5.
Momentum Calculation:
Momentum is calculated as the difference between the current closing price and the closing price momentum_length periods ago.
ATR Calculation:
The ATR is calculated based on the specified length and is used to measure market volatility.
Buy and Sell Signals:
Buy Signal: Generated when momentum is positive, the current close is higher than the previous close, and momentum is greater than ATR * threshold.
Sell Signal: Generated when momentum is negative, the current close is lower than the previous close, and momentum is less than -ATR * threshold.
Plotting:
Buy signals are plotted as green triangles below the bars.
Sell signals are plotted as red triangles above the bars.
Momentum and ATR thresholds are plotted in a separate panel below the main chart.
Momentum is plotted as a blue line.
The ATR threshold lines are plotted as solid orange lines.
Indicator Benefits:
Momentum Measurement: Helps traders gauge the momentum of price movements.
Volatility Measurement: Utilizes ATR to measure market volatility, providing a more comprehensive analysis.
Visual Cues: Provides clear visual signals for buy and sell points, aiding in making informed trading decisions.
Justification of Component Combination:
Combining momentum with ATR provides a more robust measure of potential entry and exit points by considering both price movement and market volatility.
How Components Work Together:
The script calculates momentum and ATR for the specified periods.
It generates buy and sell signals based on the conditions of momentum and ATR.
The signals and values are plotted on the chart to provide a visual representation, helping traders identify potential trading opportunities.
Título: Indicador de Momentum com ATR e Volatilidade
Descrição em Português:
Este indicador combina o momentum do preço com a volatilidade do mercado para identificar pontos de entrada e saída em operações.
Utiliza a diferença entre os preços de fechamento (momentum) e o Average True Range (ATR) para medir a volatilidade. Sinais de compra e venda são gerados com base na combinação desses dois componentes.
Explicação Detalhada:
Configuração:
Comprimento do Momentum: Este parâmetro define o período para calcular o momentum, que é a diferença entre os preços de fechamento. O valor padrão é 10.
Comprimento do ATR: Este parâmetro define o período para calcular o Average True Range (ATR), que mede a volatilidade do mercado. O valor padrão é 14.
Limite do ATR: Este parâmetro define o multiplicador de limite para o ATR para gerar sinais de compra e venda. O valor padrão é 3.5.
Cálculo do Momentum:
O momentum é calculado como a diferença entre o preço de fechamento atual e o preço de fechamento momentum_length períodos atrás.
Cálculo do ATR:
O ATR é calculado com base no comprimento especificado e é usado para medir a volatilidade do mercado.
Sinais de Compra e Venda:
Sinal de Compra: Gerado quando o momentum é positivo, o fechamento atual é maior que o fechamento anterior, e o momentum é maior que ATR * threshold.
Sinal de Venda: Gerado quando o momentum é negativo, o fechamento atual é menor que o fechamento anterior, e o momentum é menor que -ATR * threshold.
Plotagem:
Sinais de compra são plotados como triângulos verdes abaixo das barras.
Sinais de venda são plotados como triângulos vermelhos acima das barras.
O momentum e os limites do ATR são plotados em um painel separado abaixo do gráfico principal.
O momentum é plotado como uma linha azul.
As linhas de limite do ATR são plotadas como linhas laranjas sólidas.
Benefícios do Indicador:
Medição do Momentum: Ajuda os traders a avaliar o momentum dos movimentos de preços.
Medição da Volatilidade: Utiliza o ATR para medir a volatilidade do mercado, proporcionando uma análise mais abrangente.
Sinais Visuais: Fornece sinais visuais claros para pontos de compra e venda, auxiliando na tomada de decisões informadas.
Justificação da Combinação de Componentes:
Combinar o momentum com o ATR fornece uma medida mais robusta de potenciais pontos de entrada e saída ao considerar tanto o movimento dos preços quanto a volatilidade do mercado.
Como os Componentes Funcionam Juntos:
O script calcula o momentum e o ATR para os períodos especificados.
Gera sinais de compra e venda com base nas condições de momentum e ATR.
Os sinais e valores são plotados no gráfico para fornecer uma representação visual, ajudando os traders a identificar oportunidades de negociação potenciais.