안녕하세요 땡스봇입니다.

금일부터 땡스봇TV 바이빗 거래소 통합계정 및 일반계정 둘다 지원합니다.

기존에는 일반계정(구 바이빗계정)만 지원하였으나

금일 땡스봇TV 버전 2.02부터 통합버전(최신 거래소 가입계정 혹은 일반계정에서 업그레이드한계정)도

사용이 가능합니다.

사용자분들은 땡스봇TV 자동업그레이드 받으신후 사용하시기 바랍니다.

별도에 설정은 없으며 기존처럼 사용하시면됩니다.

감사합니다.

 

안녕하세요 땡스봇입니다.

지난 패치이후에 백테스트 실행시 오류가 있어 오류부분에 대해 

업데이트를 진행하였습니다.

사용자분들은 프로그램을 종료후 1.75버전으로 자동업데이트를 받으신후 사용하시기 바랍니다.

감사합니다.

안녕하세요 땡스봇입니다.

바이빗거래소 장애부분에 대해 업데이트를 완료하였습니다.

현재는 땡스봇 및 땡스봇TV (서버용, 내PC용)정상사용이 가능하므로

프로그램 자동업데이트 받으셔서 사용하시기 바랍니다.

감사합니다.

 

안녕하세요 땡스봇입니다.

현재 땡스봇TV 바이빗 거래소 (내PC용)에서는 정상적으로 사용가능합니다.

단 땡스봇TV 서버용과 땡스봇은 현재 복구중이므로 현재는 사용이 불가합니다.

순차적으로 조속히 업데이트를 완료하도록 하겠습니다.

바이빗 거래소만 해당되는 내용이며 다른거래소는 정상 사용이 가능합니다.

감사합니다.

안녕하세요 땡스봇관리자입니다.

현재 바이빗거래소 API업데이트로 인해 현재 사용이 안되고 있습니다.

현재 패치중이므로 사용자분들은 참고하시기 바라며

업데이트는 몇일 시간이 소요될듯 합니다.

감사합니다.

파인스크립트에서 input 함수는 사용자로부터 입력을 받는 데 사용됩니다.

input 함수는 여러 가지 형태의 입력을 받을 수 있습니다. 다음은 주요 인수와 그 용도입니다

  1. defval : 이는 입력의 기본값을 정의합니다. 사용자가 별도의 값을 입력하지 않은 경우 이 값이 사용됩니다.
  2. title : 이는 입력 필드의 이름을 정의합니다. 이 이름은 Pine Script 에디터의 설정 창에 표시됩니다.
//@version=5
indicator("Thxbot script")

length = input(defval = 14, title = "Length")	//사용자 입력을 받는다.

sma = ta.sma(close, length)
plot(sma)

 

파인스크립트 v5이전에서는 입력 타입을 지정해줘야했지만 v5부터는 defval에 따라 자동으로 type이 정해집니다.

위 소스는 int 정수형을 입력으로 받아서 이평선을 출력하는 예제소스입니다.

 

- 결과 -

 

input 함수는 매우 많이 사용되는 함수 이므로 꼭 활용법에 대해 숙지해놓으시기 바랍니다.

좀더 많은 예제와 설명은 파인스크립트 input 메뉴얼을 참고하세요

https://kr.tradingview.com/pine-script-reference/v5/#fun_input

파인스크립트로 가장 기초적인 sma(단순이동평균), ema (가중이동평균)을 만들어  보도록 하겠습니다.

 

SMA(단순이동평균) - 단순 평균값을 계산하여 만든선입니다.

//@version=5
indicator("Thxbot script")


// sma20=ta.sma(close,20)	//이평선은 파인스크립트 내장함수로 기본으로 제공합니다.

//아래는 기초학습을 위해 파인스크립트 사용자정의 함수로 만들어본 이평선 예제입니다.
sma_custom(src, length) =>
    sum = 0.0
    
    
    for i = 0 to length-1
        sum := sum + src[i]
    sma = sum / length
    sma

sma20 = sma_custom(close, 20)

plot(sma20,color = color.red)

 

 

 

