首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >仅绘制最后2个连接的摆动高/低(重绘指示器)

仅绘制最后2个连接的摆动高/低(重绘指示器)
EN

Stack Overflow用户
提问于 2019-09-10 19:32:43
回答 1查看 1.3K关注 0票数 0

我编写了一个指示器,每当移动平均线交叉发生时,它会绘制最高的高位(和最低的低位)。

下面的代码运行得很好,但它有一个问题,那就是它保留了之前在交叉后被打破的高点。

我希望这些线只从一个最低点和一个最高点连接,因为十字架就像一个之字形指示器。

下面的图片更好地解释了这一点,绿线是指示器绘制的内容。黑线是它应该绘制的内容。

https://imgur.com/gcblrOA

有什么办法可以解决这个问题吗?谢谢

代码语言:javascript
运行
AI代码解释
复制
//@version=4
study(title="MA Cross", overlay=true, max_bars_back=3000)

MA1 = sma(close, 20)
MA2 = sma(close, 100)

Highest(src, len) =>
    max = high
    for i = 1 to len
        if src[i] > max
            max := src[i]
    max

Lowest(src, len) =>
    min = src[0]
    for i = 1 to len
        if src[i] < min
            min := src[i]
    min


trend = 0
trend := na(trend[1]) ? 1 : trend[1]

LL = 0.0
HH = 0.0

HH := Highest(high, barssince(cross(MA1, MA2)))
LL := Lowest(low, barssince(cross(MA1, MA2)))

HighLow = 0.0

recent = 0

HL = 0.0

if(MA1 > MA2)

    recent := 1

    for i = 1 to 200
        if(MA1[i] < MA2[i])
            break

        if(high < high[i])
            recent := -1
            break

    HL := na
    if(recent < 0)
        HighLow := na

    else        
        HighLow := high
        HL := high


else
    recent := 1
    HL := na
    for i = 1 to 200
        if(MA1[i] > MA2[i])
            break

        if(low > low[i])
            recent := -1
            break

    if(recent < 0)
        HighLow := na

    else        
        HighLow := low
        HL := low


plot(series= HighLow, color = color.green, linewidth=3)
plot(series=MA1, color = color.aqua, linewidth=1)
plot(series=MA2, color = color.orange, linewidth=1)
EN

回答 1

Stack Overflow用户

发布于 2019-09-11 23:56:39

正如您所说,这不会在所有数据集上绘制线条,因为它使用了line.new()。不过,如果它能派上用场:

代码语言:javascript
运行
AI代码解释
复制
//@version=4
study(title="MA Cross", overlay=true, max_bars_back=3000)

MA1 = sma(close, 20)
MA2 = sma(close, 100)

// Highest/lowest hi/lo during up/dn trend.
var hi = 0.
var lo = 10e20
// Bar index of highest/lowest hi/lo.
var hiBar = 0
var loBar = 0
// Crosses.
crossUp = crossover(MA1, MA2)
crossDn = crossunder(MA1, MA2)
upTrend = MA1 > MA2

// Draw line in past when a cross occurs.
if crossUp or crossDn
    line.new(bar_index[bar_index - hiBar], high[bar_index - hiBar], bar_index[bar_index - loBar], low[bar_index - loBar], xloc.bar_index, extend.none, color.black)

// Reset hi/lo and bar index on crosses.
if crossUp
    hi := high
    hiBar := bar_index
else
    if crossDn
        lo := low
        loBar := bar_index

// Update higher/lower hi/lo during trend.
if upTrend and high > hi
    hi := high
    hiBar := bar_index
else
    if not upTrend and low < lo
        lo := low
        loBar := bar_index

plot(series=MA1, color = color.aqua, linewidth=1)
plot(series=MA2, color = color.orange, linewidth=1)

// Debugging.        
// plot(hi, "High", color.green, 1, plot.style_circles)
// plot(lo, "Low", color.red, 1, plot.style_circles)
// plotchar(bar_index, "bar_index", "", location.top)
// plotchar(hiBar, "hiBar", "", location.top, color = color.green)
// plotchar(loBar, "loBar", "", location.top, color = color.red)
// bgcolor(upTrend ? color.green : color.red)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57877178

