커뮤니티

렌코 챠트로

프로필 이미지
구다이전설
2012-12-11 17:56:23
436
글번호 57225
답변완료
원하는 식은 두번째 상승에서 사고 세번째 하락벽돌에서 판다 입니다 if 방향==상승 and 렌코[2] >= 저[0] then Buy(); if 방향==하락 and 렌코[3] <= 고[0] then Sell(); input: renko(1.45) if value2[1] +renko<=c and Value2[1]+renko2> C then value1=1; value2= h; if value2[1] + renko2<=c then value1=2; value2 = h; if value2[1]-renko >=c and value2[1]-renko2 < c then value1=-1; value2 = 1; if value2[1]-renko2 >=c then value1 =-2; value2= 1 ; if value1[1]>0 and value1<0 then sell MarketPosition; if value1[1]<0 and value1>0 then buy MarketPosition; end; 구동이 않되네요 그리고 맞는 식인지도 궁금하네요 앞에 다른 전문가가올려놓은 식이 더 믿음이 가는데 이역시 구동이 않되네요 수정 해줄 수 있나요 6 : input:단위호가(5),단기(5),중기(20); 7 : var:j(0),벽돌크기(0),벽돌개수(0),방향(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0), 8 : 상승(1),하락(-1),Sum(0),CSum(0); 9 : array:고[10](0),저[10](0),렌코[500](0); 10 : 11 : if index == 0 then 12 : { 13 : 벽돌크기 = PriceScale * 0.05; 14 : 고[0] = C; 15 : 저[0] = C; 16 : 렌코[0] = C; 17 : } 18 : 19 : #==========================================# 20 : # 렌코 계산 21 : #==========================================# 22 : if 방향 == 0 then 23 : { 24 : if 저[0] - 벽돌크기 >= C then 25 : { 26 : 벽돌개수 = int((저[0]-C)/벽돌크기);로 27 : 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 28 : 방향 = 하락; 29 : 30 : for j = 499 downto 벽돌개수 31 : { 32 : 렌코[j] = 렌코[j-벽돌개수]; 33 : } 34 : for j = 벽돌개수 - 1 downto 0 35 : { 36 : 렌코[j] = 렌코[j+1] - 벽돌크기; 37 : } 38 : } 39 : else if 고[0] + 벽돌크기 <= C then 40 : { 41 : 벽돌개수 = int((C-고[0])/벽돌크기); 42 : 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 43 : 방향 = 상승; 44 : 45 : for j = 499 downto 벽돌개수 46 : { 47 : 렌코[j] = 렌코[j-벽돌개수]; 48 : } 49 : for j = 벽돌개수 - 1 downto 0 50 : { 51 : 렌코[j] = 렌코[j+1] + 벽돌크기; 52 : } 53 : } 54 : } 55 : else if 방향 == 하락 then 56 : { 57 : if 저[0] - 벽돌크기 >= C then 58 : { 59 : 벽돌개수 = int((저[0]-C)/벽돌크기); 60 : 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 61 : 62 : for j = 499 downto 벽돌개수 63 : { 64 : 렌코[j] = 렌코[j-벽돌개수]; 65 : } 66 : for j = 벽돌개수 - 1 downto 0 67 : { 68 : 렌코[j] = 렌코[j+1] - 벽돌크기; 69 : } 70 : } 71 : if 저[0] + 2*벽돌크기 <= C then 72 : { 73 : for j = 8 downto 0 74 : { 75 : 고[j+1] = 고[j]; 76 : } 77 : 방향 = 상승; 78 : 벽돌개수 = int((C-저[0])/벽돌크기); 79 : 고[0] = 저[0] + 벽돌크기 * 벽돌개수; 80 : 81 : for j = 499 downto (벽돌개수-1) 82 : { 83 : 렌코[j] = 렌코[j-(벽돌개수-1)]; 84 : } 85 : 렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기; 86 : if 벽돌개수 > 2 then 87 : { 88 : for j = 벽돌개수 - 3 downto 0 89 : { 90 : 렌코[j] = 렌코[j+1] + 벽돌크기; 91 : } 92 : } 93 : } 94 : } 95 : else if 방향 == 상승 then 96 : { 97 : if 고[0] + 벽돌크기 <= C then 98 : { 99 : 벽돌개수 = int((C-고[0])/벽돌크기); 100 : 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 101 : 102 : for j = 499 downto 벽돌개수 103 : { 104 : 렌코[j] = 렌코[j-벽돌개수]; 105 : } 106 : for j = 벽돌개수 - 1 downto 0 107 : { 108 : 렌코[j] = 렌코[j+1] + 벽돌크기; 109 : } 110 : } 111 : if 고[0] - 2*벽돌크기 >= C then 112 : { 113 : for j = 8 downto 0 114 : { 115 : 저[j+1] = 저[j]; 116 : } 117 : 방향 = 하락; 118 : 벽돌개수 = int((고[0]-C)/벽돌크기); 119 : 저[0] = 고[0] - 벽돌크기 * 벽돌개수; 120 : 121 : for j = 499 downto (벽돌개수-1) 122 : { 123 : 렌코[j] = 렌코[j-(벽돌개수-1)]; 124 : } 125 : 렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기; 126 : if 벽돌개수 > 2 then 127 : { 128 : for j = 벽돌개수 - 3 downto 0 129 : { 130 : 렌코[j] = 렌코[j+1] - 벽돌크기; 131 : } 132 : } 133 : } 134 : } 135 : 136 : #==========================================# 137 : # 렌코 (가중)이평계산 138 : #==========================================# 139 : Sum = 0; 140 : for j = 0 to (단기-1) 141 : { 142 : Sum = Sum + 렌코[j]; 143 : } 144 : 단기이평 = Sum / 단기; 145 : 146 : Sum = 0; 147 : for j = 0 to (중기-1) 148 : { 149 : Sum = Sum + 렌코[j]; 150 : } 151 : 중기이평 = Sum / 중기; 152 : 153 : Sum = 0; 154 : CSum = 0; 155 : for j = 0 to (단기-1) 156 : { 157 : Sum = Sum + 렌코[j] * (단기 - j); 158 : CSum = CSum + (단기 - j); 159 : } 160 : 단기가중이평 = Sum / CSum; 161 : 162 : Sum = 0; 163 : CSum = 0; 164 : for j = 0 to (중기-1) 165 : { 166 : Sum = Sum + 렌코[j] * (중기 - j); 167 : CSum = CSum + (중기 - j); 168 : } 169 : 중기가중이평 = Sum / CSum; 170 : 171 : #==========================================# 172 : # 지표식 출력 173 : #==========================================# 174 : if 방향[1]==하락 and 방향==상승 then 175 : plot1(저[0],"렌코차트",Blue); //선그래프 176 : if 방향[1]==상승 and 방향==하락 then 177 : plot1(고[0],"렌코차트",RED); //선그래프 178 : 179 : plot2(렌코[0],"렌코값",iff(방향==상승,RED,BLUE)); //선그래프 180 : 181 : plot3(단기가중이평); //선그래프 182 : plot4(중기가중이평); //선그래프 여기 Q&A 게시판에도 렌코차트 관련 질문이 다수 보이던데 그중 11740번 질문에 매매 아이디어가 있어 인용합니다. 3. 렌코차트에서 두번째 붉은벽돌이 출현하면 매수하고, 세번째 파란벽돌이 나타나면 매도하라는 시스템식을 부탁드립니다. 예전 수식으로는 이게 불가능했습니다만 위 수식을 이용하면 이런 매매 로직도 가능합니다. 두번째 붉을벽돌의 출현은 현재 추세가 상승중이고 두번째 이전의 값이 전저점(바닥)을 의미합니다. 단, 봉차트에서 구현하는 거라 상승폭이 크게 되면 전저점 값과 일치하지 않을 수 있습니다. 그래서 아래와 같이 등호가 아닌 부등호로 표현이 됩니다. if 방향==상승 and 렌코[2] >= 저[0] then Buy(); if 방향==하락 and 렌코[3] <= 고[0] then Sell();
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-12-12 14:25:08

