커뮤니티
시스템 으로하면?
2013-05-19 21:50:36
203
글번호 63338
안녕하세요
질문1
아래수식은 SwingHigh와 SwingLow에 의해 파동선이 그려지고 그 파동 높이를 근간으로 피보나치 라인을 그리는 지표식입니다.
반등과 반락을 하나의 차트에 모두 표시하게 되면 복잡해서 알아볼 수 없으므로 구분자를 통해 한방향만 지표로 출력토록 해 보았습니다. 
##. 지표식
input:left(5),right(5),구분(1);
var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0),
    ovr(0),반등(1),반락(-1);
array:hv[10](0),lv[10](0),hb[10](0),lb[10](0),
      r[8](0),fr[8](0);
 
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
r[7] = 1.618;
 
#==============================================================================#
# 변곡점 계산
#==============================================================================#
 
//파동선 작성 설명은 자주 했으므로 생략
 
if highest(h[1],left) <= h then {
   prehv = h;
   prehb = 0;
   }
else
   prehb = prehb + 1;    
 
if lowest(l[1],left) >= l then {
   prelv = l;
   prelb = 0;
   }
else
   prelb = prelb + 1;    
 
for j = 1 to 9 begin
    hb[j] = hb[j] + 1;
    lb[j] = lb[j] + 1;
end;
 
if prehb == right and highest(h,right) <= h[right] then {
      
   for j = 9 downto 2 {
       hv[j] = hv[j-1];
       hb[j] = hb[j-1];
       }
   hv[1] = prehv;
   hb[1] = prehb;
 
   if lb[1] > hb[2] then {
   for j = 9 downto 2 {
          lv[j] = lv[j-1];
          lb[j] = lb[j-1];
          }
      tmpv = 0;
      for j = hb[1] + 1 to hb[2] - 1 {
          if tmpv > l[j] or tmpv ==0 then {
    tmpv = l[j];
             tmpb = j;
             }
          }
      lv[1] = tmpv;
      lb[1] = tmpb;
      }
   }
 
if prelb == right and lowest(l,right) >= l[right] then {
   for j = 9 downto 2 {
       lv[j] = lv[j-1];
       lb[j] = lb[j-1];
       }
   lv[1] = prelv;
   lb[1] = prelb;
 
   if hb[1] > lb[2] then {
      for j = 9 downto 2 {
          hv[j] = hv[j-1];
          hb[j] = hb[j-1];
          }
      tmpv = 0;
      for j = lb[1] + 1 to lb[2] - 1 {
          if tmpv < h[j] or tmpv ==0 then {
    tmpv = h[j];
             tmpb = j;
             }
          }
      hv[1] = tmpv;
      hb[1] = tmpb;
      }
   }
 
#==============================================================================#
# Fibonacci Retracements 계산
#==============================================================================#
//반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음
 
if 구분 == 반등 then {
   if crossup(lb[1],hb[1]) then
      {
      for j = 0 to 7 begin
          fr[j] = hv[1] - (hv[1] - lv[1]) * r[j];
      end;
      ovr = 0;
      }
   if fr[6]>l then ovr = 1;
   }
 
if 구분 == 반락 then {
   if crossup(hb[1],lb[1]) then
      {
      for j = 0 to 7 begin
          fr[j] = lv[1] + (hv[1] - lv[1]) * r[j];
      end;
      ovr = 0;
      }
   if fr[6]>l then ovr = 1;
   }
 
#==============================================================================#
# 지표출력
#==============================================================================#
if hb[1]==right then plot1(hv[1],"파동선",GREEN);
if lb[1]==right then plot1(lv[1],"파동선",GREEN);
 
