fix pines
This commit is contained in:
parent
bae87ad380
commit
5ef4bad84c
@ -1,7 +1,7 @@
|
|||||||
//@version=4
|
//@version=5
|
||||||
study("DrNiki's Market Nuker", shorttitle="DrNiki's Market Nuker", overlay=true)
|
indicator("DrNiki's Market Nuker", shorttitle="DrNiki's Market Nuker", overlay=true)
|
||||||
|
|
||||||
// Input for Indicators
|
// [Input for Indicators]
|
||||||
rsiLength = input(14, title="RSI Length")
|
rsiLength = input(14, title="RSI Length")
|
||||||
stochRsiLength = input(14, title="Stochastic RSI Length")
|
stochRsiLength = input(14, title="Stochastic RSI Length")
|
||||||
n1 = input(10, title="WT Channel Length")
|
n1 = input(10, title="WT Channel Length")
|
||||||
@ -9,16 +9,29 @@ n2 = input(21, title="WT Average Length")
|
|||||||
|
|
||||||
// Wavetrend Indicator Calculation
|
// Wavetrend Indicator Calculation
|
||||||
ap = hlc3
|
ap = hlc3
|
||||||
esa = ema(ap, n1)
|
esa = ta.ema(ap, n1)
|
||||||
d = ema(abs(ap - esa), n1)
|
d = ta.ema(math.abs(ap - esa), n1)
|
||||||
ci = (ap - esa) / (0.015 * d)
|
ci = (ap - esa) / (0.015 * d)
|
||||||
tci = ema(ci, n2)
|
tci = ta.ema(ci, n2)
|
||||||
|
|
||||||
wt1 = tci
|
wt1 = tci
|
||||||
wt2 = sma(wt1, 4)
|
wt2 = ta.sma(wt1, 4)
|
||||||
|
|
||||||
|
// Custom implementation of On Balance Volume (OBV)
|
||||||
|
var float obv = na
|
||||||
|
obv := close > close[1] ? obv + volume : close < close[1] ? obv - volume : obv
|
||||||
|
|
||||||
|
// Money Flow Index (MFI)
|
||||||
|
mfiLength = input(7, title="MFI Length")
|
||||||
|
mfiValue = ta.mfi(close, mfiLength)
|
||||||
|
|
||||||
|
|
||||||
// RSI and Stochastic RSI Calculation
|
// RSI and Stochastic RSI Calculation
|
||||||
rsiValue = rsi(close, rsiLength)
|
rsiValue = ta.rsi(close, rsiLength)
|
||||||
stochRsiValue = stoch(rsiValue, rsiValue, rsiValue, stochRsiLength)
|
stochRsiValue = ta.stoch(rsiValue, rsiValue, rsiValue, stochRsiLength)
|
||||||
|
|
||||||
|
|
||||||
|
// [Function to calculate points for a given indicator and pair]
|
||||||
|
|
||||||
// Function to calculate points for a given indicator and pair
|
// Function to calculate points for a given indicator and pair
|
||||||
calcPoints(currentValue, previousValue, isInverse) =>
|
calcPoints(currentValue, previousValue, isInverse) =>
|
||||||
@ -38,6 +51,7 @@ longPoints(pair, isInverse) =>
|
|||||||
|
|
||||||
shortPoints(pair, isInverse) => -longPoints(pair, isInverse)
|
shortPoints(pair, isInverse) => -longPoints(pair, isInverse)
|
||||||
|
|
||||||
|
|
||||||
// Hardcoded pairs and their corresponding inverse flags
|
// Hardcoded pairs and their corresponding inverse flags
|
||||||
pairs = array.new_string(5)
|
pairs = array.new_string(5)
|
||||||
array.set(pairs, 0, "US30")
|
array.set(pairs, 0, "US30")
|
||||||
@ -54,18 +68,22 @@ var float totalLongPoints = 0
|
|||||||
var float totalShortPoints = 0
|
var float totalShortPoints = 0
|
||||||
|
|
||||||
// Calculate points for each pair
|
// Calculate points for each pair
|
||||||
|
longPointsArray = array.new_float(5)
|
||||||
|
shortPointsArray = array.new_float(5)
|
||||||
for i = 0 to 4
|
for i = 0 to 4
|
||||||
pair = array.get(pairs, i)
|
pair = array.get(pairs, i)
|
||||||
inverseFlag = array.get(isInverse, i)
|
inverseFlag = array.get(isInverse, i)
|
||||||
totalLongPoints := totalLongPoints + longPoints(pair, inverseFlag)
|
array.set(longPointsArray, i, longPoints(pair, inverseFlag))
|
||||||
totalShortPoints := totalShortPoints + shortPoints(pair, inverseFlag)
|
array.set(shortPointsArray, i, shortPoints(pair, inverseFlag))
|
||||||
|
|
||||||
|
// Update total points
|
||||||
|
for i = 0 to 4
|
||||||
|
totalLongPoints := totalLongPoints + array.get(longPointsArray, i)
|
||||||
|
totalShortPoints := totalShortPoints + array.get(shortPointsArray, i)
|
||||||
|
|
||||||
// Display the results
|
// Display the results
|
||||||
plot(totalLongPoints, title="Total Long Points", color=color.blue)
|
plot(totalLongPoints, title="Total Long Points", color=color.blue)
|
||||||
plot(totalShortPoints, title="Total Short Points", color=color.orange)
|
plot(totalShortPoints, title="Total Short Points", color=color.orange)
|
||||||
|
|
||||||
// BUYING VOLUME AND SELLING VOLUME
|
|
||||||
buyVolume = high == low ? 0 : volume * (close - low) / (high - low)
|
// Display
|
||||||
sellVolume = high == low ? 0 : volume * (high - close) / (high - low)
|
|
||||||
plot(volume, style=plot.style_columns, color=color.red, title="SELL V") // shows total volume
|
|
||||||
plot(buyVolume, style=plot.style_columns, color=color.teal, title="BUY V") // shows only buy volume
|
|
@ -26,13 +26,13 @@ tci = ta.ema(ci, n2)
|
|||||||
wt1 = tci
|
wt1 = tci
|
||||||
wt2 = ta.sma(wt1, 4)
|
wt2 = ta.sma(wt1, 4)
|
||||||
|
|
||||||
//calculate obv
|
// Custom implementation of On Balance Volume (OBV)
|
||||||
obv = ta.obv(close, volume)
|
var float obv = na
|
||||||
//15:38:24 Error at 30:7 Could not find function or function reference 'ta.obv'
|
obv := close > close[1] ? obv + volume : close < close[1] ? obv - volume : obv
|
||||||
|
|
||||||
//calculate mfi
|
|
||||||
mfi = ta.mfi(high, low, close, volume)
|
|
||||||
|
|
||||||
|
// Money Flow Index (MFI)
|
||||||
|
mfiLength = input(7, title="MFI Length")
|
||||||
|
mfiValue = ta.mfi(close, mfiLength)
|
||||||
|
|
||||||
// Initialize points for BTCUSDT.P
|
// Initialize points for BTCUSDT.P
|
||||||
longPointsRSIBTC = close > close[1] ? 1 : 0
|
longPointsRSIBTC = close > close[1] ? 1 : 0
|
||||||
@ -41,14 +41,22 @@ longPointsStochRSIBTC = stochRsiValue > stochRsiValue[1] ? 1 : 0
|
|||||||
shortPointsStochRSIBTC = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
shortPointsStochRSIBTC = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
||||||
longPointsWavetrendBTC = wt1 > wt1[1] ? 1 : 0
|
longPointsWavetrendBTC = wt1 > wt1[1] ? 1 : 0
|
||||||
shortPointsWavetrendBTC = wt1 < wt1[1] ? 1 : 0
|
shortPointsWavetrendBTC = wt1 < wt1[1] ? 1 : 0
|
||||||
|
longPointsOBVBTC = obv > obv[1] ? 1 : 0
|
||||||
|
shortPointsOBVBTC = obv < obv[1] ? 1 : 0
|
||||||
|
longPointsMFIBTC = mfiValue > 50 ? 1 : 0
|
||||||
|
shortPointsMFIBTC = mfiValue < 50 ? 1 : 0
|
||||||
|
|
||||||
// Initialize points for DXY
|
// Initialize points for DXY
|
||||||
longPointsRSIDXY = close > close[1] ? 1 : 0
|
longPointsRSIDXY = close > close[1] ? 0 : 1
|
||||||
shortPointsRSIDXY = close < close[1] ? 1 : 0
|
shortPointsRSIDXY = close < close[1] ? 0 : 1
|
||||||
longPointsStochRSIDXY = stochRsiValue > stochRsiValue[1] ? 1 : 0
|
longPointsStochRSIDXY = stochRsiValue > stochRsiValue[1] ? 0 : 1
|
||||||
shortPointsStochRSIDXY = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
shortPointsStochRSIDXY = stochRsiValue < stochRsiValue[1] ? 0 : 1
|
||||||
longPointsWavetrendDXY = wt1 < wt1[1] ? 1 : 0 // Inversed for DXY
|
longPointsWavetrendDXY = wt1 < wt1[1] ? 0 : 1
|
||||||
shortPointsWavetrendDXY = wt1 > wt1[1] ? 1 : 0 // Inversed for DXY
|
shortPointsWavetrendDXY = wt1 > wt1[1] ? 0 : 1
|
||||||
|
longPointsOBVDXY = obv > obv[1] ? 0 : 1
|
||||||
|
shortPointsOBVDXY = obv < obv[1] ? 0 : 1
|
||||||
|
longPointsMFIDXY = mfiValue > 50 ? 0 : 1
|
||||||
|
shortPointsMFIDXY = mfiValue < 50 ? 0 : 1
|
||||||
|
|
||||||
// Initialize points for GOLD
|
// Initialize points for GOLD
|
||||||
longPointsRSIGOLD = close > close[1] ? 1 : 0
|
longPointsRSIGOLD = close > close[1] ? 1 : 0
|
||||||
@ -57,6 +65,11 @@ longPointsStochRSIGOLD = stochRsiValue > stochRsiValue[1] ? 1 : 0
|
|||||||
shortPointsStochRSIGOLD = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
shortPointsStochRSIGOLD = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
||||||
longPointsWavetrendGOLD = wt1 > wt1[1] ? 1 : 0
|
longPointsWavetrendGOLD = wt1 > wt1[1] ? 1 : 0
|
||||||
shortPointsWavetrendGOLD = wt1 < wt1[1] ? 1 : 0
|
shortPointsWavetrendGOLD = wt1 < wt1[1] ? 1 : 0
|
||||||
|
longPointsOBVGOLD = obv > obv[1] ? 1 : 0
|
||||||
|
shortPointsOBVGOLD = obv < obv[1] ? 1 : 0
|
||||||
|
longPointsMFIGOLD = mfiValue > 50 ? 1 : 0
|
||||||
|
shortPointsMFIGOLD = mfiValue < 50 ? 1 : 0
|
||||||
|
|
||||||
|
|
||||||
// Initialize points for US30
|
// Initialize points for US30
|
||||||
longPointsRSIUS30 = close > close[1] ? 1 : 0
|
longPointsRSIUS30 = close > close[1] ? 1 : 0
|
||||||
@ -65,6 +78,10 @@ longPointsStochRSIUS30 = stochRsiValue > stochRsiValue[1] ? 1 : 0
|
|||||||
shortPointsStochRSIUS30 = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
shortPointsStochRSIUS30 = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
||||||
longPointsWavetrendUS30 = wt1 > wt1[1] ? 1 : 0
|
longPointsWavetrendUS30 = wt1 > wt1[1] ? 1 : 0
|
||||||
shortPointsWavetrendUS30 = wt1 < wt1[1] ? 1 : 0
|
shortPointsWavetrendUS30 = wt1 < wt1[1] ? 1 : 0
|
||||||
|
longPointsOBVUS30 = obv > obv[1] ? 1 : 0
|
||||||
|
shortPointsOBVUS30 = obv < obv[1] ? 1 : 0
|
||||||
|
longPointsMFIUS30 = mfiValue > 50 ? 1 : 0
|
||||||
|
shortPointsMFIUS30 = mfiValue < 50 ? 1 : 0
|
||||||
|
|
||||||
// Initialize points for the current trading pair (syminfo.ticker)
|
// Initialize points for the current trading pair (syminfo.ticker)
|
||||||
longPointsRSIPAIR = close > close[1] ? 1 : 0
|
longPointsRSIPAIR = close > close[1] ? 1 : 0
|
||||||
@ -73,10 +90,10 @@ longPointsStochRSIPAIR = stochRsiValue > stochRsiValue[1] ? 1 : 0
|
|||||||
shortPointsStochRSIPAIR = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
shortPointsStochRSIPAIR = stochRsiValue < stochRsiValue[1] ? 1 : 0
|
||||||
longPointsWavetrendPAIR = wt1 > wt1[1] ? 1 : 0
|
longPointsWavetrendPAIR = wt1 > wt1[1] ? 1 : 0
|
||||||
shortPointsWavetrendPAIR = wt1 < wt1[1] ? 1 : 0
|
shortPointsWavetrendPAIR = wt1 < wt1[1] ? 1 : 0
|
||||||
|
longPointsOBVPAIR = obv > obv[1] ? 1 : 0
|
||||||
// Adjust the total points calculation for DXY
|
shortPointsOBVPAIR = obv < obv[1] ? 1 : 0
|
||||||
totalLongPointsDXY = longPointsRSIDXY + longPointsStochRSIDXY + shortPointsWavetrendDXY
|
longPointsMFIPAIR = mfiValue > 50 ? 1 : 0
|
||||||
totalShortPointsDXY = shortPointsRSIDXY + shortPointsStochRSIDXY + longPointsWavetrendDXY
|
shortPointsMFIPAIR = mfiValue < 50 ? 1 : 0
|
||||||
|
|
||||||
// Calculate total points for each symbol
|
// Calculate total points for each symbol
|
||||||
totalLongPointsBTC = longPointsRSIBTC + longPointsStochRSIBTC + longPointsWavetrendBTC
|
totalLongPointsBTC = longPointsRSIBTC + longPointsStochRSIBTC + longPointsWavetrendBTC
|
||||||
@ -85,6 +102,9 @@ totalShortPointsBTC = shortPointsRSIBTC + shortPointsStochRSIBTC + shortPointsWa
|
|||||||
totalLongPointsGOLD = longPointsRSIGOLD + longPointsStochRSIGOLD + longPointsWavetrendGOLD
|
totalLongPointsGOLD = longPointsRSIGOLD + longPointsStochRSIGOLD + longPointsWavetrendGOLD
|
||||||
totalShortPointsGOLD = shortPointsRSIGOLD + shortPointsStochRSIGOLD + shortPointsWavetrendGOLD
|
totalShortPointsGOLD = shortPointsRSIGOLD + shortPointsStochRSIGOLD + shortPointsWavetrendGOLD
|
||||||
|
|
||||||
|
totalLongPointsDXY = longPointsRSIDXY + longPointsStochRSIDXY + longPointsWavetrendDXY
|
||||||
|
totalShortPointsDXY = shortPointsRSIDXY + shortPointsStochRSIDXY + shortPointsWavetrendDXY
|
||||||
|
|
||||||
totalLongPointsUS30 = longPointsRSIUS30 + longPointsStochRSIUS30 + longPointsWavetrendUS30
|
totalLongPointsUS30 = longPointsRSIUS30 + longPointsStochRSIUS30 + longPointsWavetrendUS30
|
||||||
totalShortPointsUS30 = shortPointsRSIUS30 + shortPointsStochRSIUS30 + shortPointsWavetrendUS30
|
totalShortPointsUS30 = shortPointsRSIUS30 + shortPointsStochRSIUS30 + shortPointsWavetrendUS30
|
||||||
|
|
||||||
@ -121,3 +141,4 @@ label.set_xy(labelBox, bar_index, high)
|
|||||||
label.set_text(labelBox, "Long: BTC " + str.tostring(combinedProbabilityLongBTC) + "%, DXY " + str.tostring(combinedProbabilityLongDXY) + "%, GOLD " + str.tostring(combinedProbabilityLongGOLD) + "%, US30 " + str.tostring(combinedProbabilityLongUS30) + "%, syminfo.ticker " + str.tostring(combinedProbabilityLongPAIR) + "%\nShort: BTC " + str.tostring(combinedProbabilityShortBTC) + "%, DXY " + str.tostring(combinedProbabilityShortDXY) + "%, GOLD " + str.tostring(combinedProbabilityShortGOLD) + "%, US30 " + str.tostring(combinedProbabilityShortUS30) + "%, syminfo.ticker " + str.tostring(combinedProbabilityShortPAIR) + "%\n\nTotal: Long " + str.tostring(combinedProbabilityLong) + "%, Short " + str.tostring(combinedProbabilityShort) + "%")
|
label.set_text(labelBox, "Long: BTC " + str.tostring(combinedProbabilityLongBTC) + "%, DXY " + str.tostring(combinedProbabilityLongDXY) + "%, GOLD " + str.tostring(combinedProbabilityLongGOLD) + "%, US30 " + str.tostring(combinedProbabilityLongUS30) + "%, syminfo.ticker " + str.tostring(combinedProbabilityLongPAIR) + "%\nShort: BTC " + str.tostring(combinedProbabilityShortBTC) + "%, DXY " + str.tostring(combinedProbabilityShortDXY) + "%, GOLD " + str.tostring(combinedProbabilityShortGOLD) + "%, US30 " + str.tostring(combinedProbabilityShortUS30) + "%, syminfo.ticker " + str.tostring(combinedProbabilityShortPAIR) + "%\n\nTotal: Long " + str.tostring(combinedProbabilityLong) + "%, Short " + str.tostring(combinedProbabilityShort) + "%")
|
||||||
label.set_color(labelBox, color.new(color.blue, 0))
|
label.set_color(labelBox, color.new(color.blue, 0))
|
||||||
label.set_style(labelBox, label.style_label_left)
|
label.set_style(labelBox, label.style_label_left)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user