커뮤니티
지표를 시스템으로 변경 문의 입니다.
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전저점, 가격전저점, 예비저, 예비봉저);