复制
相关文章
重绘与回流_html回流重绘
浏览器在渲染一个页面时,会将页面分为很多个图层,图层有大有小,每个图层上有一个或多个节点。 也就是我们各种各样的Dom标签
全栈程序员站长
2022/11/01
1.4K0
重绘与回流_html回流重绘
回流重绘
HTML默认是流式布局,css与js会打破这种布局,改变DOM的几何属性与外观属性。在绘制时根据渲染树布局,再根据布局绘制,这就是回流重绘。
岳泽以
2022/11/21
6440
重排与重绘
原文地址:http://www.cun-xu.cn/index.php/2018/12/25/重排与重绘/
IMWeb前端团队
2019/12/03
1.2K0
重排与重绘
回流和重绘
我们要明确页面在文档加载完成之后到完全显示中间的过程是 根据文档生成DOM树(包括display:none的节点) 在DOM树基础上根据节点的几何属性(margin/padding/width/height等)生成render树(不包括display:none、head节点但会包含visibility:hidden节点) 在render树基础上进行进一步渲染包括color,outline等样式 reflow: 当render树中的一部分或者全部因为大小边距等问题发生改变而需要重建的过程叫做回流 rep
念念不忘
2019/03/29
8830
“重绘” 和 “重排”
重绘是指一个元素外观改变所触发的浏览器行为,大概就是外观属性的改变,像,背景颜色,等
用户3055976
2019/10/31
8060
HTML中的重绘与回流
在认识重绘和回流之前,我们先认识一下一个页面加载的时候,会发生什么?   页面加载时,生成一个DOM树,DOM Tree里包含了构成页面所有的标签。Style Sheets(CSS样式表)会生成一个Style Rules。当DOM Tree和Style Rules一起构建出了Render Tree,对于Render Tree的理解:Render Tree和DOM Tree类似,但是Render Tree能够识别样式,在Render Tree上,每一个node(节点)都有自己的Style(样式),但隐藏的节点或是不会用于显示的部分不会包含在Render Tree上。
刘亦枫
2020/03/19
1.5K0
HTML中的重绘与回流
浏览器的重排重绘
完整高频题库仓库地址:https://github.com/hzfe/awesome-interview
HZFEStudio
2021/09/12
1.1K0
MFC-4简单的窗口重绘(非部分重绘)
#include <afxwin.h> #include "resource.h" #include <afxtempl.h> //定义模板类的头文件 class MyDocument : public CDocument { public: CArray<CPoint,CPoint &> pArray;//<保存的数据类型,读取保存数据类型的返回值> void AddPoint(CPoint p) { pArray.Add(p); } CPoint GetPoint(int i) {
liulun
2022/05/09
6920
页面优化——重绘和回流[通俗易懂]
一、写在前面 页面优化在面试的过程中经常遇到的问题,今天就来总计一下重绘和回流的问题。 二、重绘和回流是什么 我们都知道一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点进行几何布局形成render树(渲染树),当渲染树构建完成后,页面就根据DOM树开始布局,渲染树也根据设置的样式渲染这些节点。 在这一过程中,比如我们删除DOM节点,修改一个元素的宽高,页面布局发生变化,DOM树也发生变化,那么肯定要重新构建DOm树,而DOM树和渲染树紧密相连,DOM树渲染完了,渲染树也会随之进行渲染,这个过程就称为回流。 在比如说,我们给一个元素修改颜色,这样的行为是不会影响页面的布局的,DOM树不会发生改变,但是颜色变了,渲染树得重新绘制,这就是重绘。 所以说回流一定会触发重绘,重绘不一定触发回流。 题外话: 1、由于display:none的元素不在页面渲染,渲染树的构建不包含这些节点。但是visibility为hidden的元素会在渲染树中。因为display为none会脱离文档流,visibility为hidden虽然看不到,但类似与透明度为0,其实还在文档流中,还是有渲染的过程。 2、尽量避免使用表格布局,当我们不给表格的td设置固定的宽度的时,一列的td的宽度会以最宽的td的宽作为渲染的标准,假设前几行的td在渲染时都渲染好了,结果下面的某行特别宽,table为了统一宽度,前几行的td会回流重新计算宽度,这是一个比较耗时的操作。 三、怎么样减少回流 回流会重构DOM树,渲染树也得重新渲染,比较麻烦,哪些行为可以引发回流,如何去避免呢? 1、DOM的删除行为 比如删除某个节点,或者给父元素插入子节点,这类操作都会触发回流。如果我们插入多个子节点的话,可以使用documentfragment。 2、几何属性的变化 比如说元素的宽度变了,border变了,字体大小变了,这种直接会引发页面的布局的改变,也会触发回流。如果我们需要改变多个属性,做好的是将这些改变定义在一个class中,直接修改class名,这样只会触发一次回流。 3、元素的位置发生改变 修改一个元素的左右margin,padding之类的操作,所以在元素位移的动画,不要更改margin之类的值,使用定位脱离文档流后进行改变位置。 4、获取文章的偏移量之类的属性 例如我们需要获取scrollTop、scrollLeft、scrollWidth、offsetTop、offsetLeft、offsetWidth、offsetHeight之类的属性的时候,浏览器为了保证值的正确性也会回流进行获取,所以如果你要不多次操作,最好取完进行缓存。 5、页面初次渲染触发回流 页面的初次渲染触发回流这样无法避免。 6、浏览器窗口尺寸的改变 resize事件的发生也会触发回流。
全栈程序员站长
2022/11/17
9660
JS引发页面重排重绘的代价
示例 目标是修改div内容,3种实现方式,看下每种方式的执行时间 <html> <body> <div id="myDiv1"></div> <div id="myDiv2"></div> <div id="myDiv3"></div> <script> var times = 10000; // 方式1 console.time(1); for(var i = 0; i < times; i++) { document.getElementById('myDiv1').innerHTML += 'a'
dys
2018/04/02
1.2K0
Flutter 绘制探索 5 | 深入分析重绘范围 RepaintBoundary | 七日打卡
可能说起 Flutter 绘制,大家第一反应就是用 CustomPaint 组件,自定义 CustomPainter 对象来画。Flutter 中所有可以看得到的组件,比如 Text、Image、Switch、Slider 等等,追其根源都是画出来的,但通过查看源码可以发现,Flutter 中绝大多数组件并不是使用 CustomPaint 组件来画的,其实 CustomPaint 组件是对框架底层绘制的一层封装。这个系列便是对 Flutter 绘制的探索,通过测试、调试及源码分析来给出一些在绘制时被忽略或从未知晓的东西,而有些要点如果被忽略,就很可能出现问题。
张风捷特烈
2021/01/20
4.2K0
Flutter 绘制探索 5 | 深入分析重绘范围 RepaintBoundary | 七日打卡
Qt官方示例-摆动的文字
QBasicTimer是计时器的低级类。与QTimer不同,QBasicTimer不会从QObject继承。它不会在经过一定时间后发出timeout()信号,而是将QTimerEvent发送到我们选择的QObject。这使QBasicTimer成为QTimer的更轻量级替代。主要用于高度优化或性能要求较高的应用程序(例如嵌入式应用程序)。
Qt君
2020/02/24
1.8K0
DOM优化之重绘和回流
浏览器内核中的JS 引擎和渲染引擎是独立存在的,当我们用JS去操作DOM时,本质上是JS引擎和渲染引擎之间进行的“跨界交流”。
九旬
2020/10/23
9020
使用重绘项美化WinForm中的控件
如果你觉得项目中的ComboBox、ListBox或其它的Winforms控件不能满足你的显示要求,包括窗体在内很多控件都支持重绘修改显示样式。下面的示例完成对ComBox数据项的重绘,希望能起到抛砖引玉的作用。
张果
2022/05/09
1.1K0
使用重绘项美化WinForm中的控件
你真的了解回流和重绘吗
回流和重绘可以说是每一个web开发者都经常听到的两个词语,我也不例外,可是一直不是很清楚这两步具体做了什么事情。最近由于部门内部要做分享,所以对其进行了一些研究,看了一些博客和书籍,整理了一些内容并且结合自己的体会,写了这篇文章,希望可以帮助到大家。
嘿嘿嘿
2018/12/25
1.3K0
浏览器的回流与重绘 (Reflow & Repaint)
当Render Tree中部分或全部元素的尺寸、结构、或某些属性发生改变时,浏览器重新渲染部分或全部文档的过程称为回流。 会导致回流的操作:
Nealyang
2019/09/29
6910
自定义View三问—字节真题
星期一的早上,还没从假期缓过来的你,遇到产品给的新需求,要做一个你没看过的View,是不是有点崩溃。哎,抹干眼泪,拿起自定义View开始埋头苦干吧~
码上积木
2020/10/29
5250
自定义View三问—字节真题
浏览器的渲染流程--重排、重绘、合成
定义: 当通过JS或css改变了元素的宽度、高度等,修改了元素的几何位置属性,那么浏览器会触发重新布局,解析之后的一系列子阶段,这个过程就叫重排。无疑, 重排需要更新完整的渲染流水线,所以开销也是最大的。
用户7741497
2022/03/06
1.1K0
最新版本 Stable Diffusion 开源 AI 绘画工具之图生图进阶篇
🎈 图生图基本参数图生图功能主要包括六大类:图生图 / img2img、涂鸦绘制 / sketch、局部绘制 / inpaint、局部绘制之涂鸦蒙版 / inpaint sketch、局部绘制之上传蒙版 / inpaint upload、批量处理 / batch而图生图的基本参数包括但不限于以下几种:Resize mode: 缩放模式,包括 拉伸/Just resize、裁剪/crop and resize、填充/resize and fill、仅调整大小(潜空间放大/just resize (latent
江户川码农
2023/04/12
4.1K3
最新版本 Stable Diffusion 开源 AI 绘画工具之图生图进阶篇
重绘和回流(Repaint & Reflow),如何优化
由于节点的几何属性发生改变或者由于样式改变而不影响布局的,称为重绘,例如outline,visibility,color,background-color等,重绘的代价是高昂的,因为浏览器必须验证DOM树上其他节点的可见性。
刘嘿哈
2022/10/25
7850

相似问题

高图表标签重绘

110

角高图重绘

13

绘制、重绘、paintComponent

10

高轴更新/图重绘

45

如何绘制/重绘/动画(MVC)

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文