本文介绍了如何存储前一交易日的数据(透视表),并将其绘制为本交易日的水平?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
试图找到某种方法来存储前一天交易的透视数据,并将它们放入一个数组中,以将这些点带到当天的交易中,以便将它们绘制为线条级别。
例如,$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
再次,
- 如果我在安全函数内使用
change(time('D'))
的输出,则PineScript无法识别它。 - 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)
这篇关于如何存储前一交易日的数据(透视表),并将其绘制为本交易日的水平?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!