代码之家  ›  专栏  ›  技术社区  ›  AndiAna

如何根据pine中的市值定义默认输入值

  •  0
  • AndiAna  · 技术社区  · 2 年前

    我试图将输入字段中的默认值设置为基于证券市值的某个起始值。我无法使它工作。这个级数有问题,它使第一个常量定义保持不变。定义变量也不起作用。正确的方法是什么? 我希望能够根据市值的大小将“acc”设置为一定的值。在这个例子中,我对它进行了简化,看看它是否有效。

    //@version=5
    indicator("Factor", overlay=true, timeframe="", timeframe_gaps=true)
    _Outstanding = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ")
    _close = close
    _mv = _Outstanding * _close
    acc = 5.0
    
    if _mv >= 1.0
        acc = 10.0
    else
        acc = 2.0
    
    atrfactor = input.float(acc, "factor", minval = 1.0, step = 0.1)
    plotchar(_mv, "MV", "", location = location.top)
    
    0 回复  |  直到 2 年前
        1
  •  1
  •   AndiAna    2 年前

    由于上面的代码不起作用,我已经找到了解决这个问题的方法,我将在这里发布我的答案,供未来寻求相同解决方案的人使用。

    这是代码:

    //@version=5
    indicator("Testcode" ,"Testing", true)
    TSO = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ", ignore_invalid_symbol = true)
    MarketCap = TSO * close
    megacap = input.float(2.0, "Mega Cap", minval = 0.0, step = 0.1)
    bigcap = input.float(3.0, "Big Cap", minval = 0.0, step = 0.1)
    myfactor = (MarketCap >= 1000000000000) ? megacap : (MarketCap >= 10000000000) ? bigcap : 5.0
    plotchar(myfactor, "myfactor", "", location = location.top)
    

    更新 myfactor 数据窗口中的变量

    datasheet

    根据你所看到的股票类型,这里有AAPL、SQ和TNDM进行比较

    AAPL SQ TNDM

        2
  •  0
  •   AmphibianTrading    2 年前

    您需要使用重新分配运算符 := 更改acc的值。您不能将输入值设置为“acc”,但您可以根据市值更改输入值。

    下面我将您的“atrfactor”输入设置为5.0。默认情况下,然后使用重新分配运算符更改“atrfactor”的值。我添加了标签,这样您就可以看到值的变化。不过,由于每家公司的市值都大于1.0,所以它总是10

    //@version=5
    indicator("Factor", overlay=true)
    atrfactor = input.float(5.0, "factor", minval = 1.0, step = 0.1)
    _Outstanding = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ")
    _close = close
    _mv = _Outstanding * _close
    
    if _mv >= 1.0
        atrfactor := 10.0
    else
        atrfactor := 2.0
    
    plotchar(_mv, "MV", "", location = location.top)
    if barstate.islast
        label.new(bar_index, high, str.tostring(atrfactor), color=color.aqua)
    

    enter image description here