커뮤니티
수식문의
2016-10-19 10:38:21
107
글번호 103069
안녕하세요
하시 수식에서 추가하고 싶은 것이 있어서 문의 드립니다.
검토 부탁드립니다.
MACD 와 볼린져 밴드 수식을 추가 하고 싶습니다. 조건은 하기와 같습니다.
1. MACD 선과 MACD signal 선이 모두 -0.1 아래에서 위로 올라오고
MACD선이 MACD signal 선 위로 올라갈 때, 매수 진입합니다.
MACD 오실레이터도 양으로 바뀌어야 합니다.
- 매도는 상기와 반대로 진입합니다. 0.1 위에서 아래로 내려올때 적용합니다.
- 0 과 0.1(또는-0.1) 사이에서의 MACD 선과 MACD signal 선의 교체는 무시합니다.
2. 추가 옵션으로 상기 조건이 충족되고,
매수의 경우 완성봉이 볼린져 중앙밴드 상단에 완성되었을때 진입하는 수식부탁드립니다.
매도의 경우 반대로 완성봉이 볼린져 밴드 중앙밴드 하단에 완성되었을때 진입하는
수식도 같이 부탁드립니다.
감사합니다.
------------------------------------------------------------------
input : P(14),BBP(20),dv(2),MAP(60);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
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");
}
답변 1
예스스탁 예스스탁 답변
2016-10-19 14:13:11
안녕하세요
예스스탁입니다.
문의하신 내용은 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");
2
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 and C > BBup Then
buy("b3");
if CrossDown(MACDV,MACDS) and MACDV <= 0.1 and MACDS <= 0.1 and C < BBdn Then
Sell("s3");
즐거운 하루되세요
> softtoug 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요
하시 수식에서 추가하고 싶은 것이 있어서 문의 드립니다.
검토 부탁드립니다.
MACD 와 볼린져 밴드 수식을 추가 하고 싶습니다. 조건은 하기와 같습니다.
1. MACD 선과 MACD signal 선이 모두 -0.1 아래에서 위로 올라오고
MACD선이 MACD signal 선 위로 올라갈 때, 매수 진입합니다.
MACD 오실레이터도 양으로 바뀌어야 합니다.
- 매도는 상기와 반대로 진입합니다. 0.1 위에서 아래로 내려올때 적용합니다.
- 0 과 0.1(또는-0.1) 사이에서의 MACD 선과 MACD signal 선의 교체는 무시합니다.
2. 추가 옵션으로 상기 조건이 충족되고,
매수의 경우 완성봉이 볼린져 중앙밴드 상단에 완성되었을때 진입하는 수식부탁드립니다.
매도의 경우 반대로 완성봉이 볼린져 밴드 중앙밴드 하단에 완성되었을때 진입하는
수식도 같이 부탁드립니다.
감사합니다.
------------------------------------------------------------------
input : P(14),BBP(20),dv(2),MAP(60);
var : ADXV(0),DP(0),DM(0),T(0),BBup(0),BBdn(0),mav(0);
ADXV = ADX(P);
DP = Diplus(P);
DM = DiMinus(P);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBP,dv);
mav = ma(C,MAP);
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");
}
다음글