Pine script 脚本帮助,编写Weis Wave代码

Pine script 脚本帮助,编写Weis Wave代码,pine-script,Pine Script,我在分段计算VWAP,每次收盘时与运行VWAP的差值大于偏差时,它会翻转趋势并开始新的VWAP计数。应在每个趋势中汇总交易量 迄今为止,交易量总量呈上升趋势,但不呈下降趋势。此外,当从向下切换到向上时,上升趋势成交量“窃取”最后一个下降趋势成交量,并将其添加到自己的成交量中。这一切都很混乱,因为逻辑很简单 这是我的密码: //@version=3 study("My Script") deviation = input(title = "Deviation %", type=float, def

我在分段计算VWAP,每次收盘时与运行VWAP的差值大于偏差时,它会翻转趋势并开始新的VWAP计数。应在每个趋势中汇总交易量

迄今为止,交易量总量呈上升趋势,但不呈下降趋势。此外,当从向下切换到向上时,上升趋势成交量“窃取”最后一个下降趋势成交量,并将其添加到自己的成交量中。这一切都很混乱,因为逻辑很简单

这是我的密码:

//@version=3
study("My Script")
deviation = input(title = "Deviation %", type=float, defval = 0.1)
running_vol = 0.0
running_sum = 0.0
Tup = true
Tdown = false

running_vol := nz(volume[1]) == 0 ? 0 : running_vol[1] + volume
running_sum := nz(volume[1]) == 0 ? 0 : running_sum[1] + (close*volume)

volwap = (running_sum/running_vol)

// flip to downtrend
if (Tup == true) and (Tdown == false) and (close < close[1]) and ((1 - (close/volwap)) > (deviation/100.0))
    // reset running_vol and sum to current volume and sum since it's a new trend
    running_vol := volume
    running_sum := (close*volume)
    // flip the trend switches
    Tup := false
    Tdown := true
// flip to uptrend
if (Tup == false) and (Tdown == true) and (close > close[1]) and (((close/volwap) - 1) > (deviation/100.0))
    running_vol := volume
    running_sum := (close*volume)
    Tup := true
    Tdown := false


up = Tup == true ? running_vol : 0
down = Tdown == true ? running_vol : 0

plot(up, style=histogram, color=green, linewidth=3)
plot(down, style=histogram, color=red, linewidth=3)
/@version=3
学习(“我的剧本”)
偏差=输入(title=“偏差%”,type=float,deffal=0.1)
运行容量=0.0
运行总和=0.0
Tup=true
时差=错误
正在运行的卷:=nz(卷[1])==0?0:正在运行的卷[1]+卷
正在运行的_sum:=nz(卷[1])==0?0:正在运行_sum[1]+(关闭*卷)
volwap=(正在运行的总和/正在运行的体积)
//转向下降趋势
如果(Tup==true)和(Tdown==false)和(close(偏差/100.0))
//由于这是一种新的趋势,所以将运行卷和总和重置为当前卷和总和
正在运行的卷:=卷
运行总和:=(关闭*卷)
//打开趋势开关
Tup:=false
时差:=真
//向上翻转
如果(Tup==false)和(Tdown==true)和(close>close[1])和((close/volwap)-1)>(偏差/100.0))
正在运行的卷:=卷
运行总和:=(关闭*卷)
Tup:=真
时差:=假
up=Tup==true?正在运行的卷:0
down=Tdown=true?正在运行的卷:0
绘图(向上,样式=直方图,颜色=绿色,线宽=3)
绘图(向下,样式=直方图,颜色=红色,线宽=3)

在原始脚本中,Tup和Tdown的自引用是有问题的。必须引用过去的Tup和Tdown,否则在脚本的每次扫描中都会重新引入用户定义的Tup=true和Tdown=false。由于Tup在每次扫描时重新启动为true,因此一次只能有一个熊音量条。我还看到了这个新颖有趣的波浪定义所需的转折点策略的问题。一些游戏可能会找到一个转折点,比这个剧本中的情节更让你满意。我曾试图忠实于您对volwap和close[1]的使用,而不是close[0],但我不确定我是否以您真正想要的方式捕获了它。我希望这可以为您提供一个起点,以完善您的波浪定义。这是我的松树脚本对你的代码的翻译。干杯,杰伊:

