macd디버전스에서 매수하고 10틱오르면 청산하는 수식 부탁드립니다.
스탑은 5틱 떨어지면 손절하는 걸로 하겠습니다.
이전에 비슷한 질문을 드렸을때 변수 T 를 선언하신 후에 MACD signal 선을 골든크로스 할때는 T = 1, 데드크로스 할때는 T = -1 이런걸 쓰셨었는데 이번에도 쓰신다면 이걸 왜 쓰는것인가 설명해 주시면 감사하겠습니다.
(MACD가 signal선 상승돌파 시) 현재 MACD값~ 4봉전 MACD값의 최저값을 MACD_n 에저장.
PV_n = Lowest(L,5) 으로 최근 5일의 저가 저장.
(70봉 이내에 1. signal선이 0선 위로 올라온 적이 없고, 2. MACD가 signal 선을 상승돌파 했을때) 이때가 몇봉 전인지 cnt 에 저장.
(가령 cnt가 30이라면) 30봉전 MACD값부터 34봉전 MACD값의 최저값을 MACD_p 에 저장.하고 PV_p = Lowest(L[cnt],5) 으로 이당시 5일의 저가 저장.
If PV_p > PV_n && MACD_p < MACD_n && Crossup(macd,signal) Then
buy();
답변 1
예스스탁
예스스탁 답변
2020-12-08 16:40:34
안녕하세요
예스스탁입니다.
1
이전식에 T는 MACD 골드구간인지 데드구간인지 구분하기 위해 사용하는 변수였습니다.
골드후에 다음 데드까지는 1, 데드후에 다음 골드까지는 -1입니다.
데드구간의 가격과 지표의 최저가를 계산하기 위해 구간을 알기위해 만들어 사용한 변수입니다.
2
Input : shortPeriod(5), longPeriod(20), N(70);
Var : MACDV(0),MACDS(0),L1(0),L2(0),MACD_n(0),PV_n(0),MACD_p(0),PV_p(0),cnt(0);
MACDV = MACD(shortPeriod, longPeriod);
MACDS= EMA(MACDV,5);
L1 = lowest(MACDV,5);
L2 = lowest(L,5);
Condition1 = CrossUp(MACDV,MACDS);
if Condition1 == true Then
{
MACD_n = L1;
PV_n = L2;
MACD_p = 0;
PV_p = 0;
For cnt = 1 to N
{
if Condition1[cnt] == true and MACDS[cnt] < 0 Then
{
MACD_p = L1[cnt];
PV_p = L2[cnt];
}
if MACDS[cnt] > 0 Then
cnt = N+1;
}
if PV_p > 0 and PV_p > PV_n && MACD_p < MACD_n Then
Buy();
}
즐거운 하루되세요
> 차티스트박찬호 님이 쓴 글입니다.
> 제목 : 매수 시스템 질문드립니다.
> macd디버전스에서 매수하고 10틱오르면 청산하는 수식 부탁드립니다.
스탑은 5틱 떨어지면 손절하는 걸로 하겠습니다.
이전에 비슷한 질문을 드렸을때 변수 T 를 선언하신 후에 MACD signal 선을 골든크로스 할때는 T = 1, 데드크로스 할때는 T = -1 이런걸 쓰셨었는데 이번에도 쓰신다면 이걸 왜 쓰는것인가 설명해 주시면 감사하겠습니다.
(MACD가 signal선 상승돌파 시) 현재 MACD값~ 4봉전 MACD값의 최저값을 MACD_n 에저장.
PV_n = Lowest(L,5) 으로 최근 5일의 저가 저장.
(70봉 이내에 1. signal선이 0선 위로 올라온 적이 없고, 2. MACD가 signal 선을 상승돌파 했을때) 이때가 몇봉 전인지 cnt 에 저장.
(가령 cnt가 30이라면) 30봉전 MACD값부터 34봉전 MACD값의 최저값을 MACD_p 에 저장.하고 PV_p = Lowest(L[cnt],5) 으로 이당시 5일의 저가 저장.
If PV_p > PV_n && MACD_p < MACD_n && Crossup(macd,signal) Then
buy();