EMA(가중이동평균) - 최근 데이터에 더 큰 가중치를 부여하는 방식계산되는 이동평균

//@version=5
indicator("Thxbot script")

//ema20=ta.ema(close, 20)	//파인스크립트에서 기본적으로 제공하는 ema 내장함수

ema_custom(src, length) =>
    alpha = 2 / (length + 1)
    ema = src
    if na(ema[1])
        ema := src
    else
        ema := alpha * src + (1 - alpha) * ema[1]
    ema

ema20 = ema_custom(close, 20)

plot(ema20,color = color.blue)

 

sma, ema 결과값은 아래와 같습니다.

 

파인스크립트 내에서 기본적으로 제공하는 내장함수를 사용하는것이 더 정확하고 안전하지만,

함수 기본 사용법을 익히기 위해 한번 제작해봤습니다.

 

"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 함수는 첫 번째 인수로 시계열 데이터를 받고, 선택적으로 두 번째 인수를 받아 시계열 데이터에 누락된 값이 있을 경우 이를 대체합니다.

이 함수의 이름은 "na zero"에서 파생된 것으로, 누락된 값을 0으로 대체합니다. 

두 번째 인수가 주어지지 않으면 이 기능이 사용됩니다.

//@version=5
indicator("Thxbot script")

sma20 = ta.sma(close, 20)
plot(close - nz(sma20, close))

이 스크립트는 현재 종가와 20기간 단순 이동평균(SMA) 간의 차이를 플롯합니다. 
만약 이동평균이 유효하지 않다면(sma20가 na라면), 
이동평균을 현재 종가(close)로 가정하고 계산합니다. 
이렇게 nz 함수를 사용하면 누락된 값을 적절하게 처리하고, 연산을 계속할 수 있습니다.

 

 

트레이딩뷰 무료자동매매 : 땡스봇TV

바이빗 거래수수료 20%할인 받을 수 있는 링크

www.bybit.com/en/register?affiliate_id=8325&language=en&group_id=0&group_type=1

 

비트겟 거래수수료 50%할인링크

https://partner.bitget.com/bg/F64QJX

 

바이낸스 레퍼럴링크

레퍼럴코드 : CPA_0069Y9NEXA

https://www.binance.com/en/activity/referral-entry/CPA?fromActivityPage=true&ref=CPA_0069Y9NEXA

 

 

비트맥스 거래수수료 6개월 동안 10% 할인받을 수 있는 링크

https://www.bitmex.com/register/wvtdj4

파인스크립트에서 함수는 작업을 수행하거나 계산을 수행하는데 사용되는 코드 블록입니다. 
함수는 다음과 같이 정의할수 있습니다.

사용자 정의함수

함수명(인자)
함수명(인자1, 인자2)
함수명(인자1, 인자2,...)

위처럼 파라미터는 여러개 지정할수도 있고, 한개만 지정할수도 있습니다.

아래는 일반적인 함수 사용 예시입니다.

- 여러줄 함수

//@version=5
indicator("Thxbot script")

myFunction(x, y) => 
    result = x + y
    result	//이값을 반환합니다.

plot(myFunction(close, open))

 

- 한줄함수

//@version=5
indicator("Thxbot script")

myFunction(x, y) => x + y
plot(myFunction(close, open))

둘의 결과값은 동일합니다.  한줄함수는 함수내용이 간단한경우 사용되며, 여러줄 함수는 여러 수식이 포함되는경우

주로 사용됩니다.

 

- 결과가 여러개인 함수

//@version=5
indicator("Thxbot script")

fun(x, y) =>
    a = x+y
    b = x-y
    [a, b]

[res0, res1] = fun(open, close)
plot(res0)
plot(res1)

결과값을 여러개 받고 싶은 경우 위처럼 사용가능합니다.

 

내장함수

파인스크립트 내에서 기본적으로 제공되는 함수를 내장함수라고 합니다.

위 예시처럼 plot()함수는 내장함수 입니다. 

이후 포스트부터는 자주 사용되는 내장함수를 활용하여 간단한 스크립트를 작성하면서