plot2(fr[0],"0%",BLUE);
plot3(fr[1],"23.6%",RED);
plot4(fr[2],"38.2%",MAGENTA);
plot5(fr[3],"50%",GRAY);
plot6(fr[4],"61.8%",LBLUE);
plot7(fr[5],"76.4%",LGREEN);
plot8(fr[6],"100%",PINK);
if ovr then plot9(fr[7],"161.8%",LMAGENTA);       //점 그래프로 표시
위. 지표 를 시스템식으로.요청
방법은. 아래와같이 부탁해요
plot1 ,plot2 , plot3, plot4, plot5, plot6, plot7, plot8, plot9,
가.있습니다. 각각. 어느한개가. 상승돌파 하면. 매수
각각. 어느한개가. 하락 돌파하면. 매도
감사^^
답변 1
예스스탁 예스스탁 답변
2013-05-20 15:37:34
안녕하세요
예스스탁입니다.
input:left(5),right(5),구분(1);
var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0),
ovr(0),반등(1),반락(-1);
array:hv[10](0),lv[10](0),hb[10](0),lb[10](0),
r[8](0),fr[8](0);
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
r[7] = 1.618;
#==============================================================================#
# 변곡점 계산
#==============================================================================#
//파동선 작성 설명은 자주 했으므로 생략
if highest(h[1],left) <= h then {
prehv = h;
prehb = 0;
}
else
prehb = prehb + 1;
if lowest(l[1],left) >= l then {
prelv = l;
prelb = 0;
}
else
prelb = prelb + 1;
for j = 1 to 9 begin
hb[j] = hb[j] + 1;
lb[j] = lb[j] + 1;
end;
if prehb == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
hv[j] = hv[j-1];
hb[j] = hb[j-1];
}
hv[1] = prehv;
hb[1] = prehb;
if lb[1] > hb[2] then {
for j = 9 downto 2 {
lv[j] = lv[j-1];
lb[j] = lb[j-1];
}
tmpv = 0;
for j = hb[1] + 1 to hb[2] - 1 {
if tmpv > l[j] or tmpv ==0 then {
tmpv = l[j];
tmpb = j;
}
}
lv[1] = tmpv;
lb[1] = tmpb;
}
}
if prelb == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
lv[j] = lv[j-1];
lb[j] = lb[j-1];
}
lv[1] = prelv;
lb[1] = prelb;
if hb[1] > lb[2] then {
for j = 9 downto 2 {
hv[j] = hv[j-1];
hb[j] = hb[j-1];
}
tmpv = 0;
for j = lb[1] + 1 to lb[2] - 1 {
if tmpv < h[j] or tmpv ==0 then {
tmpv = h[j];
tmpb = j;
}
}
hv[1] = tmpv;
hb[1] = tmpb;
}
}
#==============================================================================#
# Fibonacci Retracements 계산
#==============================================================================#
//반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음
if 구분 == 반등 then {
if crossup(lb[1],hb[1]) then
{
for j = 0 to 7 begin
fr[j] = hv[1] - (hv[1] - lv[1]) * r[j];
end;
ovr = 0;
}
if fr[6]>l then ovr = 1;
}
if 구분 == 반락 then {
if crossup(hb[1],lb[1]) then
{
for j = 0 to 7 begin
fr[j] = lv[1] + (hv[1] - lv[1]) * r[j];
end;
ovr = 0;
}
if fr[6]>l then ovr = 1;
}
#==============================================================================#
# 지표출력
#==============================================================================#
if hb[1]==right then plot1(hv[1],"파동선",GREEN);
if crossup(c,fr[0]) or
crossup(c,fr[1]) or
crossup(c,fr[2]) or
crossup(c,fr[3]) or
crossup(c,fr[4]) or
crossup(c,fr[5]) or
crossup(c,fr[6]) Then
buy();
if crossdown(c,fr[0]) or
CrossDown(c,fr[1]) or
CrossDown(c,fr[2]) or
CrossDown(c,fr[3]) or
CrossDown(c,fr[4]) or
CrossDown(c,fr[5]) or
CrossDown(c,fr[6]) Then
sell();
즐거운 하루되세요
> yang오뚜기 님이 쓴 글입니다.
> 제목 : 시스템 으로하면?
> 안녕하세요
질문1
아래수식은 SwingHigh와 SwingLow에 의해 파동선이 그려지고 그 파동 높이를 근간으로 피보나치 라인을 그리는 지표식입니다.
반등과 반락을 하나의 차트에 모두 표시하게 되면 복잡해서 알아볼 수 없으므로 구분자를 통해 한방향만 지표로 출력토록 해 보았습니다.
##. 지표식
input:left(5),right(5),구분(1);
var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0),
ovr(0),반등(1),반락(-1);
array:hv[10](0),lv[10](0),hb[10](0),lb[10](0),
r[8](0),fr[8](0);
r[0] = 0;
r[1] = 0.236;
r[2] = 0.382;
r[3] = 0.50;
r[4] = 0.618;
r[5] = 0.764;
r[6] = 1;
r[7] = 1.618;
#==============================================================================#
# 변곡점 계산
#==============================================================================#
//파동선 작성 설명은 자주 했으므로 생략
if highest(h[1],left) <= h then {
prehv = h;
prehb = 0;
}
else
prehb = prehb + 1;
if lowest(l[1],left) >= l then {
prelv = l;
prelb = 0;
}
else
prelb = prelb + 1;
for j = 1 to 9 begin
hb[j] = hb[j] + 1;
lb[j] = lb[j] + 1;
end;
if prehb == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
hv[j] = hv[j-1];
hb[j] = hb[j-1];
}
hv[1] = prehv;
hb[1] = prehb;
if lb[1] > hb[2] then {
for j = 9 downto 2 {
lv[j] = lv[j-1];
lb[j] = lb[j-1];
}
tmpv = 0;
for j = hb[1] + 1 to hb[2] - 1 {
if tmpv > l[j] or tmpv ==0 then {
tmpv = l[j];
tmpb = j;
}
}
lv[1] = tmpv;
lb[1] = tmpb;
}
}
if prelb == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
lv[j] = lv[j-1];
lb[j] = lb[j-1];
}
lv[1] = prelv;
lb[1] = prelb;
if hb[1] > lb[2] then {
for j = 9 downto 2 {
hv[j] = hv[j-1];
hb[j] = hb[j-1];
}
tmpv = 0;
for j = lb[1] + 1 to lb[2] - 1 {
if tmpv < h[j] or tmpv ==0 then {
tmpv = h[j];
tmpb = j;
}
}
hv[1] = tmpv;
hb[1] = tmpb;
}
}
#==============================================================================#
# Fibonacci Retracements 계산
#==============================================================================#
//반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음
if 구분 == 반등 then {
if crossup(lb[1],hb[1]) then
{
for j = 0 to 7 begin
fr[j] = hv[1] - (hv[1] - lv[1]) * r[j];
end;
ovr = 0;
}
if fr[6]>l then ovr = 1;
}
if 구분 == 반락 then {
if crossup(hb[1],lb[1]) then
{
for j = 0 to 7 begin
fr[j] = lv[1] + (hv[1] - lv[1]) * r[j];
end;
ovr = 0;
}
if fr[6]>l then ovr = 1;
}
#==============================================================================#
# 지표출력
#==============================================================================#
if hb[1]==right then plot1(hv[1],"파동선",GREEN);
if lb[1]==right then plot1(lv[1],"파동선",GREEN);
plot2(fr[0],"0%",BLUE);
plot3(fr[1],"23.6%",RED);
plot4(fr[2],"38.2%",MAGENTA);
plot5(fr[3],"50%",GRAY);
plot6(fr[4],"61.8%",LBLUE);
plot7(fr[5],"76.4%",LGREEN);
plot8(fr[6],"100%",PINK);
if ovr then plot9(fr[7],"161.8%",LMAGENTA); //점 그래프로 표시
위. 지표 를 시스템식으로.요청
방법은. 아래와같이 부탁해요
plot1 ,plot2 , plot3, plot4, plot5, plot6, plot7, plot8, plot9,
가.있습니다. 각각. 어느한개가. 상승돌파 하면. 매수
각각. 어느한개가. 하락 돌파하면. 매도
감사^^
다음글
이전글