簡體   English   中英

如何將此pinescript v2轉換為v4?

[英]How to convert this pinescript v2 to v4?

我為交易視圖創建了一個算法,只是將各種指標堆疊在一起。 我想用這個 keltner 策略切換一個,但在語法方面我很糟糕。 有人能這么好心指出從 V2 到 V4 的變化嗎? 我查看了它,但無法解決它:/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/08/2018
// The Keltner Channel, a classic indicator 
// of technical analysis developed by Chester Keltner in 1960. 
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Keltner Channel Backtest", overlay = true)
nPeriod = input(title="Period", type=integer, defval=10, minval=1)
xPrice = sma(hlc3, nPeriod)
xMove = sma(high - low, nPeriod)
reverse = input(false, title="Trade reverse")
xUpper = xPrice + xMove
xLower = xPrice - xMove
pos = iff(close < xLower, -1,
       iff(close > xUpper, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))       
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)         
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xPrice, color=blue, title="KSmid")
plot(xUpper, color=red, title="KSup")
plot(xLower, color=green, title="KSdn")

首先,您需要從 v2 轉換為 v3。 兩個版本之間有許多不同之處,但這里只有一個是相關的。 在 v2 中,變量可以在聲明期間引用自身; 在 v3 中,這是不可能的,因此您必須先聲明它,然后再更改值。 在這種情況下,您必須更換

pos = iff(close < xLower, -1,
       iff(close > xUpper, 1, nz(pos[1], 0))) 

具有以下內容:

pos = 0.0
pos := iff(close < xLower, -1,
       iff(close > xUpper, 1, nz(pos[1], 0))) 

之后,將第一行中的版本從 v2 更改為 v3,您就有了一個 v3 腳本。 隨后的 v3 -> v4 轉換可以在 Pine Editor 中自動完成(在More下拉菜單中選擇Convert to v4 )。

生成的 v4 代碼如下所示:

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/08/2018
// The Keltner Channel, a classic indicator 
// of technical analysis developed by Chester Keltner in 1960. 
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Keltner Channel Backtest", overlay=true)
nPeriod = input(title="Period", type=input.integer, defval=10, minval=1)
xPrice = sma(hlc3, nPeriod)
xMove = sma(high - low, nPeriod)
reverse = input(false, title="Trade reverse")
xUpper = xPrice + xMove
xLower = xPrice - xMove
pos = 0.0
pos := iff(close < xLower, -1, iff(close > xUpper, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))
if possig == 1
    strategy.entry("Long", strategy.long)
if possig == -1
    strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? color.red : possig == 1 ? color.green : color.blue)
plot(xPrice, color=color.blue, title="KSmid")
plot(xUpper, color=color.red, title="KSup")
plot(xLower, color=color.green, title="KSdn")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM