Williams Fractal通过找到5个条形的低/高,滞后2个条形来绘制分形。
我想设置一个指标,找出3根柱子的最低点/最高点。
我已经检查了TradingView的内置Williams Fractal,它显示了以下代码:
//@version=4
study("Williams Fractal", shorttitle="Fractal", format=format.price, precision=0, overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input(title="Periods", defval=2, minval=2, type=input.integer)我的第一个问题是关于defval的:为什么默认值是2?这是指滞后吗?此外,我认为设置input允许用户在TradingView上操作这个数字来实现指标偏好(比如设置MA的回看周期),但我在内置的Williams Fractal上看不到这个输入。
然后我们得到这些参数:
upFractal = ( (high[n+2] < high[n]) and (high[n+1] < high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))
or ( (high[n+3] < high[n]) and (high[n+2] < high[n]) and (high[n+1] == high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))
or ( (high[n+4] < high[n]) and (high[n+3] < high[n]) and (high[n+2] == high[n]) and (high[n+1] <= high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))
or ( (high[n+5] < high[n]) and (high[n+4] < high[n]) and (high[n+3] == high[n]) and (high[n+2] == high[n]) and (high[n+1] <= high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))
or ((high[n+6] < high[n]) and (high[n+5] < high[n]) and (high[n+4] == high[n]) and (high[n+3] <= high[n]) and (high[n+2] == high[n]) and (high[n+1] <= high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))
dnFractal = ( (low[n+2] > low[n]) and (low[n+1] > low[n]) and (low[n-1] > low[n]) and (low[n-2] > low[n]))
or ( (low[n+3] > low[n]) and (low[n+2] > low[n]) and (low[n+1] == low[n]) and (low[n-1] > low[n]) and (low[n-2] > low[n]))
or ( (low[n+4] > low[n]) and (low[n+3] > low[n]) and (low[n+2] == low[n]) and (low[n+1] >= low[n]) and (low[n-1] > low[n]) and (low[n-2] > low[n]))
or ( (low[n+5] > low[n]) and (low[n+4] > low[n]) and (low[n+3] == low[n]) and (low[n+2] == low[n]) and (low[n+1] >= low[n]) and (low[n-1] > low[n]) and (low[n-2] > low[n]))
or ((low[n+6] > low[n]) and (low[n+5] > low[n]) and (low[n+4] == low[n]) and (low[n+3] >= low[n]) and (low[n+2] == low[n]) and (low[n+1] >= low[n]) and (low[n-1] > low[n]) and (low[n-2] > low[n]))我能够计算出high和low是当前的最高和最低价格,括号中的值提供了以前的最高/最低值。但是,high[n+3] (举个例子)是指高价的3支蜡烛,而high[n-1]是指高1支的回购吗?
无论如何,我都很难理解代码的逻辑。我得到的upFractal是将在屏幕上绘制的变量,但让我试着将以下行放入文字中:
upFractal = ( (high[n+2] < high[n]) and (high[n+1] < high[n]) and (high[n-1] < high[n]) and (high[n-2] < high[n]))我想这就是它的意思:
“如果前面两个条形的高度小于当前条形的高度,并且前面一个条形的高度小于当前条形的高度,并且后面一个条形的高度小于当前条形的高度,并且后面两个条形的高度小于当前条形的高度,则绘制upFractal。”
我没搞错吧?我可以简单地遵循这个逻辑来设计一个3栏模式吗?
谢谢。
发布于 2019-09-07 08:42:21
在Pine中的时间序列上使用历史引用[]运算符时,行为与您的理解相反;更大的指数在过去更远,零(或不带运算符的变量名)引用当前条形图。
https://stackoverflow.com/questions/57828006
复制相似问题