本文介绍了如何存储前一交易日的数据(透视表),并将其绘制为本交易日的水平?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图找到某种方法来存储前一天交易的透视数据,并将它们放入一个数组中,以将这些点带到当天的交易中,以便将它们绘制为线条级别。


例如,$AAPL股票。

周二(昨天),在15分钟的时间框架内,在这些水平[100.2,100.3,100.5]记录了枢轴点。

周三(今天),我希望根据前一交易日选定的支撑位[100.2,100.3,100.5]绘制支撑线/阻力线。

我已经用Python语言完成了,但找不到能够使用PINE脚本的成功方法。

====================================================

到PinseScript响应#1

我以前已经尝试过这种方法,但不幸的是,它在15分钟的安全函数中不起作用。安全性似乎没有识别change(time('D'))的结果,但当我绘制change(time('D'))时,它给出了结果。Check image description below

再次,

  1. 如果我在安全函数内使用change(time('D'))的输出,则PineScript无法识别它。
  2. PineScript已成功绘制输出change(time('D'))。检查下面的图像。

============================================

到PinseScript响应#2

这是我的完整代码,更改(time(‘D’))indie函数FunYesterday()如下

//------------------ Select Day of Trading
Start_Period= timestamp(syminfo.timezone, 2020, 12, 09, 00, 00, 00) //Start Day
End_Period  = timestamp(syminfo.timezone, 2020, 12, 09, 23, 59, 59) //End Day


//------------------ Filtring Session
t_reg   = time("1440", session.regular)  // Regular Session
t_ext   = time("1440", session.extended) // Extended Session
// Brackets the time [ Start Day --- To ----- End Day] 
T_ext   = time >= Start_Period and time <= End_Period and t_ext


// Build a function to detect the change of time between current day-trading and most recent day trading (t-t[1])

FunYesterday()=>
    Change_Time         = iff(T_ext == true, change(time("1D")), na) 
    Change_Time_Update  = fixnan(Change_Time <= 0? na: Change_Time)
    Change_Time_Update2 = iff(T_ext == true, Change_Time_Update, na)

    if time >= Start_Period-Change_Time_Update2 and time <= End_Period-Change_Time_Update2 and t_reg
        [pivothigh(close, 3, 2), pivotlow(close, 3, 2)]


//------------------ Pivot point at 15 min. 
[ph2, pl2] = security(syminfo.tickerid, "15", FunYesterday(), lookahead = barmerge.lookahead_off)
ph2_filter= ph2 == ph2[1]?na:ph2
pl2_filter= pl2 == pl2[1]?na:pl2

//------------------ Array Part
var a = array.new_float()
if (not na(ph2_filter))
    array.push(a,ph2_filter)
else if (not na(pl2_filter))
    array.push(a,pl2_filter)


if barstate.islast and array.size(a)>0
        
    y=label.new(bar_index, close, "Initial
a: " + tostring(a))
    label.delete(y[1])

推荐答案

第1部分

如果您以15分钟的分辨率运行图表,最好的方法是使用数组维护透视值队列,并清除change(time("D"))上的数组,这样它们每天都会重置。

有关队列处理的示例,请参阅usrman on arrays

第2部分

change(time("D"))应以图表的分辨率进行检测:

//@version=4
study("", "", true)
newDay = change(time("D"))
plotchar(newDay, "newDay", "►", location.top, size = size.tiny)

这篇关于如何存储前一交易日的数据(透视表),并将其绘制为本交易日的水平?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 19:56