//@version=3
// my impression of the Weis VWAP code by Moreina by Jayy
study("Moreina Weis vwap")
deviation = input(title = "Deviation %", type=float, defval = 0.00000000)
running_vol = 0.0
running_sum = 0.0
Tup = 0

count=1
count:= nz(count[1])+1
running_vol := Tup[1]!=Tup[2] and nz(running_vol[1])==nz(volume[1])? nz(running_vol[1]) + volume:  (Tup[1]==1 and Tup[2]==1) or (Tup[1]==-1 and Tup[2]==-1)? nz(running_vol[1]) + volume:na
running_sum := Tup[1]!=Tup[2] and nz(running_sum[1])==nz(close[1]*volume[1])? nz(running_sum[1]) + close*volume: (Tup[1]==1 and Tup[2]==1) or (Tup[1]==-1 and Tup[2]==-1)? nz(running_sum[1]) +close* volume:na

volwap = (running_sum/running_vol)

// flip to downtrend
if ((Tup[1] == 1) or (Tup[1] == 0)) and not ((close > close[1]) or (close/volwap)>1) //

    // reset running_vol and sum to current volume and sum since it's a new trend
    running_vol := volume
    running_sum := (close*volume)
    // flip the trend switches
    Tup := -1

// flip to uptrend
if ((Tup[1] == -1) or (Tup[1] == 0))  and not ((close < close[1]) or ((close/volwap)) <1) //and (close/volwap) > 1) 

    running_vol := volume
    running_sum := (close*volume)
    Tup := 1


Tup:= nz(Tup[0])==1 and count>1?Tup[0]:nz(Tup[0])==-1 and count>1?Tup[0]: count>1 and Tup[0]==0?nz(Tup[1]):na//Tup
up = Tup == 1 ? running_vol : na
down = Tup == -1  ? running_vol : na

plot(up, style=histogram, color=green, linewidth=3)
plot(down, style=histogram, color=red, linewidth=3)
/@version=3
//我对Moreina和Jayy编写的Weis VWAP代码的印象
研究(“Moreina Weis vwap”)
偏差=输入(title=“偏差%”,type=float,deffal=0.00000000)
运行容量=0.0
运行总和=0.0
Tup=0
计数=1
计数:=nz(计数[1])+1
正在运行\u vol:=Tup[1]=Tup[2]和nz(running_vol[1])==nz(volume[1])?nz(运行卷[1])+卷:(Tup[1]==1和Tup[2]==1)或(Tup[1]==1和Tup[2]=-1)?新西兰(第[1]卷)+卷数:na
正在运行_sum:=Tup[1]=Tup[2]和nz(运行_sum[1])==nz(关闭[1]*卷[1])?nz(运行_sum[1])+关闭*卷:(Tup[1]==1和Tup[2]==1)或(Tup[1]==1和Tup[2]==1)?新西兰(运行总量[1])+收盘*成交量:不适用
volwap=(正在运行的总和/正在运行的体积)
//转向下降趋势
如果((Tup[1]==1)或(Tup[1]==0))而不是((close>close[1])或(close/volwap)>1)//
//由于这是一种新的趋势,所以将运行卷和总和重置为当前卷和总和
正在运行的卷:=卷
运行总和:=(关闭*卷)
//打开趋势开关
Tup:=-1
//向上翻转
如果((Tup[1]=-1)或(Tup[1]==0))和非((close1?Tup[0]:nz(Tup[0])==1且计数>1?Tup[0]:计数>1且计数=0?nz(Tup[1]):na//Tup
up=Tup==1?运行卷:na
向下=Tup==-1?运行卷:na
绘图(向上,样式=直方图,颜色=绿色,线宽=3)
绘图(向下,样式=直方图,颜色=红色,线宽=3)

将趋势翻转代码更改为:
//如果((Tup[1]==1)或((Tup[1]==0))和((closeclose[1])或((close+(volwap*(偏差/100))/volwap>1))//
//如果((Tup[1]=-1)或(Tup[1]==0))和((close>close[1]),则翻转为上升趋势(close>close[2])或不((close
借用懒熊的两倍收盘法。