"NaN"은 "Not a Number"의 약자로, 숫자로 정의되지 않은 값을 나타냅니다. 일반적으로 연산이 정의되지 않은 경우 이 값이 발생합니다.
예를 들어, 0을 0으로 나눌 때의 결과는 "정의되지 않음"으로 간주되고, 이러한 경우에 NaN 값이 반환됩니다.
또는 NaN값과 연산을 하는경우에도 NaN값을 리턴합니다
//@version=5
indicator("Thxbot script")
a=na +1 //na는 내장변수입니다.(NaN값)
plot(a)
결과 : 아무런 값도 출력되지 않습니다.
na함수
na 함수는 시계열 데이터에서 누락된 값이나 undefined 값이 있는지 확인하는 데 사용됩니다.
na는 Not Available의 약자입니다.
예제1:
//@version=5
indicator("Thxbot script")
x = na(close[1]) ? close : na
plot(x)
이 스크립트에서 na(close[1])는 이전 (1 기간 전)의 종가(close[1])가 누락되었는지 확인합니다. 만약 누락되었다면(na(close[1])가 참이라면), 현재 종가(close)를 x에 할당하고, 그렇지 않다면 na (즉, 누락된 값)를 x에 할당합니다.
따라서 이 스크립트는 이전 종가가 누락된 경우에만 현재 종가를 플롯하고, 그렇지 않은 경우에는 값을 플롯하지 않습니다.
예제2:
//@version=5
indicator("Thxbot script")
sma20 = ta.sma(close, 20) //파인스크립트 버전5이전에는 sma(close,20) 이렇게 작성
plot(na(sma20) ? na : sma20)
이 예제에서는 20기간의 단순 이동 평균(SMA)을 계산합니다. 그런 다음, na 함수를 사용하여 이동 평균이 유효한지 확인합니다. 만약 20기간의 데이터가 충분하지 않아 이동 평균을 계산할 수 없다면(na(sma20)가 참이라면), 그래프에 아무것도 플롯하지 않습니다(na). 그렇지 않다면, 이동 평균을 플롯합니다(sma20).
이렇게 na 함수를 사용하면 충분한 데이터가 없어 계산을 할 수 없는 초기 기간 동안에는 이동 평균을 플롯하지 않는 등, 누락된 데이터를 적절하게 처리할 수 있습니다.
nz함수
nz 함수는 "na" 함수와 유사한 역할을 하지만, 누락된 값을 다른 값으로 대체하는 기능을 가지고 있습니다.
nz 함수는 첫 번째 인수로 시계열 데이터를 받고, 선택적으로 두 번째 인수를 받아 시계열 데이터에 누락된 값이 있을 경우 이를 대체합니다.
이 스크립트는 현재 종가와 20기간 단순 이동평균(SMA) 간의 차이를 플롯합니다. 만약 이동평균이 유효하지 않다면(sma20가 na라면), 이동평균을 현재 종가(close)로 가정하고 계산합니다. 이렇게 nz 함수를 사용하면 누락된 값을 적절하게 처리하고, 연산을 계속할 수 있습니다.
파인스크립트에서 시리즈(series)는 시간에 따라 변화하는 값의 순서를 나타내는 데이터 유형입니다.
이는 주로 가격 데이터와 같은 시계열 데이터를 다루는 데 사용됩니다.
예를 들어, close, open, high, low와 같은 기본 제공 변수들은 모두 시리즈입니다.
시리즈는 일련의 값들을 나타내며, 각 값은 특정 시간에 해당합니다. 시리즈의 가장 최근 값은 현재 시간(즉, 현재 바)에 해당하며, 이전의 값들은 과거의 시간에 해당합니다.
시리즈를 사용하면 시간에 따른 데이터의 변화를 쉽게 처리할 수 있습니다. 예를 들어, 이동 평균을 계산하거나 과거의 가격을 현재 가격과 비교하는 등의 작업을 할 수 있습니다.
시리즈의 특정 값을 접근하려면 대괄호([])를 사용하고, 대괄호 안에 원하는 시간을 지정합니다. 0은 현재 바를, 1은 이전 바를, 2는 그 이전 바를 가리킵니다.
예를 들어, close[1]은 이전 바의 종가를 나타냅니다.
다음은 시리즈를 사용하는 간단한 파인스크립트 예제입니다
//@version=5
indicator("Thxbot script")
difference = close - close[1] // 현재 바의 종가와 이전 바의 종가의 차이를 계산합니다.
//difference = close[0] - close[1] // 위 소스와 현재 소스는 같은 결과값을 보여줍니다.
plot(difference) //계산한값을 그래프로 나타냅니다.
파인스크립트에서 조건문은 특정 조건이 참인지 거짓인지에 따라 다른 코드를 실행하는 데 사용됩니다. 조건문은 주로 if, else if, else 키워드를 사용하여 작성되며, 조건은 대개 비교 연산자나 논리 연산자를 사용하여 표현합니다.
if문
//@version=5
indicator("Thxbot script")
a=100
if a>=100
a := 200 //재할당이므로 (:=)를 사용
결과
200
if, else if
//@version=5
indicator("Thxbot script")
a=100
if a > 100
a := 200 //재할당이므로 (:=)를 사용
else if a <= 100
a := 50 //재할당이므로 (:=)를 사용
결과
50
if, else if, else
//@version=5
indicator("Thxbot script")
a=100
if a > 100
a := 200 //재할당이므로 (:=)를 사용
else if a < 100
a := 50 //재할당이므로 (:=)를 사용
else
a := 1000
plot(a)
결과
1000
아래는 트레이딩뷰에 스크립트를 넣고 결과 화면입니다. plot함수는 차후에 배우겠지만 간략하게 설명드리면 인자로 입력한 값을 차트에 그려주는 함수입니다.
조건에 따라 두 개의 다른 값을 선택할 수 있게 합니다.
condition ? result1(true) : result2(false)
condition이 참이면 result1실행, 거짓이면 result2실행
예)
age=26
whatAge=(age >21) ? "Up" : "Down"
결과 : "Up"
NFT(Non-Fungible Token)는 블록체인 기술을 기반으로 한 고유하고 교환 불가능한 디지털 자산입니다.
암호화폐와 관련된 이 개념은 대부분의 암호화폐와는 달리, 각 NFT는 고유한 가치를 가지며 서로 대체할 수 없습니다. 일반적인 암호화폐(예: 비트코인, 이더리움)는 대체 가능한 자산으로 간주되며, 어떤 단위도 다른 단위와 동일한 가치를 가집니다.
NFT는 주로 디지털 아트, 게임 아이템, 수집품, 음악, 도메인 이름 등 다양한 디지털 자산의 소유권을 나타내기 위해 사용됩니다.
블록체인 기술의 활용으로 인해 NFT는 소유권 및 출처를 추적할 수 있으며, 저작권과 소유권에 대한 높은 수준의 투명성을 제공합니다.
고유성: 각 NFT는 고유한 식별자를 가지며, 그에 따라 고유한 가치를 가집니다.
불가연성: 블록체인 기술을 활용하여 NFT의 출처와 소유권 정보가 영구적이고 변경 불가능하게 저장됩니다.
소유권: NFT는 소유권을 증명하며, 전송 가능하고 거래 가능한 디지털 자산입니다.
투명성: NFT 트랜잭션은 블록체인에 기록되므로 투명하게 추적할 수 있습니다.
NFT는 이더리움 블록체인을 기반으로 한 ERC-721 및 ERC-1155 토큰 표준을 사용하여 구현되며, 다른 블록체인 플랫폼에서도 지원됩니다. 최근 몇 년 동안 NFT 시장은 급격한 성장을 경험했으며, 디지털 아트 및 수집품 시장의 혁신과 함께 큰 주목을 받았습니다.
대표적인 NFT관련 프로젝트는 다음과 같습니다.
이더리움 (ETH): 이더리움은 가장 널리 사용되는 스마트 계약 플랫폼으로, ERC-721 및 ERC-1155 토큰 표준을 통해 NFT를 구현합니다. 대부분의 NFT 프로젝트와 거래가 이더리움 블록체인에서 발생합니다.
플로우 (FLOW): 플로우는 NFT 및 디지털 자산에 특화된 블록체인으로, 크립토 키티(CryptoKitties) 개발자가 만들었습니다. 이 플랫폼은 NBA Top Shot, UFC, Dr. Seuss 등의 인기 프로젝트를 지원합니다.
엔진코인 (ENJ): 엔진코인은 NFT 및 디지털 자산을 생성, 관리, 거래할 수 있는 플랫폼인 엔진(Enjin)의 기반 토큰입니다. 게임 아이템, 가상 상품 및 디지털 수집품을 만들고 거래하는 데 사용됩니다.
디센트럴랜드 (MANA): 디센트럴랜드는 가상 현실 플랫폼으로, 사용자가 가상 세계에서 땅을 소유하고, 건물을 짓고, 아바타를 사용하여 상호 작용할 수 있습니다. MANA 토큰은 플랫폼에서의 거래 및 상호 작용에 사용되는 토큰입니다.
샌드박스 (SAND): 샌드박스는 가상 세계를 구축하고, 게임을 만들고, 디지털 자산을 거래하는 데 사용되는 플랫폼입니다. SAND 토큰은 플랫폼 내에서 교환 및 거래를 위한 토큰입니다.
이 외에도 Rarible (RARI), Chiliz (CHZ), Axie Infinity (AXS) 등 다양한 NFT 관련 코인이 있습니다.