커뮤니티

문의 드립니다.

프로필 이미지
softtoug
2017-11-03 20:47:51
164
글번호 113895
답변완료
안녕하세요 Input : shortPeriod(12), longPeriod(26), Period(9); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if C <= BBup-PriceScale*5 and C >= BBdn+PriceScale*5 Then{ If CrossUP(value1, value2) Then { buy("bMACD"); } If CrossDown(value1, value2) Then { sell("sMACD"); } } 상기 수식에서 하기와 같이 추가하고 싶은 것이 있어서 문의 드립니다. 1. 가끔가다 보면 MACD가 양에서 음으로 바뀐다음에 다시 양으로 바로 바뀌는 경우가 발생합니다. 즉 매수 진입 후 다음봉에서 바로 매도로 진입되는데...반대경우도 마찬가지구요... 일단 진입후 2번째 봉까지는 진입한 포지션이 바뀌지 않도록 할 수 있는지 수식 부탁드립니다. 세번째 부터 바뀌는 것에는 적용되도록 부탁드립니다. 2. 저는 상기 수식을 10분봉에 사용하는데, 20분봉을 같이 data 2로 연계해서 사용하면서 20분봉의 상기 수식도 같이 적용되는 방법이 없는지요, 즉 10분봉이나 20분봉이나 매수나 매도 신호가 발생되면, 약간의 진입가격의 차이는 있겠지만, 두가지 봉 모두 진입하게되는 방법이 없는지요? 상기 두가지 검토 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-11-06 11:43:47

안녕하세요 예스스탁입니다. 1. Input : shortPeriod(12), longPeriod(26), Period(9); var : T(0),B(0),bbup(0),bbdn(0); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); bbup = BollBandUp(20,2); bbdn = BollBandDown(20,2); if CrossUp(value1,value2) Then{ T = 1; B = 0; } if CrossDown(value1,value2) Then{ T = -1; B = 0; } if T == 1 Then B = B+1; if T == -1 Then B = B+1; if C <= BBup-PriceScale*5 and C >= BBdn+PriceScale*5 Then{ If T == 1 and B == 3 Then { buy("bMACD"); } If T == 1 and B == 3 Then { sell("sMACD"); } } 2 Input : shortPeriod(12), longPeriod(26), Period(9); var : MACDV1(0,data1),MACDS1(0,data1),T1(0,data1),B1(0,data1); var : MACDV2(0,data2),MACDS2(0,data2),T2(0,data2),B2(0,data2); var : BBup1(0,data1),BBdn1(0,data1),BBup2(0,data2),BBdn2(0,data2); var : Bcond(false,data1),Scond(false,data1); MACDV1 = data1(MACD(shortPeriod, longPeriod)); MACDS1 = data1(ema(MACDV1, Period)); MACDV2 = data2(MACD(shortPeriod, longPeriod)); MACDS2 = data2(ema(MACDV2, Period)); BBup1 = data1(BollBandUp(20,2)); BBdn1 = data1(BollBandDown(20,2)); BBup2 = data2(BollBandUp(20,2)); BBdn2 = data2(BollBandDown(20,2)); if data1(CrossUp(MACDV1,MACDS1)) Then{ T1 = 1; B1 = 0; } if data1(CrossDown(MACDV1,MACDS1)) Then{ T1 = -1; B1 = 0; } if T1 == 1 Then B1 = B1+1; if T1 == -1 Then B1 = B1-1; if data2(CrossUp(MACDV2,MACDS2)) Then{ T2 = 1; B2 = 0; } if data2(CrossDown(MACDV2,MACDS2)) Then{ T2 = -1; B2 = 0; } if T2 == 1 Then B2 = B2+1; if T2 == -1 Then B2 = B2-1; Bcond = data1(C <= BBup1-PriceScale*5 and C >= BBdn1+PriceScale*5 and T1 == 1 and B1 == 3) and data2(C <= BBup1-PriceScale*5 and C >= BBdn1+PriceScale*5 and T2 == 1 and B2 == 3); Scond = data1(C <= BBup1-PriceScale*5 and C >= BBdn1+PriceScale*5 and T1 == -1 and B1 == -3) and data2(C <= BBup1-PriceScale*5 and C >= BBdn1+PriceScale*5 and T2 == -1 and B2 == -3); if Bcond == true and Bcond[1] == false Then buy(); if Scond == true and Scond[1] == false Then sell(); 즐거운 하루되세요 > softtoug 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 안녕하세요 Input : shortPeriod(12), longPeriod(26), Period(9); value1 = MACD(shortPeriod, longPeriod); value2 = ema(value1, Period); if C <= BBup-PriceScale*5 and C >= BBdn+PriceScale*5 Then{ If CrossUP(value1, value2) Then { buy("bMACD"); } If CrossDown(value1, value2) Then { sell("sMACD"); } } 상기 수식에서 하기와 같이 추가하고 싶은 것이 있어서 문의 드립니다. 1. 가끔가다 보면 MACD가 양에서 음으로 바뀐다음에 다시 양으로 바로 바뀌는 경우가 발생합니다. 즉 매수 진입 후 다음봉에서 바로 매도로 진입되는데...반대경우도 마찬가지구요... 일단 진입후 2번째 봉까지는 진입한 포지션이 바뀌지 않도록 할 수 있는지 수식 부탁드립니다. 세번째 부터 바뀌는 것에는 적용되도록 부탁드립니다. 2. 저는 상기 수식을 10분봉에 사용하는데, 20분봉을 같이 data 2로 연계해서 사용하면서 20분봉의 상기 수식도 같이 적용되는 방법이 없는지요, 즉 10분봉이나 20분봉이나 매수나 매도 신호가 발생되면, 약간의 진입가격의 차이는 있겠지만, 두가지 봉 모두 진입하게되는 방법이 없는지요? 상기 두가지 검토 부탁드립니다.