pine-script - 如何在右侧放置指定的斐波那契标签,并缩短线条以不一直延伸到右侧?
问题描述
我有一个代码可以根据买入/卖出信号自动生成指定的斐波那契水平。我试图将标签放在右侧而不是左侧,并缩短线条,使它们不会一直向右延伸,但只能延伸这么多,最好让线条的开头与购买对齐/sell 印有蜡烛的蜡烛。我一生都无法弄清楚如何做到这一点。
https://www.tradingview.com/x/ShCwlfBE/
var linezerovalue = 0.0
var line236value = 0.0
var line650value = 0.0
var line1000value = 0.0
var line11383value = 0.0
var line1618value = 0.0
var line2000value = 0.0
var linedifference = 0.0
var line line0 = na
var line line236 = na
var line line650 = na
var line line1000 = na
var line line11383 = na
var line line1618 = na
var line line2000 = na
//labels
var label label0 = na
var label label236 = na
var label label650 = na
var label label1000 = na
var label label11383 = na
var label label1618 = na
var label label2000 = na
linezerovalue := buySignal ? l10 : sellSignal ? h10 : na
line1000value := buySignal ? high : sellSignal ? low : na
linedifference := abs(linezerovalue - line1000value)
line236value := buySignal ? linezerovalue + (0.236*linedifference) : sellSignal ?
linezerovalue - (0.236*linedifference) : na
line650value := buySignal ? linezerovalue + (0.650*linedifference) : sellSignal ?
linezerovalue - (0.650*linedifference) : na
line11383value := buySignal ? line1000value + (0.382*linedifference) : sellSignal ?
line1000value - (0.382*linedifference) : na
line1618value := buySignal ? line1000value + (1.0*linedifference) : sellSignal ?
line1000value - (1.0*linedifference) : na
line2000value := buySignal ? line1000value + (1.618*linedifference) : sellSignal ?
line1000value - (1.618*linedifference) : na
if buySignal or sellSignal
line.delete(line0)
line.delete(line236)
line.delete(line650)
line.delete(line1000)
line.delete(line11383)
line.delete(line1618)
line.delete(line2000)
label.delete(label0)
label.delete(label236)
label.delete(label650)
label.delete(label1000)
label.delete(label11383)
label.delete(label1618)
label.delete(label2000)
label0 := label.new(bar_index[1], linezerovalue, text = "(SL) - " + tostring(float(linezerovalue)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label236 := label.new(bar_index[1], line236value, text = "(RM) - " + tostring(float(line236value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label650 := label.new(bar_index[1], line650value, text = "(Entry) - " + tostring(float(line650value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label1000 := label.new(bar_index[1], line1000value, text = "(Break) - " + tostring(float(line1000value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label11383 := label.new(bar_index[1], line11383value, text = "(TP 1) - " + tostring(float(line11383value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label1618 := label.new(bar_index[1], line1618value, text = "(TP 2) - " + tostring(float(line1618value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
label2000 := label.new(bar_index[1], line2000value, text = "(TP 3) - " + tostring(float(line2000value)), xloc = xloc.bar_index, yloc=yloc.price, color = color.white, style = label.style_none, textcolor = color.white, size = size.normal)
line0 := line.new(x1 = bar_index[1],y1 = linezerovalue,x2 = bar_index,y2 = linezerovalue,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.red : color.red)
line236 := line.new(x1 = bar_index[1],y1 = line236value,x2 = bar_index,y2 = line236value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.fuchsia : color.fuchsia)
line650 := line.new(x1 = bar_index[1],y1 = line650value,x2 = bar_index,y2 = line650value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.blue: color.blue)
line1000 := line.new(x1 = bar_index[1],y1 = line1000value,x2 = bar_index,y2 = line1000value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.lime : color.lime)
line11383 := line.new(x1 = bar_index[1],y1 = line11383value,x2 = bar_index,y2 = line11383value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.green : color.green)
line1618 := line.new(x1 = bar_index[1],y1 = line1618value,x2 = bar_index,y2 = line1618value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ? color.green : color.green)
line2000 := line.new(x1 = bar_index[1],y1 = line2000value,x2 = bar_index,y2 =
line2000value,xloc = xloc.bar_index, extend = extend.right, color = buySignal ?
color.green : color.green)
// plot(l10, style = plot.style_linebr)
解决方案
对于您的标签x
值和行x2
值,您可以使用bar_index +
整数,例如
label.new(x = bar_index + 50, y = ......)
并将extend
行的参数更改为extend.none
标签样式还控制标签的原点,因此您可能想尝试使用label.style_label_lower_right
推荐阅读
- powershell - 实现“按 Enter 跳过”
- python-3.x - 使用 exchangelib 访问 Outlook Exchange 服务器以阅读电子邮件时出现错误 403
- reactjs - 列出不呈现数据
- wordpress - 如何查找和编辑自定义端点。在 wordpress 中休息 api
- javascript - ReactJS - 关于动态路由的问题
- react-native - 键盘覆盖屏幕的一半
- android - 在使用毕加索在通知中显示位图图像时,我收到“无法创建带有消息'未实现'的图像解码器”错误
- office365 - 如何通过office365 api为用户添加多个角色?
- javascript - 在 React 中保存编辑好的表单后自动刷新页面
- java - 无法在junit 5中使用@ContextConfiguration创建用于测试的bean