Как определить проигрыш или выигрыш между двумя позициями - PullRequest
1 голос
/ 27 мая 2020

В этом коде, как я могу зарегистрировать позицию Golong, которая остановлена ​​на "X", пометить ее как прибыль или убыток? Мне нужно определить это, чтобы иметь возможность использовать его в качестве фильтра, чтобы отображать только метки Голонга или Гошорта после того, как предыдущая позиция была убыточной.
Х - это конкретная позиция после сигнала Голонга или Гошорта, чтобы остановить эта позиция. X появляется на пересечении цены с максимумом или минимумом предыдущей недели (минимум для сигнала Голонга, максимум для сигнала Гошорта). Моя проблема в том, как определить выигрыш или проигрыш для этой конкретной позиции X по сравнению с позицией исходящей позиции Голонга или Гошорта.

win or loss ?

// This source code is subject to the terms of the Mozilla Public License 2.0 at    https://mozilla.org/MPL/2.0/
//@version=4
//By Juros

study(title="Universal weekly breakout + universal filter", shorttitle="weekly breakout+  filter", overlay=true, precision=8)
prevwkH = input(true, title="Show previous week high?")
prevwkL = input(true, title="show previous week low?")

//previous week high and low
prevWeekHigh = security(syminfo.tickerid, 'W', high[1], lookahead=true)
prevWeekLow = security(syminfo.tickerid, 'W', low[1], lookahead=true)

//previous Week high and low Plots
plot(prevwkH and prevWeekHigh ? prevWeekHigh : na, title="Prev Week High", style=plot.style_stepline, linewidth=1, color=color.fuchsia, transp=20)
plot(prevwkL and prevWeekLow ? prevWeekLow : na, title="Prev Week Low", style=plot.style_stepline, linewidth=1, color=color.fuchsia, transp=20)

//------------------------------------------------------------------------------------------

// stop location for short and long position (at crossover of previous week low or high)
Stopshort = crossover (high, prevWeekHigh)
Stoplong = crossunder (low, prevWeekLow)

Longposmemo = false
Longposmemo := Stopshort ? true : Stoplong ? false : Longposmemo[1]

Longcond = Stopshort and not Longposmemo[1]
color_1 = color.new(color.green, 70)


Shortposmemo = false
Shortposmemo := Stoplong ? true : Stopshort ? false : Shortposmemo[1]

Shortcond = Stoplong and not Shortposmemo[1]
color_2 = color.new(color.red, 70)
//bgcolor(Sellnow ? color_2 : na)

//------------------------------------------------------------------------------------------

// Signal for long and short
Golong = false 
Golong := high > prevWeekHigh and Longcond[1]

Goshort = false
Goshort := low < prevWeekLow and Shortcond[1]


//------------------------------------------------------------------------------------------

// plots : X where the position is stopped
plotchar (Longcond, char='X', location=location.abovebar, color=color.yellow)
plotchar (Shortcond, char='X', location=location.belowbar, color=color.yellow)


plotshape (Golong ? high : na, style = shape.labelup, location = location.belowbar,   color=color.lime, size=size.tiny, text = 'GOLONG', textcolor=color.black)
plotshape (Goshort ? low : na, style = shape.labeldown, location = location.abovebar, color=color.fuchsia, size=size.tiny, text ='GOSHORT', textcolor=color.black)

// alerts
alertcondition(Golong, title="Weakly breakout go long", message="WBO go long")
alertcondition(Goshort, title="weakly breakout go short", message="WBO go short")

//------------------------------------------------------------------------------------------

// Filter to show only those signals that follow on the previous position (long or short) that was a loss
...