설명하도록 하겠습니다.

 

 

트레이딩뷰 무료자동매매 : 땡스봇TV

바이빗 거래수수료 20%할인 받을 수 있는 링크

www.bybit.com/en/register?affiliate_id=8325&language=en&group_id=0&group_type=1

 

비트겟 거래수수료 50%할인링크

https://partner.bitget.com/bg/F64QJX

 

바이낸스 레퍼럴링크

레퍼럴코드 : CPA_0069Y9NEXA

https://www.binance.com/en/activity/referral-entry/CPA?fromActivityPage=true&ref=CPA_0069Y9NEXA

 

 

비트맥스 거래수수료 6개월 동안 10% 할인받을 수 있는 링크

https://www.bitmex.com/register/wvtdj4

 

파인스크립트에서 시리즈(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)	//계산한값을 그래프로 나타냅니다.

 

결과


이 스크립트는 현재 바의 종가와 이전 바의 종가 사이의 차이를 계산하고, 

그 차이를 차트에 그립니다. 여기서 close와 difference는 모두 시리즈입니다.

 

파인스크립트는 시리즈로 시작해서 시리즈로 끝난다고 생각하셔도 무방합니다.

그만큼 시리즈를 많이 사용하므로 시리즈에대해서는 100%로 그이상 이해하셔야합니다.

 

트레이딩뷰 무료자동매매 : 땡스봇TV

바이빗 거래수수료 20%할인 받을 수 있는 링크

www.bybit.com/en/register?affiliate_id=8325&language=en&group_id=0&group_type=1

 

비트겟 거래수수료 50%할인링크

https://partner.bitget.com/bg/F64QJX

 

바이낸스 레퍼럴링크

레퍼럴코드 : CPA_0069Y9NEXA

https://www.binance.com/en/activity/referral-entry/CPA?fromActivityPage=true&ref=CPA_0069Y9NEXA

 

 

비트맥스 거래수수료 6개월 동안 10% 할인받을 수 있는 링크

https://www.bitmex.com/register/wvtdj4

파인스크립트에서는 다른 언어와달리 반복문을 거의 사용하지 않으며,  기본으로  for문 정도만 지원합니다.

이유는 주로 시계열 데이터를 처리하기 때문이라고 합니다. 스크립트를 작성하시다 보면 반복문은 거의 사용할 일이 없습니다.

 

 

for문

//@version=5
indicator("Thxbot script")

length = 10
sum = 0.0
for i = 0 to length - 1
    sum := sum + close[i]	//close는 차트의 종가를 나타냅니다.

avg_close = sum / length
plot(avg_close)		//plot함수는 차트에 그래프를 나타냅니다.

이 스크립트는 최근 10일간의 종가(close)의 평균을 계산하고 플롯합니다.

for문은 i = 0부터 시작하여 length - 1까지 반복하며, 각 반복에서는 sum에 i일 전의 종가(close[i])를 더합니다. 반복이 끝나면 sum을 length로 나누어 평균을 계산합니다.

 

결과

파인스크립트에서 조건문은 특정 조건이 참인지 거짓인지에 따라 다른 코드를 실행하는 데 사용됩니다.
조건문은 주로 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함수는 차후에 배우겠지만 간략하게 설명드리면 인자로 입력한 값을 차트에 그려주는 함수입니다.

 

 

트레이딩뷰 자동매매(무료) : 땡스봇TV

바이빗 거래수수료 20%할인 및 증정금 $90 받을 수 있는 링크

www.bybit.com/en/register?affiliate_id=8325&language=en&group_id=0&group_type=1

 

비트겟 거래수수료 50%할인링크

https://partner.bitget.com/bg/F64QJX

 

바이낸스 레퍼럴링크

레퍼럴코드 : CPA_0069Y9NEXA

https://www.binance.com/en/activity/referral-entry/CPA?fromActivityPage=true&ref=CPA_0069Y9NEXA

 

 

비트맥스 거래수수료 6개월 동안 10% 할인받을 수 있는 링크

https://www.bitmex.com/register/wvtdj4

+ Recent posts