커뮤니티
수식문의
2016-10-19 14:38:22
140
글번호 103086
안녕하세요
하기 보내주신 답변은 잘 받았습니다. 다시 한 번 감사드립니다.
몇가지 궁금한 것이 있어서 메일 드립니다.
하기 확인 부탁드립니다.
1. 0 ~ 0.1(또는 -0.1)사이에서도 작동을 합니다.왜 이런지요?
첨부 파일 확인 부탁드립니다.
2. b2,b3,s2,s3 가 중복신호가 많이 발생됩니다.
어떤 신호든 최초 한 신호가 발생하고 3개 봉이내에서 다른신호가 발생할 경우
무시할 수 있는지요?
검토 부탁드립니다.
3. 10:56 조금 시나서 MACD 선과 MACD signal 선 교체가 이루어지고 조건이 충족하는데
매수 진입이 되지 않고 있다가, 다른 신호 매도 진입이 들어갑니다....
왜 이런건가요? 확인 부탁드립니다.
4. 10월 14일 07:59 전에 MACD 선과 MACD signal 선 교체가 이루어지고 조전이 충족되는데..
매도 진입이 되지 않고 있다가, 다른 신호 매수 진입이 들어갑니다...
확인 부탁드립니다.
--------------------------------------
안녕하세요
예스스탁입니다.
문의하신 내용은 MACD가 MACD시그널을 상향돌파할때 매수하는데
MACD와 MACD시그널이 모두 -0.1위에 있을때라는 내용입니다.
- 0 과 0.1(또는-0.1) 사이에서의 MACD 선과 MACD signal 선의 교체는 무시합니다.
그런데 추가로 적으신 내용에는 0~-0.1사이에는 신호가 나오지 않게 되어 있습니다.
해당식 MACD와 MACD시그널이 단순 특정값이상이나 이하로 지정하시면 되므로
아래식에서 조건식 원하시는 부등호 방향으로 조정하시기 바랍니다.
1.
input : P(14),BBP(20),dv(2),MAP(60);
input : short(12),long(26),sig(9);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
var : MACDV(0),MACDS(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
if crossup(ADXV,20) Then{
if DP > DM and dp < 25 Then
buy("b1");
if DP < DM and dm < 25 Then
sell("s1");
}
if MarketPosition == 1 and IsEntryName("b1") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if CrossUp(BBdn,mav) and countif(crossdown(BBdn,mav),10) < 1 and DP < 40 Then
buy("b2");
if CrossDown(BBup,mav) and countif(CrossUp(BBup,mav),10) < 1 and DM <40 Then
sell("s2");
if MarketPosition == 1 and IsEntryName("b2") == true Then{
if CrossDown(DP,DM) Then
sell("rs1");
if CrossDown(C,mav) Then
sell("rs2");
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
if crossup(DP,DM) Then
Buy("rb1");
if Crossup(C,mav) Then
buy("rb2");
}
if crossup(MACDV,MACDS) and MACDV >= -0.1 and MACDS >= -0.1 Then
buy("b3");
if CrossDown(MACDV,MACDS) and MACDV <= -0.1 and MACDS <= -0.1 Then
Sell("s3");
- 1. 103618_예시.PNG (0.04 MB)
답변 1
예스스탁 예스스탁 답변
2016-10-19 15:30:33
> softtoug 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
하기 보내주신 답변은 잘 받았습니다. 다시 한 번 감사드립니다.
몇가지 궁금한 것이 있어서 메일 드립니다.
하기 확인 부탁드립니다.
1. 0 ~ 0.1(또는 -0.1)사이에서도 작동을 합니다.왜 이런지요?
첨부 파일 확인 부탁드립니다.
2. b2,b3,s2,s3 가 중복신호가 많이 발생됩니다.
어떤 신호든 최초 한 신호가 발생하고 3개 봉이내에서 다른신호가 발생할 경우
무시할 수 있는지요?
검토 부탁드립니다.
3. 10:56 조금 시나서 MACD 선과 MACD signal 선 교체가 이루어지고 조건이 충족하는데
매수 진입이 되지 않고 있다가, 다른 신호 매도 진입이 들어갑니다....
왜 이런건가요? 확인 부탁드립니다.
4. 10월 14일 07:59 전에 MACD 선과 MACD signal 선 교체가 이루어지고 조전이 충족되는데..
매도 진입이 되지 않고 있다가, 다른 신호 매수 진입이 들어갑니다...
확인 부탁드립니다.
--------------------------------------
안녕하세요
예스스탁입니다.
문의하신 내용은 MACD가 MACD시그널을 상향돌파할때 매수하는데
MACD와 MACD시그널이 모두 -0.1위에 있을때라는 내용입니다.
- 0 과 0.1(또는-0.1) 사이에서의 MACD 선과 MACD signal 선의 교체는 무시합니다.
그런데 추가로 적으신 내용에는 0~-0.1사이에는 신호가 나오지 않게 되어 있습니다.
해당식 MACD와 MACD시그널이 단순 특정값이상이나 이하로 지정하시면 되므로
아래식에서 조건식 원하시는 부등호 방향으로 조정하시기 바랍니다.
1.
input : P(14),BBP(20),dv(2),MAP(60);
input : short(12),long(26),sig(9);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
var : MACDV(0),MACDS(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
MACDV = MACD(short,long);
MACDS = ema(MACDV,sig);
if crossup(ADXV,20) Then{
if DP > DM and dp < 25 Then
buy("b1");
if DP < DM and dm < 25 Then
sell("s1");
}
if MarketPosition == 1 and IsEntryName("b1") == true Then{
if CrossDown(DP,DM) Then
ExitLong();
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
if CrossUp(DP,DM) Then
ExitShort();
}
if CrossUp(BBdn,mav) and countif(crossdown(BBdn,mav),10) < 1 and DP < 40 Then
buy("b2");
if CrossDown(BBup,mav) and countif(CrossUp(BBup,mav),10) < 1 and DM <40 Then
sell("s2");
if MarketPosition == 1 and IsEntryName("b2") == true Then{
if CrossDown(DP,DM) Then
sell("rs1");
if CrossDown(C,mav) Then
sell("rs2");
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
if crossup(DP,DM) Then
Buy("rb1");
if Crossup(C,mav) Then
buy("rb2");
}
if crossup(MACDV,MACDS) and MACDV >= -0.1 and MACDS >= -0.1 Then
buy("b3");
if CrossDown(MACDV,MACDS) and MACDV <= -0.1 and MACDS <= -0.1 Then
Sell("s3");
다음글
이전글