首页 > 解决方案 > 如何制作特定于特定图表的指标

问题描述

我创建了一个我希望使用的指标,例如预测和测量工具。我输入进场价和止损价,指标在图表上绘制利润目标。但是,在我将它放在图表上之后,它会在我随后打开的所有图表上使用这些相同的值。有没有办法让它只在我专门放置的图表上绘制/绘制(有未平仓交易)?

//@version=4
study("Trade Targets", overlay=true)

ep = input(0.00, "Entry Price", type=input.float, confirm=true)
sl = input(0.00, "Stop Loss Price", type=input.float, confirm=true)

// truncate() truncates a given number to a certain number of decimals
truncate(number, decimals) =>
    factor = pow(10, decimals)
    int(number * factor) / factor
    
t1 = truncate(ep * 1.01, 2)
t2 = truncate(ep * 1.03, 2)
t3 = truncate(ep * 1.05, 2)
t4 = truncate(ep * 1.10, 2)
t5 = truncate(ep * 1.20, 2)

// make a new label once
//var label label_t1 = label.new(x=bar_index, y=t1, textcolor=color.black, style=label.style_none, size=size.normal, textalign=text.align_center)
var label label_t2 = label.new(x=bar_index, y=t2, textcolor=color.black, style=label.style_none, size=size.normal, textalign=text.align_center)
var label label_t3 = label.new(x=bar_index, y=t3, textcolor=color.black, style=label.style_none, size=size.normal, textalign=text.align_center)
var label label_t4 = label.new(x=bar_index, y=t4, textcolor=color.black, style=label.style_none, size=size.normal, textalign=text.align_center)
var label label_t5 = label.new(x=bar_index, y=t5, textcolor=color.black, style=label.style_none, size=size.normal, textalign=text.align_center)

if (barstate.islast) and (ep > 0.00)
    line_sl = line.new(x1=bar_index[0], y1=sl, x2=bar_index[1], y2=sl, extend=extend.left)
    //line_t1 = line.new(x1=bar_index[0], y1=t1, x2=bar_index[1], y2=t1, extend=extend.left)
    line_t2 = line.new(x1=bar_index[0], y1=t2, x2=bar_index[1], y2=t2, extend=extend.left)
    line_t3 = line.new(x1=bar_index[0], y1=t3, x2=bar_index[1], y2=t3, extend=extend.left)
    line_t4 = line.new(x1=bar_index[0], y1=t4, x2=bar_index[1], y2=t4, extend=extend.left)
    line_t5 = line.new(x1=bar_index[0], y1=t5, x2=bar_index[1], y2=t5, extend=extend.left)
    
    // Set the label content
    //label.set_text(id=label_t1, text="1% " + tostring(t1))
    label.set_text(id=label_t2, text="3% " + tostring(t2))
    label.set_text(id=label_t3, text="5% " + tostring(t3))
    label.set_text(id=label_t4, text="10% " + tostring(t4))
    label.set_text(id=label_t5, text="20% " + tostring(t5))

    // Update the label's location
    //label.set_xy(id=label_t1, x=bar_index[4], y=t1)
    label.set_xy(id=label_t2, x=bar_index[4], y=t2)
    label.set_xy(id=label_t3, x=bar_index[4], y=t3)
    label.set_xy(id=label_t4, x=bar_index[4], y=t4)
    label.set_xy(id=label_t5, x=bar_index[4], y=t5)
    

标签: pine-scriptindicator

解决方案


只要您的脚本依赖于在其“设置/输入”中输入的原始价格,您的脚本将始终是特定于交易品种的。允许为您运行的每个新符号创建单独的脚本实例的概念在电视上不存在。正如您所发现的,运行脚本的所有图表都使用相同的输入。


推荐阅读