minimimi
[TradingView] 07.파인 스크립트 조건문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script) 본문
[TradingView] 07.파인 스크립트 조건문 - 지표표시부터 자동매매까지 파인 스크립트와 함께(with pine script)
99mini 2023. 4. 16. 23:291. Bool 타입과 비교 연산자
참과 거짓의 상태를 나타내기 위한 bool
타입이 존재합니다. bool
타입은 true
, false
, na
세 가지 중 하나의 상태를 가집니다.
✅ na
키워드
변수에 할당된 값이 없음을 나타내는 "사용할 수 없음" 키워드입니다.
비교 연산자를 통해서 값을 비교하면 bool
값을 반환하게 됩니다.
비교 연산자 | 의미 |
---|---|
== | 같다. |
!= | 같지 않다. |
> | 크다 |
< | 작다 |
>= | 크거나 같다. |
<= | 작거나 같다. |
//@version=5
indicator("내 스크립트", overlay=true)
down = close < open
plotshape(down, style=shape.circle, location=location.belowbar)
down = close < open
에서 종가가 시가보다 작은경우 down
에 false
를 아닌 경우 true
를 저장합니다.plotshape
함수의 첫 번째 인자에 series
값을 넣어주어 참인 경우에 그래프에 그리게 됩니다.
2. 조건문
var_declarationX = if condition
var_decl_then0
var_decl_then1
…
var_decl_thenN
else if [optional block]
var_decl_else0
var_decl_else1
…
var_decl_elseN
else
var_decl_else0
var_decl_else1
…
var_decl_elseN
return_expression_else
var_declarationX
— 이 변수는 if
스테이트먼트의 값을 받습니다condition
— 조건이 참이면 'then' 블록 (var_decl_then0
, var_decl_then1
등) 의 로직이 쓰이게 됩니다.
조건이 거짓이면 'else
' 블록 (var_decl_else0
, var_decl_else1
등) 의 로직이 쓰이게 됩니다.return_expression_then
, return_expression_else
— then
블록 또는 else
블록 끝 expression
은 그 문장의 최종 값을 리턴합니다. 변수 선언이 마지막에 나오면 그 값이 결과값이 됩니다.if
문의 리턴값 타입은 return_expression_then
과 return_expression_else
type
(같은 타입이어야 함: else
블록에 string
밸류이면서, then
블록에서 integer
를 리턴할 수 없습니다) 에 달려 있습니다.
앞선 코드를 if
문을 이용해서 수정하겠습니다.
// @version=5
indicator("내 스크립트", overlay=true)
my_color = color(na)
isDown = close < open
if isDown
my_color := color.blue
else
my_color := color.red
plotshape(close, style=shape.circle, location=location.belowbar ,color = my_color)
isDown
변수에 음봉이면 참을 양봉이면 거짓을 저장합니다. 그리고 양봉이면 빨간색을 음봉이면 파란색으로 그래프에 그려주겠습니다.
3. 삼항 연산자
expr1 ? expr2 : expr3
expr1
는 if
문의 condition
과 동일한 역할을 합니다. 따라서 bool
타입이 들어가게 되고 참이면 expr2
을 수행하고 거짓인 경우 expr3
를 수행합니다.
//@version=5
indicator("?:")
// 시가가 종가와 크로스를 만들 때 원을 그립니다.
s2 = ta.cross(open, close) ? math.avg(open,close) : na
plot(s2, style=plot.style_circles, linewidth=2, color=color.red)
// 삼항 연산자를 연속적으로 사용할 수 있습니다.
c = timeframe.isintraday ? color.red : timeframe.isdaily ? color.green : timeframe.isweekly ? color.blue : color.gray
plot(hl2, color=c)
expr2
와expr3
자리에 또 다시 삼항 연산자가 올 수도 있습니다. 연쇄적으로 첫 번째 표현에는 다시 bool
타입의 비교값이 오고 ?:
에 순서대로 표현을 적어주면됩니다.
4. 논리 연산자
and
, or
, not
연산자를 이용하여 bool
타입의 값을 계산할 수 있습니다.
and
는 and
로 연결된 모든 값이 참이어야 참을 반환하고 하나라도 거짓이 있을 경우 거짓을 반환합니다.
false and false ▶️ false
false and true ▶️ false
true and false ▶️ false
true and true ▶️ true
or
는 or
로 연결된 값 중 하나라도 참이면 참을 반환하고 모두 거짓인 경우 거짓을 반환합니다.
false or false ▶️ false
false or true ▶️ true
true or false ▶️ true
true or true ▶️ true
not
연산자는 참은 거짓으로 거짓은 참으로 변환해줍니다.
not false ▶️ true
not true ▶️ false
✅ 파인 스크립트 공식 레퍼런스 메뉴얼
https://kr.tradingview.com/pine-script-reference/v5/
✅ 트레이딩 뷰 유료플랜을 원하신다면 아래의 링크로 가입해주세요.
https://kr.tradingview.com/gopro/?share_your_love=itman390
저와 여러분 모두 최대 30달러를 지급 받을 수 있습니다!