簡體   English   中英

在 Pine Script V5 中為指標組織風險管理

[英]Organizing Risk Management for an indicator in Pine Script V5

問題是這樣的。 我希望我的指標有一個 plotshape(Long,Short,TP,Stop and AVG) AVG 我的意思是平均,只是和他一起我有一個問題,我規定了應該在第一次觸摸和之后顯示 AVG 的代碼和變量go 止損或止盈,但代碼不會在圖表上顯示任何內容。

`

////Фикс РМ///
stopPer = input.float(5, title='Stop Loss %') / 100
takePer = input.float(5, title='Take Profit %') / 100

//определить, каким был последний сигнал (длинным или коротким)
long_short = 0
long_last = long and (nz(long_short[1]) == 0 or nz(long_short[1]) == -1)
short_last = short and (nz(long_short[1]) == 0 or nz(long_short[1]) == 1)
long_short := long_last ? 1 : short_last ? -1 : long_short[1]

//Расчет входа
longPrice = ta.valuewhen(long_last, close, 0)
shortPrice = ta.valuewhen(short_last, close, 0)
//Фиксированый стоп и ТП
longStop = longPrice * (1 - stopPer)
shortStop = shortPrice * (1 + stopPer)
longTake = longPrice * (1 + takePer)
shortTake = shortPrice * (1 - takePer)
//Разрисовка линий
plot(long_short == 1 ? longStop : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Fixed SL')
plot(long_short == -1 ? shortStop : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Short Fixed SL')
plot(long_short == 1 ? longTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Long Fixed TP')
plot(long_short == -1 ? shortTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Short Fixed TP')

//удаляет первый бар для SL/TP (вы не можете войти в сделку при закрытии бара, а затем на этом же баре установить SL)
longBar1 = ta.barssince(long_last)
longBar2 = longBar1 >= 1 ? true : false
shortBar1 = ta.barssince(short_last)
shortBar2 = shortBar1 >= 1 ? true : false

//Проверка на СЛ по закрытию свечи
longSLhit = long_short == 1 and longBar2 and low < longStop
plotshape(longSLhit, style=shape.labelup, location=location.belowbar, color=color.new(color.gray, 0), size=size.tiny, title='Long SL', text=' Long SL', textcolor=color.new(color.white, 0))
shortSLhit = long_short == -1 and shortBar2 and high > shortStop
plotshape(shortSLhit, style=shape.labeldown, location=location.abovebar, color=color.new(color.gray, 0), size=size.tiny, title='Short SL', text=' Short SL', textcolor=color.new(color.white, 0))

//Проверка на ТП по закрытию свечи
longTPhit = long_short == 1 and longBar2 and high > longTake
plotshape(longTPhit, style=shape.labeldown, location=location.abovebar, color=color.new(color.purple, 0), size=size.tiny, title='Long TP', text='Long TP', textcolor=color.new(color.white, 0))
shortTPhit = long_short == -1 and shortBar2 and low < shortTake
plotshape(shortTPhit, style=shape.labelup, location=location.belowbar, color=color.new(color.purple, 0), size=size.tiny, title='Short TP', text='Short TP', textcolor=color.new(color.white, 0))
////AVG////
var averaging = 0
var averaging_done = 0
var short_averaging_done = 0

priceDrop = (close / longPrice - 1) * 100
if long_last and priceDrop >= 0
    averaging := 1

averaging_active = long_short == 1 and averaging == 1 and averaging_done == 0 and close < longPrice * (1 - 0.02)
longPrice := averaging_active ? (longPrice + close) / 2 : longPrice
longStop := averaging_active ? (longPrice * (1 - stopPer)) : longStop
longTake := averaging_active ? (longPrice * (1 + takePer)) : longTake
averaging_done := averaging_active ? 1 : averaging_done

short_averaging_active = long_short == -1. and averaging == 1 and short_averaging_done == 0 and close > shortPrice * (1 - 0.02)
shortPrice := short_averaging_active ? (shortPrice + close) / 2 : shortPrice
shortStop := short_averaging_active ? (shortPrice * (1 + stopPer)) : shortStop
shortTake := short_averaging_active ? (shortPrice * (1 - takePer)) : shortTake
short_averaging_done := short_averaging_active ? 1 : short_averaging_done

plotshape(averaging_active, style=shape.labelup, location=location.belowbar, color=color.new(color.purple, 0), size=size.tiny, title='AVG', text='AVG', textcolor=color.new(color.white, 0))
plotshape(short_averaging_active, style=shape.labelup, location=location.belowbar, color=color.new(color.purple, 0), size=size.tiny, title='AVG', text='AVG', textcolor=color.new(color.white, 0))
//Ресет лонгов и шортов
long_short := (long_short == 1 or long_short == 0) and longBar2 and (longSLhit or longTPhit) ? 0 : (long_short == -1 or long_short == 0) and shortBar2 and (shortSLhit or shortTPhit) ? 0 : long_short
///////

`

主要嘗試以大量 plotshape(AVG) 的形式給我帶來了不愉快的效果,它從條形信號開始並向相反方向移動。

這看起來像我的“固定百分比止損和止盈”腳本,網址為https://www.tradingview.com/script/vONzvOkb-Fixed-Percent-Stop-Loss-Take-Profit-For-Study-Scripts/

人們正在使用這個腳本並根據自己的需要對其進行自定義,這真是太棒了!

你能詳細解釋一下你所說的“平均”是什么意思嗎? 您要尋找的平均值究竟是多少? 您確定要使用 plotshape() 而不是 plot() 嗎? 代表平均值的線肯定比沿 x 軸的固定點更有用嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM