파인의 새로운 기능들

Apr 9, 2021

모든 파인 업데이트를 블로그에 올리지는 않습니다만 여러분의 코딩에 도움이 될 새로운 피처가 언제 나올지는 아무도 알 수 없습니다. 이번 포스트는 여러분이 놓치고 지나간 최근의 개선 사항들을 보여줍니다.

varip 키워드는 여러분이 어떤 데이터를 트랙하면서 리얼타임 바 안에서 어떻게 바뀌어 가는지를 보고자 할 때 쓸모가 있습니다. 모든 파인 베어리어블은 롤백이 있는데, 이는 새로운 틱이 올 때마다 그 베어리어블의 상태가 새 데이터를 처리하기 앞서 이전 바의 밸류로 리셋되는 것을 말합니다. varip 키워드는 롤백을 막아 베어리어블의 커런드 밸류를 이전 틱에서의 밸류 (이전 바가 아니라) 와 견줄 수 있도록 해 줍니다. 이는 가능성의 새로운 세계를 여는 것입니다. 당사 파인 위저드인 LonesomeTheBlue 만든 틱 차트를 보십시오:

https://www.tradingview.com/script/ygNO2G1V-Tick-Chart/

좀 더 알고 싶다면 PineCoders: 가 쓴 varip 에 대한 깊이 있는 튜토리얼을 읽어 보십시오:

https://www.tradingview.com/script/ppQxBISk-Using-varip-variables-PineCoders/

파인에 더 많은 수학 함수를 바라던 분들을 위해 완전 새로운 수학 관련 펑크션 침 콘스탄트 셋을 만들었습니다:

  • 새로운 콘스탄트 math.pi, math.phi, math.rphi 및 math.e
  • 새로운 round() 기능 — 가장 가까운 인티저로 라운딩하던 것을 이제 라운딩 포지션을 지정할 수 있도록 하였습니다.
  • median()
  • mode()
  • range()
  • todegrees()
  • toradians()
  • random()

아슬아슬한 삶을 살고자 하는 분들을 위한 스트래티지를 보여 드리겠습니다: 모든 엔트리 및 엑시트는 random() 펑크션을 써서 인풋 섹션에 지정된 퍼센티지를 바탕으로 랜덤 처리됩니다:

//@version=4
strategy("I’m feeling lucky", overlay=true)
seed = input(1, "Seed, increase to recalculate the strategy", minval=1)
entryPerc = input(20.0, "Entry chance, %", minval=0.0, maxval=100.0)
exitPerc = input(10.0, "Exit chance, %", minval=0.0, maxval=100.0) 
roll = random(0, 100, seed)
positionSize = floor(random(1, (strategy.equity / close), seed))
if roll < entryPerc
    strategy.entry("My Long Entry Id", strategy.long, qty=positionSize)
if roll < exitPerc
    strategy.close_all()

또다른 개발은 := 어싸인먼트 오퍼레이터와 산술 오퍼레이터를 머지하여 새로운 어싸인머트 오퍼레이터인 +=, -=, *=, /= and, %= 를 만든 것입니다. 이들 오퍼레이터를 쓰면 여러분의 스크립트를 깔끔하고 짧게 만들어 줄 것입니다: a := a + 1 대신에 간단히 a += 1로 쓸 수 있습니다. 작지만 꽤 편리한 개선 사항입니다.

스트링을 넘버로 바꾸고 싶다면 새로운 tonumber() 펑크션이 그 일을 해 줍니다. 보기로, 아래 스크립트를 보면, tonumber() 는 다른 스트링 펑크션인 str.split() 와 str.replace_all() 함께 써서 하나의 스트링 인풋 필드로 여러 개의 인티저 밸류를 리턴할 수 있게 되어 SMA 셈에 필요한 길이로 쓸 수 있도록 해 줍니다. SMAs 의 “각각의 인풋을 따로 따로”와 같이 편리한 길이 아닌 이 길로 꼭 가야할 까닭은 없지만… 필요하다면 아래와 같이 하면 됩니다:

//@version=4
study("My SMAs", overlay=true)
sma_lengths = input("5, 10, 20, 30, 50", title = "SMA Lengths (separated by comma)")
sma_lengths_array = str.split(str.replace_all(sma_lengths, " ", ""), ",")
sma_len(index) =>
    index > array.size(sma_lengths_array) - 1 ? 10 :
     int(tonumber(array.get(sma_lengths_array, index)))
sma0 = sma(close, sma_len(0))
sma1 = sma(close, sma_len(1))
sma2 = sma(close, sma_len(2))
sma3 = sma(close, sma_len(3))
sma4 = sma(close, sma_len(4))
plot(sma0, color=color.blue)
plot(sma1, color=color.red)
plot(sma2, color=color.green)
plot(sma3, color=color.orange)
plot(sma4, color=color.purple)

We’ve added a time_tradingday 베어리어블을 만들어 트레이딩 데이 시작을 유닉스 타임스탬프로 리턴해 줍니다. 이 또한 유로달러와 같이 오버나잇 심볼 분석에 쓸모가 있습니다. 왜냐면 트레이딩이 일요일 시작하지만 기술적으로는 사실상 월요일이 트레이딩 데이이기 때문입니다.

새로운 time_close() functio펑크션은 지정된 타임프레임 및 세션에서 어떤 바에 대한 클로징 타임을 얻을 수 있게 해 줍니다 (해당 차트의 타임프레임/세션에 대해서먼 쓸 수 있는 옛 time_close 베어리어블과 달리). 이는 드로잉에 특히 쓸모가 있는데 이렇게 하며 미래 라인 및 라벨을 좀 더 자세히 그릴 수 있게 됩니다. JayRogers 의 피봇 포인트 인디케이터에서 실제 상황을 볼 수 있습니다:

https://www.tradingview.com/script/7EwXUkBE-Pivotal-Multi-Pivot-Selector/

study() 의 새로운 format.percent 로 스크립트 아웃풋이 저절로 퍼센티지로 포맷팅이 되도록 할 수 있습니다. 빌트인 Aroon 인디케이터에서 실제 사례를 볼 수 있습니다:

//@version=4
study(title="Aroon", shorttitle="Aroon", overlay=false, format=format.percent, precision=2, resolution="")
length = input(14, minval=1)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
plot(upper, "Aroon Up", color=#FF6A00)
plot(lower, "Aroon Down", color=#0094FF)

세 가지 새로운 베어리어블인, session.ismarket, session.ispremarket, 및 session.ispostmarket 으로 여러분은 커런트 바가 관련된 인트라데이 세션의 부분을 체크할 수 있습니다. 익스텐디드 아워는 오로지 인트라데이 차트에서만 그리고 세팅에서 명확히 해당 옵션이 켜져 있을 때만 보이게 됩니다.

파인 업데이트를 바로 바로 받으려면 당사 유저 매뉴얼에 나오는 리즈 노트를 모니터링 하십시오. 파인코더즈 또한 자신의 PineCoders also broadcast news on updates in their Squawk Box Telegram 채널, 트위터 및 트레이딩뷰의 파인 스크립트 퍼블릭 챗에서 뉴스 업데이트를 브로드캐스트하고 있습니다.

이번 개선 사항이 도움이 되었기를 바라며 앞으로도 이어서 여러분의 피드백을 보내 주시기 바랍니다. 여러분을 위해 트레이딩뷰를 만들고자 합니다.

 

Look first Then leap

트레이딩뷰는 여러분을 위해 만들어졌으므로 트레이딩뷰의 멋진 기능을 최대한 활용하세요
차트 시작