커뮤니티

지표를 시스템으로 변경 문의 입니다.

프로필 이미지
세계일주
2019-01-31 02:22:09
184
글번호 125783
답변완료
안녕하세요 아래와 지표 2개를 사용하여 시스템을 만들려고 하는데 지표 1,2 가 동시에 상승할때 매수 지표 1,2 가 동시에 하락할때 매도로 구현이 가능한가요 ? 지표1 Input : short(6), longPeriod(26); Var : value(0); value = MACD(short, longPeriod); if value > value[1] Then plot1(value,"macd",YELLOW); Else plot1(value,"macd",CYAN); 지표2 Input : shortPeriod(12), longPeriod(26), Period(9); Var : value(0) , macdosc(0), MACD전저점(0), 가격전저점(0), 예비저(0), 예비봉저(999), macdplot(0), macd전고점(0), 가격전고점(0), 예비고(0), 예비봉고(0); value = MACD(shortPeriod, longPeriod); macdosc = value-ema(value,Period); if macdosc > 0 then { plot3(macdosc * 2, "MACDOscillator", RED); if(macdosc[1] <= 0) then { // 이전 봉 까지는 음수인 경우 전저점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전저점 <= -0.01 ) and (macd전저점 <= 예비저) and (가격전저점 >= 예비봉저) then { macdPlot = macd전저점 * -1; MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f 다이버젼스 발견", macd전저점, 가격전저점, 예비저, 예비봉저); } else macdPlot = 0; if(예비저 <= -0.01) then { macd전저점 = 예비저; 가격전저점 = 예비봉저; } } else { macdPlot = 0; } 예비저 = 0; 예비봉저 = 999; if(예비고 < macdosc) then { 예비고 = macdosc; } 예비봉고 = max(예비봉고, c); } else { Plot3(macdosc * 2, "MACDOscillator", BLUE); macdPlot = 0; if(예비저 > macdosc) then { 예비저 = macdosc; } if(macdosc[1] >= 0) then { // 이전 봉 까지는 양수인 경우 전고점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전고점 >= 0.01 ) and (macd전고점 > 예비고) and (가격전고점 <= 예비봉고) then { macdPlot = macd전고점 * -1; MessageLog("macd전고점 %.0f 가격전고점%.0f 예비고%.0f 예비봉고%.0f 다이버젼스 발견", macd전고점, 가격전고점, 예비고, 예비봉고); } else macdPlot = 0; if(예비고 >= 0.01) then { macd전고점 = 예비고; 가격전고점 = 예비봉고; } } else { macdPlot = 0; } 예비고 = 0; 예비봉고 = 0; 예비봉저 = min(예비봉저, c); } PlotBaseLine1(0, "기준선1"); plot1(macdPlot); //MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f", macd전저점, 가격전저점, 예비저, 예비봉저);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-01-31 10:57:54

안녕하세요 예스스탁입니다. Input : short(6), long(26); Var : T(0),S(0); value1 = MACD(short, long); if value1 > value1[1] Then T = 1; if value1 < value1[1] Then T = -1; input : shortPeriod(12), longPeriod(26), Period(9); Var : value(0) , macdosc(0), MACD전저점(0), 가격전저점(0), 예비저(0), 예비봉저(999), macdplot(0), macd전고점(0), 가격전고점(0), 예비고(0), 예비봉고(0); value = MACD(shortPeriod, longPeriod); macdosc = value-ema(value,Period); if macdosc > 0 then { if(macdosc[1] <= 0) then { // 이전 봉 까지는 음수인 경우 전저점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전저점 <= -0.01 ) and (macd전저점 <= 예비저) and (가격전저점 >= 예비봉저) then { macdPlot = macd전저점 * -1; MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f 다이버젼스 발견", macd전저점, 가격전저점, 예비저, 예비봉저); } else macdPlot = 0; if(예비저 <= -0.01) then { macd전저점 = 예비저; 가격전저점 = 예비봉저; } } else { macdPlot = 0; } 예비저 = 0; 예비봉저 = 999; if(예비고 < macdosc) then { 예비고 = macdosc; } 예비봉고 = max(예비봉고, c); } else { macdPlot = 0; if(예비저 > macdosc) then { 예비저 = macdosc; } if(macdosc[1] >= 0) then { // 이전 봉 까지는 양수인 경우 전고점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전고점 >= 0.01 ) and (macd전고점 > 예비고) and (가격전고점 <= 예비봉고) then { macdPlot = macd전고점 * -1; } else macdPlot = 0; if(예비고 >= 0.01) then { macd전고점 = 예비고; 가격전고점 = 예비봉고; } } else { macdPlot = 0; } 예비고 = 0; 예비봉고 = 0; 예비봉저 = min(예비봉저, c); } if macdosc > macdosc[1] Then S = 1; if macdosc < macdosc[1] Then S = -1; if T == 1 and S == 1 Then buy(); if T == -1 and S == -1 Then sell(); 즐거운 하루되세요 > 세계일주 님이 쓴 글입니다. > 제목 : 지표를 시스템으로 변경 문의 입니다. > 안녕하세요 아래와 지표 2개를 사용하여 시스템을 만들려고 하는데 지표 1,2 가 동시에 상승할때 매수 지표 1,2 가 동시에 하락할때 매도로 구현이 가능한가요 ? 지표1 Input : short(6), longPeriod(26); Var : value(0); value = MACD(short, longPeriod); if value > value[1] Then plot1(value,"macd",YELLOW); Else plot1(value,"macd",CYAN); 지표2 Input : shortPeriod(12), longPeriod(26), Period(9); Var : value(0) , macdosc(0), MACD전저점(0), 가격전저점(0), 예비저(0), 예비봉저(999), macdplot(0), macd전고점(0), 가격전고점(0), 예비고(0), 예비봉고(0); value = MACD(shortPeriod, longPeriod); macdosc = value-ema(value,Period); if macdosc > 0 then { plot3(macdosc * 2, "MACDOscillator", RED); if(macdosc[1] <= 0) then { // 이전 봉 까지는 음수인 경우 전저점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전저점 <= -0.01 ) and (macd전저점 <= 예비저) and (가격전저점 >= 예비봉저) then { macdPlot = macd전저점 * -1; MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f 다이버젼스 발견", macd전저점, 가격전저점, 예비저, 예비봉저); } else macdPlot = 0; if(예비저 <= -0.01) then { macd전저점 = 예비저; 가격전저점 = 예비봉저; } } else { macdPlot = 0; } 예비저 = 0; 예비봉저 = 999; if(예비고 < macdosc) then { 예비고 = macdosc; } 예비봉고 = max(예비봉고, c); } else { Plot3(macdosc * 2, "MACDOscillator", BLUE); macdPlot = 0; if(예비저 > macdosc) then { 예비저 = macdosc; } if(macdosc[1] >= 0) then { // 이전 봉 까지는 양수인 경우 전고점이 확정된다. // 다이버전스 조건이 충족 되었는지 검증한다. if(macd전고점 >= 0.01 ) and (macd전고점 > 예비고) and (가격전고점 <= 예비봉고) then { macdPlot = macd전고점 * -1; MessageLog("macd전고점 %.0f 가격전고점%.0f 예비고%.0f 예비봉고%.0f 다이버젼스 발견", macd전고점, 가격전고점, 예비고, 예비봉고); } else macdPlot = 0; if(예비고 >= 0.01) then { macd전고점 = 예비고; 가격전고점 = 예비봉고; } } else { macdPlot = 0; } 예비고 = 0; 예비봉고 = 0; 예비봉저 = min(예비봉저, c); } PlotBaseLine1(0, "기준선1"); plot1(macdPlot); //MessageLog("macd전저점 %.0f 가격전저점%.0f 예비저%.0f 예비봉저%.0f", macd전저점, 가격전저점, 예비저, 예비봉저);