안녕하세요, 항상 도움 감사드립니다.
아래는 Gambler님 블로그의 알렉산더 엘더 임펄스 5분봉용 시스템 식입니다.
기간을 여러가지로 해 보면 3번째, 4번째 봉 등 수식의 계산기간을 만족하기 전에 진입신호가 발생하는데, 오류로 생각되며 Maxbarsback을 어떻게 사용해야 이 신호를 없앨수 있는지 모르겠습니다.
그리고 왜 이런 신호가 발생하는지 이유도 궁금합니다. 조언 부탁드립니다.
Input : EmaLen(280), macd1(40), macd2(90), macd3(80), Mult(4), stopPer(0.8);
var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0);
var : LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0);
# intermediate timeframe
emaV = ema(C,EmaLen);
MacdV = macd(macd1,macd2);
MacdS = ema(MacdV,macd3);
MacdOsc = MacdV-MacdS;
# intermediate timeframe * 5
LemaV = ema(C,EmaLen*Mult);
LmacdV = macd(macd1*Mult,macd2*Mult);
LmacdS = ema(MacdV*Mult,macd3*Mult);
LmacdOsc = (LmacdV-LmacdS)*Mult;
# 매수진입
If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then {
if CrossUp(C, emaV) Then
buy();
}
# 매도진입
If LemaV < LemaV[1] and LmacdOsc < LmacdOsc[1] then {
if Crossdown(C, emaV) Then
sell();
}
SetStopLoss(stopPer);
SetStopEndofday(1500);
답변 2
예스스탁
예스스탁 답변
2024-11-28 09:31:02
안녕하세요
예스스탁입니다.
수식에 사용된 MACD는 지수이동평균기준입니다.
지수이동평균은 계산방법이 아래와 같습니다.
EMA = 금일 종가 * EP + 전일의 지수 이동평균 * (1-EP)
※ EP(평활계수) = 2/(기간 + 1)
지수이평에서 지정하는 기간값은 봉수가 아닙니다.
현재값과 전봉값의 비율을 결정하는 평활계수를 계산하기 위한 값입니다.
지수이평은 보통 2번째 봉부터 그려지고
수식내 이전값 참조등에 따라 3번째나 4번째부터 신호가 발생할 수 있습니다.
즐거운 하루되세요
> 램프 님이 쓴 글입니다.
> 제목 : Maxbarsback 질문입니다.
> 안녕하세요, 항상 도움 감사드립니다.
아래는 Gambler님 블로그의 알렉산더 엘더 임펄스 5분봉용 시스템 식입니다.
기간을 여러가지로 해 보면 3번째, 4번째 봉 등 수식의 계산기간을 만족하기 전에 진입신호가 발생하는데, 오류로 생각되며 Maxbarsback을 어떻게 사용해야 이 신호를 없앨수 있는지 모르겠습니다.
그리고 왜 이런 신호가 발생하는지 이유도 궁금합니다. 조언 부탁드립니다.
Input : EmaLen(280), macd1(40), macd2(90), macd3(80), Mult(4), stopPer(0.8);
var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0);
var : LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0);
# intermediate timeframe
emaV = ema(C,EmaLen);
MacdV = macd(macd1,macd2);
MacdS = ema(MacdV,macd3);
MacdOsc = MacdV-MacdS;
# intermediate timeframe * 5
LemaV = ema(C,EmaLen*Mult);
LmacdV = macd(macd1*Mult,macd2*Mult);
LmacdS = ema(MacdV*Mult,macd3*Mult);
LmacdOsc = (LmacdV-LmacdS)*Mult;
# 매수진입
If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then {
if CrossUp(C, emaV) Then
buy();
}
# 매도진입
If LemaV < LemaV[1] and LmacdOsc < LmacdOsc[1] then {
if Crossdown(C, emaV) Then
sell();
}
SetStopLoss(stopPer);
SetStopEndofday(1500);
답변 감사드립니다. 이평의 주기값 이전에도 신호가 발생할 수 있는 부분 잘 알겠습니다.
그렇다면 강제로 차트 시작지점에서 n봉 이후의 신호부터 진입하도록 해야 될 것 같은데, 그러려면 어떻게 하면 될까요?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Maxbarsback 질문입니다.
>
안녕하세요
예스스탁입니다.
수식에 사용된 MACD는 지수이동평균기준입니다.
지수이동평균은 계산방법이 아래와 같습니다.
EMA = 금일 종가 * EP + 전일의 지수 이동평균 * (1-EP)
※ EP(평활계수) = 2/(기간 + 1)
지수이평에서 지정하는 기간값은 봉수가 아닙니다.
현재값과 전봉값의 비율을 결정하는 평활계수를 계산하기 위한 값입니다.
지수이평은 보통 2번째 봉부터 그려지고
수식내 이전값 참조등에 따라 3번째나 4번째부터 신호가 발생할 수 있습니다.
즐거운 하루되세요
> 램프 님이 쓴 글입니다.
> 제목 : Maxbarsback 질문입니다.
> 안녕하세요, 항상 도움 감사드립니다.
아래는 Gambler님 블로그의 알렉산더 엘더 임펄스 5분봉용 시스템 식입니다.
기간을 여러가지로 해 보면 3번째, 4번째 봉 등 수식의 계산기간을 만족하기 전에 진입신호가 발생하는데, 오류로 생각되며 Maxbarsback을 어떻게 사용해야 이 신호를 없앨수 있는지 모르겠습니다.
그리고 왜 이런 신호가 발생하는지 이유도 궁금합니다. 조언 부탁드립니다.
Input : EmaLen(280), macd1(40), macd2(90), macd3(80), Mult(4), stopPer(0.8);
var : emaV(0), MacdV(0), MacdS(0), MacdOsc(0);
var : LemaV(0), LmacdV(0), LmacdS(0), LmacdOsc(0);
# intermediate timeframe
emaV = ema(C,EmaLen);
MacdV = macd(macd1,macd2);
MacdS = ema(MacdV,macd3);
MacdOsc = MacdV-MacdS;
# intermediate timeframe * 5
LemaV = ema(C,EmaLen*Mult);
LmacdV = macd(macd1*Mult,macd2*Mult);
LmacdS = ema(MacdV*Mult,macd3*Mult);
LmacdOsc = (LmacdV-LmacdS)*Mult;
# 매수진입
If LemaV > LemaV[1] and LmacdOsc > LmacdOsc[1] then {
if CrossUp(C, emaV) Then
buy();
}
# 매도진입
If LemaV < LemaV[1] and LmacdOsc < LmacdOsc[1] then {
if Crossdown(C, emaV) Then
sell();
}
SetStopLoss(stopPer);
SetStopEndofday(1500);