안녕하세요 예스스탁입니다. 첨부하신 다른분의 수식으로 답변드립니다. 기존식은 지정한 벽돌크기의 2배의 값으로 등락이 설정이 되어 있는데 하락판단을 if 고[0] - 3*벽돌크기 >= C then 로 변경했ㅅ브니다. 또한 벽돌크기도 조금 이상한 값으로 설정이 되어 있어 사용자분이 최소변화폭으로 값을 지정하게 변경했습니다. 5라고 입력하시면 5포인트입니다. 시스템식 지표식 같이 올려드립니다. 1.시스템 input:최소변화폭(5); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0); array:고[10](0),저[10](0),렌코[500](0); if index == 0 then { 벽돌크기 = 최소변화폭; 고[0] = C; 저[0] = C; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# if 방향 == 0 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 방향 = 하락; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } else if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 방향 = 상승; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } else if 방향 == 하락 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } if 저[0] + 2*벽돌크기 <= C then { for j = 8 downto 0 { 고[j+1] = 고[j]; } 방향 = 상승; 벽돌개수 = int((C-저[0])/벽돌크기); 고[0] = 저[0] + 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } } else if 방향 == 상승 then { if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } if 고[0] - 3*벽돌크기 >= C then { for j = 8 downto 0 { 저[j+1] = 저[j]; } 방향 = 하락; 벽돌개수 = int((고[0]-C)/벽돌크기); 저[0] = 고[0] - 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } } } if 방향==상승 and 방향[1]==하락 then Buy(); if 방향==하락 and 방향[1]==상승 then Sell(); 2, 지표 input:최소변화폭(5); var:j(0),벽돌크기(0),벽돌개수(0),방향(0),상승(1),하락(-1),Sum(0),CSum(0); array:고[10](0),저[10](0),렌코[500](0); if index == 0 then { 벽돌크기 = 최소변화폭; 고[0] = C; 저[0] = C; 렌코[0] = C; } #==========================================# # 렌코 계산 #==========================================# if 방향 == 0 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 방향 = 하락; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } else if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 방향 = 상승; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } else if 방향 == 하락 then { if 저[0] - 벽돌크기 >= C then { 벽돌개수 = int((저[0]-C)/벽돌크기); 저[0] = 저[0] - 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } if 저[0] + 2*벽돌크기 <= C then { for j = 8 downto 0 { 고[j+1] = 고[j]; } 방향 = 상승; 벽돌개수 = int((C-저[0])/벽돌크기); 고[0] = 저[0] + 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } } } else if 방향 == 상승 then { if 고[0] + 벽돌크기 <= C then { 벽돌개수 = int((C-고[0])/벽돌크기); 고[0] = 고[0] + 벽돌크기 * 벽돌개수; for j = 499 downto 벽돌개수 { 렌코[j] = 렌코[j-벽돌개수]; } for j = 벽돌개수 - 1 downto 0 { 렌코[j] = 렌코[j+1] + 벽돌크기; } } if 고[0] - 3*벽돌크기 >= C then { for j = 8 downto 0 { 저[j+1] = 저[j]; } 방향 = 하락; 벽돌개수 = int((고[0]-C)/벽돌크기); 저[0] = 고[0] - 벽돌크기 * 벽돌개수; for j = 499 downto (벽돌개수-1) { 렌코[j] = 렌코[j-(벽돌개수-1)]; } 렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기; if 벽돌개수 > 2 then { for j = 벽돌개수 - 3 downto 0 { 렌코[j] = 렌코[j+1] - 벽돌크기; } } } } #==========================================# # 지표식 출력 #==========================================# if 방향[1]==하락 and 방향==상승 then plot1(저[0],"렌코차트",Blue); //선그래프 if 방향[1]==상승 and 방향==하락 then plot1(고[0],"렌코차트",RED); //선그래프 즐거운 하루되세요 > 구다이전설 님이 쓴 글입니다. > 제목 : 렌코 챠트로 > 원하는 식은 두번째 상승에서 사고 세번째 하락벽돌에서 판다 입니다 if 방향==상승 and 렌코[2] >= 저[0] then Buy(); if 방향==하락 and 렌코[3] <= 고[0] then Sell(); input: renko(1.45) if value2[1] +renko<=c and Value2[1]+renko2> C then value1=1; value2= h; if value2[1] + renko2<=c then value1=2; value2 = h; if value2[1]-renko >=c and value2[1]-renko2 < c then value1=-1; value2 = 1; if value2[1]-renko2 >=c then value1 =-2; value2= 1 ; if value1[1]>0 and value1<0 then sell MarketPosition; if value1[1]<0 and value1>0 then buy MarketPosition; end; 구동이 않되네요 그리고 맞는 식인지도 궁금하네요 앞에 다른 전문가가올려놓은 식이 더 믿음이 가는데 이역시 구동이 않되네요 수정 해줄 수 있나요 6 : input:단위호가(5),단기(5),중기(20); 7 : var:j(0),벽돌크기(0),벽돌개수(0),방향(0),단기이평(0),중기이평(0),단기가중이평(0),중기가중이평(0), 8 : 상승(1),하락(-1),Sum(0),CSum(0); 9 : array:고[10](0),저[10](0),렌코[500](0); 10 : 11 : if index == 0 then 12 : { 13 : 벽돌크기 = PriceScale * 0.05; 14 : 고[0] = C; 15 : 저[0] = C; 16 : 렌코[0] = C; 17 : } 18 : 19 : #==========================================# 20 : # 렌코 계산 21 : #==========================================# 22 : if 방향 == 0 then 23 : { 24 : if 저[0] - 벽돌크기 >= C then 25 : { 26 : 벽돌개수 = int((저[0]-C)/벽돌크기);로 27 : 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 28 : 방향 = 하락; 29 : 30 : for j = 499 downto 벽돌개수 31 : { 32 : 렌코[j] = 렌코[j-벽돌개수]; 33 : } 34 : for j = 벽돌개수 - 1 downto 0 35 : { 36 : 렌코[j] = 렌코[j+1] - 벽돌크기; 37 : } 38 : } 39 : else if 고[0] + 벽돌크기 <= C then 40 : { 41 : 벽돌개수 = int((C-고[0])/벽돌크기); 42 : 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 43 : 방향 = 상승; 44 : 45 : for j = 499 downto 벽돌개수 46 : { 47 : 렌코[j] = 렌코[j-벽돌개수]; 48 : } 49 : for j = 벽돌개수 - 1 downto 0 50 : { 51 : 렌코[j] = 렌코[j+1] + 벽돌크기; 52 : } 53 : } 54 : } 55 : else if 방향 == 하락 then 56 : { 57 : if 저[0] - 벽돌크기 >= C then 58 : { 59 : 벽돌개수 = int((저[0]-C)/벽돌크기); 60 : 저[0] = 저[0] - 벽돌크기 * 벽돌개수; 61 : 62 : for j = 499 downto 벽돌개수 63 : { 64 : 렌코[j] = 렌코[j-벽돌개수]; 65 : } 66 : for j = 벽돌개수 - 1 downto 0 67 : { 68 : 렌코[j] = 렌코[j+1] - 벽돌크기; 69 : } 70 : } 71 : if 저[0] + 2*벽돌크기 <= C then 72 : { 73 : for j = 8 downto 0 74 : { 75 : 고[j+1] = 고[j]; 76 : } 77 : 방향 = 상승; 78 : 벽돌개수 = int((C-저[0])/벽돌크기); 79 : 고[0] = 저[0] + 벽돌크기 * 벽돌개수; 80 : 81 : for j = 499 downto (벽돌개수-1) 82 : { 83 : 렌코[j] = 렌코[j-(벽돌개수-1)]; 84 : } 85 : 렌코[벽돌개수-2] = 렌코[벽돌개수-1] + 2*벽돌크기; 86 : if 벽돌개수 > 2 then 87 : { 88 : for j = 벽돌개수 - 3 downto 0 89 : { 90 : 렌코[j] = 렌코[j+1] + 벽돌크기; 91 : } 92 : } 93 : } 94 : } 95 : else if 방향 == 상승 then 96 : { 97 : if 고[0] + 벽돌크기 <= C then 98 : { 99 : 벽돌개수 = int((C-고[0])/벽돌크기); 100 : 고[0] = 고[0] + 벽돌크기 * 벽돌개수; 101 : 102 : for j = 499 downto 벽돌개수 103 : { 104 : 렌코[j] = 렌코[j-벽돌개수]; 105 : } 106 : for j = 벽돌개수 - 1 downto 0 107 : { 108 : 렌코[j] = 렌코[j+1] + 벽돌크기; 109 : } 110 : } 111 : if 고[0] - 2*벽돌크기 >= C then 112 : { 113 : for j = 8 downto 0 114 : { 115 : 저[j+1] = 저[j]; 116 : } 117 : 방향 = 하락; 118 : 벽돌개수 = int((고[0]-C)/벽돌크기); 119 : 저[0] = 고[0] - 벽돌크기 * 벽돌개수; 120 : 121 : for j = 499 downto (벽돌개수-1) 122 : { 123 : 렌코[j] = 렌코[j-(벽돌개수-1)]; 124 : } 125 : 렌코[벽돌개수-2] = 렌코[벽돌개수-1] - 2*벽돌크기; 126 : if 벽돌개수 > 2 then 127 : { 128 : for j = 벽돌개수 - 3 downto 0 129 : { 130 : 렌코[j] = 렌코[j+1] - 벽돌크기; 131 : } 132 : } 133 : } 134 : } 135 : 136 : #==========================================# 137 : # 렌코 (가중)이평계산 138 : #==========================================# 139 : Sum = 0; 140 : for j = 0 to (단기-1) 141 : { 142 : Sum = Sum + 렌코[j]; 143 : } 144 : 단기이평 = Sum / 단기; 145 : 146 : Sum = 0; 147 : for j = 0 to (중기-1) 148 : { 149 : Sum = Sum + 렌코[j]; 150 : } 151 : 중기이평 = Sum / 중기; 152 : 153 : Sum = 0; 154 : CSum = 0; 155 : for j = 0 to (단기-1) 156 : { 157 : Sum = Sum + 렌코[j] * (단기 - j); 158 : CSum = CSum + (단기 - j); 159 : } 160 : 단기가중이평 = Sum / CSum; 161 : 162 : Sum = 0; 163 : CSum = 0; 164 : for j = 0 to (중기-1) 165 : { 166 : Sum = Sum + 렌코[j] * (중기 - j); 167 : CSum = CSum + (중기 - j); 168 : } 169 : 중기가중이평 = Sum / CSum; 170 : 171 : #==========================================# 172 : # 지표식 출력 173 : #==========================================# 174 : if 방향[1]==하락 and 방향==상승 then 175 : plot1(저[0],"렌코차트",Blue); //선그래프 176 : if 방향[1]==상승 and 방향==하락 then 177 : plot1(고[0],"렌코차트",RED); //선그래프 178 : 179 : plot2(렌코[0],"렌코값",iff(방향==상승,RED,BLUE)); //선그래프 180 : 181 : plot3(단기가중이평); //선그래프 182 : plot4(중기가중이평); //선그래프 여기 Q&A 게시판에도 렌코차트 관련 질문이 다수 보이던데 그중 11740번 질문에 매매 아이디어가 있어 인용합니다. 3. 렌코차트에서 두번째 붉은벽돌이 출현하면 매수하고, 세번째 파란벽돌이 나타나면 매도하라는 시스템식을 부탁드립니다. 예전 수식으로는 이게 불가능했습니다만 위 수식을 이용하면 이런 매매 로직도 가능합니다. 두번째 붉을벽돌의 출현은 현재 추세가 상승중이고 두번째 이전의 값이 전저점(바닥)을 의미합니다. 단, 봉차트에서 구현하는 거라 상승폭이 크게 되면 전저점 값과 일치하지 않을 수 있습니다. 그래서 아래와 같이 등호가 아닌 부등호로 표현이 됩니다. if 방향==상승 and 렌코[2] >= 저[0] then Buy(); if 방향==하락 and 렌코[3] <= 고[0] then Sell();