create account

빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #42- 이상한 보조지표 만들기 II (Moving Average) by roostermine

View this thread on: hive.blogpeakd.comecency.com
· @roostermine · (edited)
$1.43
빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #42- 이상한 보조지표 만들기 II (Moving Average)
---

어제 만든 구간별로 변하는 (!) 보조지표를 사용 가능하게 바꿔보아요! 

---

개인 프로젝트 느낌으로 별 생각 없이 만들었는데.... 아니... 근데 어제 무슨 생각으로 만들었는지... 오늘 한참 째려보다가 이걸 우찌 써야할까... 라는 생각을 했습니다 ㅎㅎ.... (진짜 이걸로 돈을 벌 수 있으면... 이상한.....)

--- 

### 복습

![](https://cdn.steemitimages.com/DQmbAs9M4yUhEbefJgciTLPDYfv6rBhDmE3Ed2iGVfMFUTZ/image.png)

워낙 직관적으로 잘 만들어서 다시 설명할 부분이 많진 않습니다. 

비추세 구간에서는 초록색 밴드를 그려주고, 추세 구간에서는 빨간색 선을 그려줍니다. 

---

원래는 비추세 구간에서 벤드 안에서 가격이 머무른다 를 표현을 하려 했으나... 저는 벤드로 비추세 매매를 (하단 매수, 상단 매도) 할 수 있는 방법이 안보이더라구요. 

그래서! 손절선이 상황에 따라 변하는 모델로 만들어보자! 라는 생각이 들더군요! 

---

>//plot(notrendhigh, style = cross, color = green, linewidth = 2 )

일단 윗선은 필요 없으니깐, 없에줍니다! 

---

![](https://cdn.steemitimages.com/DQmRMGm9UmhiQ9dbYCM9yVXnB7miLJEz7XPK4mnVKYcqLLR/image.png)

![](https://cdn.steemitimages.com/DQmVJ2qaR2iu3cr4j1u41HXrWDs6DMzXkwU2ogCF7tqm5vr/image.png)

신기하게, 손절이 비추세 구간에서는 길어지고, 추세 구간에서는 짧아지니, 추세가 쉬어 가는 구간에 손절이 벌어지면서 손절이 안되게 됩니다 ㄷㄷ... 

---

이제 진입 구간만 살짝 조정을 해주면 되는데... 음.. 오늘 주제가 이동평균선인 만큼 이동평균선과 캔들, 그리고 당연히 붙는 ATR 로만 해결해보도록 하죠. 

---

### 변동성에 대한 연구

이미 변동성에 대한 파트를 여러번 해보았으나, 이번에는 표준 편차를 이용하여 한 단계 복잡하게 생각해보겠습니다. 

---

### 세팅

>strategy("Awesome SteemCoinPan #21", default_qty_type=strategy.cash, default_qty_value=1000, initial_capital=1000, currency="USD")

뭐 일단 세팅~ 세팅~ 21번째, overlay 세팅을 넣지 않았다는점 참고해주세요! 따로 변동성에 대한 수치만 시각화하여, 실제로 어떻게 움직이는지, 어떻게 활용할 수 있는지 찾아볼거랍니다!

---

>ATRlonginput = input(20)
ATRshortinput = input(5)

일단 ATR 에 대한 인풋 값을 넣어주고, 

 
---

>ATRstdev = stdev(atr(ATRlonginput),ATRlonginput )

표준 편차에 대한 함수를 추가해줍니다. 이제 ATRstdev 를 불러오면, 현재 긴 ATR 값에 대한 표준편차를 불러와유~

---

>ATRmult = input(1)

보통 표준편차를 활용할 때에는 표준편차 앞에 계수를 붙여, 2시그마, 1시그나 값 등으로 사용하기에, 저도 전문성 있는 척 하려구.. ㅎㅎㅎ 계수를 넣었습니다. 

---

>plot(atr(ATRshortinput))
plot(atr(ATRlonginput)+ATRstdev * ATRmult )
plot(atr(ATRlonginput)-ATRstdev * ATRmult )

그리고 표준 편차 값들을 전부 넣은 상태에서 그래프로 표현해줍니다. 

---

![](https://cdn.steemitimages.com/DQmSJGuhAFoKBqTe5a2C2HzKnx8wsPYzRLe1ACv1trRVLzB/image.png)

이런식으로 새로운 텝에 표준 편차를 씌운 ATR 벤드와 단기 ATR 값을 표현하여, 단기적 ATR 이 평균적 + 표준 편차 까지 더하여 노이즈를 없엔 장기 ATR 값에 비해서 어떠한 위치에 있는 지를 볼 수 있습니다. 

---

![](https://cdn.steemitimages.com/DQmZ2iJxLVbgBarjFTMpsTovGd8ttFhSSvXdstiK77n8VsG/image.png)

좀 더 확대해서 보면 이러한 모습으로 보입니다. 물론 추가적인 시각화를 할 것이죠. 

---

사실 현 상태에서 선의 색깔을 바꿔서 선을 연구한다든가 를 해야할 이유는 보이지 않고, 단기 ATR 이 장기 ATR 벤드보다 위에 있느냐, 아래 있느냐 정도만 확인하면 될 것 같습니다. 

---

>ATRhighvolatility = atr(ATRlonginput) + ATRstdev * ATRmult < atr(ATRshortinput) 
ATRlowvolatility = atr(ATRlonginput) - ATRstdev * ATRmult > atr(ATRshortinput)


그래서 변동성이 작을 때의 변수를 단기 ATR 이 벤드보다 아래에 있다/ 변동성이 클 때의 변수를 단기 ATR 이 벤드보다 위에 있다를 표현해주고,

>bgcolor(color = ATRhighvolatility ?	#808080 : na, transp=85)
bgcolor(color = ATRlowvolatility ? #FF00FF : na, transp=85)

차트에 색깔로 표현해줍니다.

---

![](https://cdn.steemitimages.com/DQmbwNdQCv751ZZZhrNrYcnKjWFPybVcEMn7Khc3dT5wBEa/image.png)

이런식으로 저변동성 구간에는 보라색으로 / 고변동성 구간에는 회색으로 표현됩니다. 

---

![](https://cdn.steemitimages.com/DQmSKhH2Dt4cLMgcHmrPrffSt66fT8QHhATadoifcaqDfAP/image.png)

이제 한 시간 봉 과 같은 단기 봉에서 매번 발생하는 오류가 발생합니다. 변동성이 일정하게 나타나지 않아, 상대적으로 변동성이 약해진 구간에서는 조금만 떨려도 크게 움직인다는 점이죠. 

위 차트를 보시면 분명 첫 번째 동그라미랑, 두 번째 동그라미의 변동성은 다르지만, 지표상으로는 똑같이 회색 으로 표현되어 있습니다. 

---

### 뭉개기

옳바른 단어 선택인지는 모르겠는데, 이럴 경우 저는 아예 표준 편차에 대한 계수, 평균에 대한 길이를 길게 줘서, 고변동성이 나타나고 부터는 표준 편차가 인위적으로 일정 시간 동안 벌리게 하는 작업을 해줍니다. 즉, 단순하게 민감도를 아예 없에버리는 작업 입니다. 

그리고 단기 값들은 더 단기로 낮춰, 긴 값들 보다 월등히 높은 단기 값이 나오면 바로 반응할 수 있게끔 작업해줍니다. 

---

>ATRlonginput = input(200)
ATRshortinput = input(3)
ATRmult = input(10)

코드로 나타내면, ATR 장기 값과 ATR 장기 벤드 계수를 10배 곱해주고, ATR 단기 값은 5 에서 3으로 줄여줍니다. 

---

![](https://cdn.steemitimages.com/DQmYYNFK5idXNep5d7cKTYCmcnNJPqV3dEopFAwbT7r1et9/image.png)

그럼 큰 추세 이후에는 아예 값이 사라져 버립니다. 예전에 잠깐 소개 시켜드린 추세에서의 변동성에 대한 조정을 아예 표준 편차를 이용해서 설명하는 것이죠. 

큰 추세가 발생하면 표준 편차가 느리게 넓어지니깐 (장기 값을 사용하기에) 느리게 넓어지는 동안에는 진입을 하는 것을 방지할 수 있습니다. 

--- 

반대로 말하자면, 여기서 발생하는 시그널은 조정을 충분히 거친 후 발생하는 진짜 시그널(?) 이 되는 것이죠. 

이제 이 변동성에 대한 부분을, 어제 제작한 스크립트로 옮겨줍니다. 

---

![](https://cdn.steemitimages.com/DQmdYto26j37GaxiiJBJXZnreTpZiUvzK5hfKd2qDtq5eJ8/image.png)

일단 진입에 대한 차트에 그려진 것을 기반으로 제가 진입 룰을 제작해 보았습니다. 

---

# 진입 조건

1. 이전캔들은 흰색 배경, 현재 캔들은 회색 배경
2. 양봉
3. 빨간색 선 위에 있어야 한다. 

---

# 청산 조건

빨간색 선 또는 초록샌 선 아래에서 종가를 만든다.

--- 

### 진입 조건 코딩

일단 진입은 간단합니다! 

> buy1 = ATRhighvolatilitya and not ATRhighvolatilitya[1]

(어제 코드에도 ATRhighvolatility 가 있어, 오늘 추가한 ATR 에 대한 값에는 a 를 붙였습니다)

현재 캔들은 회색 배경 = ATRhighvolatilitya 이여야 하며, 이전 캔들은 ATRhighvolatiltya 가 아니여야 한다. 

---

>  buy2 = close > open

양봉이여야 합니다!

--- 

> buy3 = close > sma(close,MAinput) 

빨간선위에 있어야 한다. 빨간선은 이동 평균선이기에... 어제 만든 변수를 가지고 오고요~

---

> Buy = buy1 and buy2 and buy3

그리고 위 세 가지 조건들을 합해줍니다. 

> bgcolor(color = Buy ?	#808080 : na, transp=85)

그리고 이제 변동성에 대한 시그널을 필요 읎으니, 매수 시그널에 대한 시그널을 배경화면에 나오도록 바꿔줍니데이~ 

---

![](https://cdn.steemitimages.com/DQmUC84H8yXavF7ZpJSRdRj9tHjG8ZqWXestUpZFDdBZXvo/image.png)


옥헤이~ 진입에 대한 부분은 된 것 같습니다

---

청산에 대한 부분이 이제 예전에 하던 작업보다 복잡해집니다. 상황에 따라 변하기 때문이죠! 즉, 상황에 따라 손절을 다르게 해주는 작업이 필요합니다! 

만약, 고변동성 구간이라면, 빨간색 선을 넘으면 청산.
만약, 저변동성 구간이라면, 초록색 선을 넘으면 청산.

---

>stop1 = close < sma(close,MAinput) and ATRhighvolatility
stop2 = close < Channellow and ATRlowvolatility 

어차피 Strategy 를 만들어서, 위 조건 중 하나라도 부합할 경우 모든 포지션을 청산해라 ! 라는 명령을 내릴 것이기에, 위 상황에 맞는 코드를 써줍니다. 

Stop = stop1 or stop2

그리고 위 조건 중 하나라도 맞으면 STop~ 이라는 코드를 적어줍니다. 

--- 

### 전략 구성

>if (Buy)
    strategy.entry("long", strategy.long)
if (Stop)
    strategy.close("long")

이번에도 역시 전략으로 만들어주시고~

---

![](https://cdn.steemitimages.com/DQmRsXFSexUZ47zm9sBUzuYCU46x1F5ZgZ3JioxasRKXUfN/image.png)

크흐~ 제가 원하는 모든 자리에서 진입하고, 청산하고 ! 

---

![](https://cdn.steemitimages.com/DQmRibbeQXZ4vVJs5364MYZmnJdr7KazYHoaN3Z2SsuQnFY/image.png)

스펙은 생각보다 신기하게 나오네요. 모든 전략을 1시간 봉으로 진행하고 있어, 보통 수익률 분포가 비슷햇는데 (2018년 1월 자료부터 트레이딩뷰가 제공하고 있어, 최악의 하락장부터 백테스팅이 시작됩니다.) 이번에는 중간 지점에서 오르다가, 쭉 미끌어지고 다시 올라오네요. 

진입 횟수도 쓸만하고, 문제가 될만한 부분은 최대 손실률 정도. 

---

다음 시간에는 오늘 전략으로 구성한 보조지표에 어디가 문제인지, 문제를 어떻게 고쳐야 하는지 까지, 그리고 별 문제가 없다면 최적화까지 해보도록 하겠습니다. 

---



질문, 댓글, 팔로우는 감사합니다!

새로운 아이디어, 종목 추천 등은 언제나 환영입니다!

---
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 32 others
properties (23)
authorroostermine
permlink41-ii-moving-average
categorysct
json_metadata{"tags":["sct","zzan","liv","palnet","steemleo"],"image":["https://cdn.steemitimages.com/DQmbAs9M4yUhEbefJgciTLPDYfv6rBhDmE3Ed2iGVfMFUTZ/image.png","https://cdn.steemitimages.com/DQmRMGm9UmhiQ9dbYCM9yVXnB7miLJEz7XPK4mnVKYcqLLR/image.png","https://cdn.steemitimages.com/DQmVJ2qaR2iu3cr4j1u41HXrWDs6DMzXkwU2ogCF7tqm5vr/image.png","https://cdn.steemitimages.com/DQmSJGuhAFoKBqTe5a2C2HzKnx8wsPYzRLe1ACv1trRVLzB/image.png","https://cdn.steemitimages.com/DQmZ2iJxLVbgBarjFTMpsTovGd8ttFhSSvXdstiK77n8VsG/image.png","https://cdn.steemitimages.com/DQmbwNdQCv751ZZZhrNrYcnKjWFPybVcEMn7Khc3dT5wBEa/image.png","https://cdn.steemitimages.com/DQmSKhH2Dt4cLMgcHmrPrffSt66fT8QHhATadoifcaqDfAP/image.png","https://cdn.steemitimages.com/DQmYYNFK5idXNep5d7cKTYCmcnNJPqV3dEopFAwbT7r1et9/image.png","https://cdn.steemitimages.com/DQmdYto26j37GaxiiJBJXZnreTpZiUvzK5hfKd2qDtq5eJ8/image.png","https://cdn.steemitimages.com/DQmUC84H8yXavF7ZpJSRdRj9tHjG8ZqWXestUpZFDdBZXvo/image.png","https://cdn.steemitimages.com/DQmRsXFSexUZ47zm9sBUzuYCU46x1F5ZgZ3JioxasRKXUfN/image.png","https://cdn.steemitimages.com/DQmRibbeQXZ4vVJs5364MYZmnJdr7KazYHoaN3Z2SsuQnFY/image.png"],"app":"steemcoinpan/0.1","format":"markdown"}
created2019-07-17 13:20:48
last_update2019-07-17 13:21:30
depth0
children2
last_payout2019-07-24 13:20:48
cashout_time1969-12-31 23:59:59
total_payout_value1.096 HBD
curator_payout_value0.335 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,978
author_reputation32,036,439,081,540
root_title"빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #42- 이상한 보조지표 만들기 II (Moving Average)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id88,404,567
net_rshares3,979,006,463,161
author_curate_reward""
vote details (96)
@lovelyyeon.sct ·
와~ 코딩이랑 차트랑 같이 있으니 볼때마다 신기하네요. 루스터님 지금까지 만드신거 중에 좋은 몇개를 글말미에 신호로 넣어보시는건 어떨까요? ^^
properties (22)
authorlovelyyeon.sct
permlinkpusmso
categorysct
json_metadata{"tags":["sct"],"app":"steemcoinpan/0.1"}
created2019-07-17 15:53:21
last_update2019-07-17 15:53:21
depth1
children1
last_payout2019-07-24 15:53:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length80
author_reputation371,686,959,467,496
root_title"빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #42- 이상한 보조지표 만들기 II (Moving Average)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id88,410,468
net_rshares0
@roostermine ·
헤헤 감사합니다~

일봉 기준으로 한다면 꽤나 쓸만하겠으나... 지금 전략들을 한시간 기준으로 만들고 있어서 아마 포스팅을 할 때 쯤이면 시그널이 유효하지 않을 것 같아요 ㅠㅠㅠ 

구렇다고 일봉으로 진행 하기에는 너무 표본이 적어서 애매하네요... 고민해보겠습니가! 

Posted using [Partiko iOS](https://partiko.app/referral/roostermine)
properties (22)
authorroostermine
permlinkroostermine-re-lovelyyeon-sct-pusmso-20190718t031432461z
categorysct
json_metadata{"app":"partiko","client":"ios"}
created2019-07-18 03:14:33
last_update2019-07-18 03:14:33
depth2
children0
last_payout2019-07-25 03:14:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length220
author_reputation32,036,439,081,540
root_title"빙구처럼 트레이딩: 코인 차트 "처음부터" 공부하기 #42- 이상한 보조지표 만들기 II (Moving Average)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id88,431,541
net_rshares0