커뮤니티

수식 부탁드립니다.

프로필 이미지
해피오
2023-11-30 11:56:14
1218
글번호 174459
답변완료
1. 84718번 재문의에 대한 답변 부탁드립니다. 2. 최근 3봉전부터 12봉사이에 상한가가 1회이상 발생된 이후 음봉출현이 3회이상 발생할때의 매수신호수식. 3번째이상 발생되는 음봉의 조건은? (1) 상한가이후 음봉 세개가 연속되지않아도 되나 마지막 2개는 연속발생되어야 한다. 상한가이후 첫음봉사이는 양봉의 수는 상관없고, 첫음봉이후 2번째 음봉사이에서는 양봉이 없거나 있더라도 3개이하이어야 하고 마지막 2개음봉은 연속 발생되어야 한다. (2) 연속된 2개의 음봉을 비교하면 전음봉의 종가보다 마지막 음봉의 종가가 낮아야 하고 (3) 전음봉의 거래량보다 마지막 음봉의 거래량이 적어야 하며 (4) 상한가시의 거래량보다 마지막 음봉시의 거래량이 1/5이하이어야 한다 (5) 음봉이 3회이상 출현되고 2번째 3번째 음봉이 연속된 것은 충족((1)충족)했으나 (2)(3)(4)가 미충족인경우에는 (1)이 충족되면서 (2)(3)(4)가 충족되는 음봉에서 검색되게 해주시면 됩니다. 즉 3회이상의 음봉에서 만족되면 검색되어야 합니다. 단 음봉3회이상 출현이후 양봉발생시에는 검색대상이 아닙니다.
종목검색
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2023-11-30 16:14:02

안녕하세요 예스스탁입니다. 1 특정값을 해당기간 수평으로 표시되려면 추세선으로 처리가 되어야 합니다. 일반 plot으로는 현재값으로 과거로 그리지 못합니다. 모두 해당 기간에 첫봉부터 마지막봉까지 수평으로 표시되게 추세선으로 그려지게 수정해 드립니다. 1-1 var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0); if Bdate > Bdate[1]+1000 Then { value1 = sDate; Value2 = sTime; var1 = o; var2 = h; var3 = l; var4 = c; var11 = var1[1]; var21 = var2[1]; var31 = var3[1]; var41 = var4[1]; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; tl1 = tl_new(value1,Value2,var1,NextBarSdate,NextBarStime,var1); tl2 = tl_new(value1,Value2,var2,NextBarSdate,NextBarStime,var2); tl3 = tl_new(value1,Value2,var3,NextBarSdate,NextBarStime,var3); tl4 = tl_new(value1,Value2,var4,NextBarSdate,NextBarStime,var4); tl5 = tl_new(value1,Value2,var5,NextBarSdate,NextBarStime,var5); tl6 = tl_new(value1,Value2,var6,NextBarSdate,NextBarStime,var6); TL_SetColor(tl1,Green); TL_SetColor(tl2,Red); TL_SetColor(tl3,Blue); TL_SetColor(tl4,Black); TL_SetColor(tl5,Magenta); TL_SetColor(tl6,Cyan); } if Var1 > 0 Then { if h > Var2 Then Var2 = h; if l < Var3 Then Var3 = l; Var4 = c; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetBegin(tl2,value1,Value2,var2); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); TL_SetBegin(tl3,value1,Value2,var3); TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetBegin(tl4,value1,Value2,var4); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); TL_SetBegin(tl5,value1,Value2,var5); TL_SetEnd(tl5,NextBarSdate,NextBarStime,var5); TL_SetEnd(tl6,NextBarSdate,NextBarStime,var6); 1-2 var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0); if Bdate > Bdate[1]+30 Then { value1 = sDate; Value2 = sTime; var1 = o; var2 = h; var3 = l; var4 = c; var11 = var1[1]; var21 = var2[1]; var31 = var3[1]; var41 = var4[1]; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; tl1 = tl_new(value1,Value2,var1,NextBarSdate,NextBarStime,var1); tl2 = tl_new(value1,Value2,var2,NextBarSdate,NextBarStime,var2); tl3 = tl_new(value1,Value2,var3,NextBarSdate,NextBarStime,var3); tl4 = tl_new(value1,Value2,var4,NextBarSdate,NextBarStime,var4); tl5 = tl_new(value1,Value2,var5,NextBarSdate,NextBarStime,var5); tl6 = tl_new(value1,Value2,var6,NextBarSdate,NextBarStime,var6); TL_SetColor(tl1,Green); TL_SetColor(tl2,Red); TL_SetColor(tl3,Blue); TL_SetColor(tl4,Black); TL_SetColor(tl5,Magenta); TL_SetColor(tl6,Cyan); } if Var1 > 0 Then { if h > Var2 Then Var2 = h; if l < Var3 Then Var3 = l; Var4 = c; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetBegin(tl2,value1,Value2,var2); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); TL_SetBegin(tl3,value1,Value2,var3); TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetBegin(tl4,value1,Value2,var4); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); TL_SetBegin(tl5,value1,Value2,var5); TL_SetEnd(tl5,NextBarSdate,NextBarStime,var5); TL_SetEnd(tl6,NextBarSdate,NextBarStime,var6); 2-1 var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if date >= 20230125 Then { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } Else { if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } } if CodeCategory() == 1 || CodeCategory() == 2 then { if date >= 20230125 Then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 200000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=200000, up2, up3); Else If BP >= 20000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=20000, up4, up5); Else If BP >= 2000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=2000, up6, up7); } Else { if sdate < 20101004 Then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } var : T(0); if C > O Then T = 1; else if C < O Then T = -1; Else T = 0; if H >= 상한가 Then { var1 = Index; Var2 = v; Var3 = 0; Condition1 = False; } Else { if var1 > 0 Then { if T == -1 Then { Var3 = Var3+1; if Var2 == 3 and T[1] == -1 and C < C[1] and V < V[1] and V <= var2*0.2 Then Condition1 = true; } if Condition1 == true and C > O Then Condition1 = False; if Condition1 == true Then find(1); } } 즐거운 하루되세요 > 해피오 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 1. 84718번 재문의에 대한 답변 부탁드립니다. 2. 최근 3봉전부터 12봉사이에 상한가가 1회이상 발생된 이후 음봉출현이 3회이상 발생할때의 매수신호수식. 3번째이상 발생되는 음봉의 조건은? (1) 상한가이후 음봉 세개가 연속되지않아도 되나 마지막 2개는 연속발생되어야 한다. 상한가이후 첫음봉사이는 양봉의 수는 상관없고, 첫음봉이후 2번째 음봉사이에서는 양봉이 없거나 있더라도 3개이하이어야 하고 마지막 2개음봉은 연속 발생되어야 한다. (2) 연속된 2개의 음봉을 비교하면 전음봉의 종가보다 마지막 음봉의 종가가 낮아야 하고 (3) 전음봉의 거래량보다 마지막 음봉의 거래량이 적어야 하며 (4) 상한가시의 거래량보다 마지막 음봉시의 거래량이 1/5이하이어야 한다 (5) 음봉이 3회이상 출현되고 2번째 3번째 음봉이 연속된 것은 충족((1)충족)했으나 (2)(3)(4)가 미충족인경우에는 (1)이 충족되면서 (2)(3)(4)가 충족되는 음봉에서 검색되게 해주시면 됩니다. 즉 3회이상의 음봉에서 만족되면 검색되어야 합니다. 단 음봉3회이상 출현이후 양봉발생시에는 검색대상이 아닙니다.
프로필 이미지

해피오

2023-11-30 18:23:17

시가선의 색깔과 굵기를 지정할려면 어케해야하나요? TL_SetColor(tl1,Green); TL_SetThickness(tl1, 2); 이런씩으로 전부룰 수정해야하나요? 지표속성의 변수와 차트표시항목으로 처리할 수 없을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 부탁드립니다. > 안녕하세요 예스스탁입니다. 1 특정값을 해당기간 수평으로 표시되려면 추세선으로 처리가 되어야 합니다. 일반 plot으로는 현재값으로 과거로 그리지 못합니다. 모두 해당 기간에 첫봉부터 마지막봉까지 수평으로 표시되게 추세선으로 그려지게 수정해 드립니다. 1-1 var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0); if Bdate > Bdate[1]+1000 Then { value1 = sDate; Value2 = sTime; var1 = o; var2 = h; var3 = l; var4 = c; var11 = var1[1]; var21 = var2[1]; var31 = var3[1]; var41 = var4[1]; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; tl1 = tl_new(value1,Value2,var1,NextBarSdate,NextBarStime,var1); tl2 = tl_new(value1,Value2,var2,NextBarSdate,NextBarStime,var2); tl3 = tl_new(value1,Value2,var3,NextBarSdate,NextBarStime,var3); tl4 = tl_new(value1,Value2,var4,NextBarSdate,NextBarStime,var4); tl5 = tl_new(value1,Value2,var5,NextBarSdate,NextBarStime,var5); tl6 = tl_new(value1,Value2,var6,NextBarSdate,NextBarStime,var6); TL_SetColor(tl1,Green); TL_SetColor(tl2,Red); TL_SetColor(tl3,Blue); TL_SetColor(tl4,Black); TL_SetColor(tl5,Magenta); TL_SetColor(tl6,Cyan); } if Var1 > 0 Then { if h > Var2 Then Var2 = h; if l < Var3 Then Var3 = l; Var4 = c; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetBegin(tl2,value1,Value2,var2); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); TL_SetBegin(tl3,value1,Value2,var3); TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetBegin(tl4,value1,Value2,var4); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); TL_SetBegin(tl5,value1,Value2,var5); TL_SetEnd(tl5,NextBarSdate,NextBarStime,var5); TL_SetEnd(tl6,NextBarSdate,NextBarStime,var6); 1-2 var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0); if Bdate > Bdate[1]+30 Then { value1 = sDate; Value2 = sTime; var1 = o; var2 = h; var3 = l; var4 = c; var11 = var1[1]; var21 = var2[1]; var31 = var3[1]; var41 = var4[1]; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; tl1 = tl_new(value1,Value2,var1,NextBarSdate,NextBarStime,var1); tl2 = tl_new(value1,Value2,var2,NextBarSdate,NextBarStime,var2); tl3 = tl_new(value1,Value2,var3,NextBarSdate,NextBarStime,var3); tl4 = tl_new(value1,Value2,var4,NextBarSdate,NextBarStime,var4); tl5 = tl_new(value1,Value2,var5,NextBarSdate,NextBarStime,var5); tl6 = tl_new(value1,Value2,var6,NextBarSdate,NextBarStime,var6); TL_SetColor(tl1,Green); TL_SetColor(tl2,Red); TL_SetColor(tl3,Blue); TL_SetColor(tl4,Black); TL_SetColor(tl5,Magenta); TL_SetColor(tl6,Cyan); } if Var1 > 0 Then { if h > Var2 Then Var2 = h; if l < Var3 Then Var3 = l; Var4 = c; Var5 = (Var3+Var4)/2; Var6 = (var1+var11)/2; } TL_SetEnd(tl1,NextBarSdate,NextBarStime,var1); TL_SetBegin(tl2,value1,Value2,var2); TL_SetEnd(tl2,NextBarSdate,NextBarStime,var2); TL_SetBegin(tl3,value1,Value2,var3); TL_SetEnd(tl3,NextBarSdate,NextBarStime,var3); TL_SetBegin(tl4,value1,Value2,var4); TL_SetEnd(tl4,NextBarSdate,NextBarStime,var4); TL_SetBegin(tl5,value1,Value2,var5); TL_SetEnd(tl5,NextBarSdate,NextBarStime,var5); TL_SetEnd(tl6,NextBarSdate,NextBarStime,var6); 2-1 var : 상한가(0), UpLimit(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if date >= 20230125 Then { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } Else { if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } } if CodeCategory() == 1 || CodeCategory() == 2 then { if date >= 20230125 Then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 200000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=200000, up2, up3); Else If BP >= 20000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=20000, up4, up5); Else If BP >= 2000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=2000, up6, up7); } Else { if sdate < 20101004 Then { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else { If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } var : T(0); if C > O Then T = 1; else if C < O Then T = -1; Else T = 0; if H >= 상한가 Then { var1 = Index; Var2 = v; Var3 = 0; Condition1 = False; } Else { if var1 > 0 Then { if T == -1 Then { Var3 = Var3+1; if Var2 == 3 and T[1] == -1 and C < C[1] and V < V[1] and V <= var2*0.2 Then Condition1 = true; } if Condition1 == true and C > O Then Condition1 = False; if Condition1 == true Then find(1); } } 즐거운 하루되세요 > 해피오 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 1. 84718번 재문의에 대한 답변 부탁드립니다. 2. 최근 3봉전부터 12봉사이에 상한가가 1회이상 발생된 이후 음봉출현이 3회이상 발생할때의 매수신호수식. 3번째이상 발생되는 음봉의 조건은? (1) 상한가이후 음봉 세개가 연속되지않아도 되나 마지막 2개는 연속발생되어야 한다. 상한가이후 첫음봉사이는 양봉의 수는 상관없고, 첫음봉이후 2번째 음봉사이에서는 양봉이 없거나 있더라도 3개이하이어야 하고 마지막 2개음봉은 연속 발생되어야 한다. (2) 연속된 2개의 음봉을 비교하면 전음봉의 종가보다 마지막 음봉의 종가가 낮아야 하고 (3) 전음봉의 거래량보다 마지막 음봉의 거래량이 적어야 하며 (4) 상한가시의 거래량보다 마지막 음봉시의 거래량이 1/5이하이어야 한다 (5) 음봉이 3회이상 출현되고 2번째 3번째 음봉이 연속된 것은 충족((1)충족)했으나 (2)(3)(4)가 미충족인경우에는 (1)이 충족되면서 (2)(3)(4)가 충족되는 음봉에서 검색되게 해주시면 됩니다. 즉 3회이상의 음봉에서 만족되면 검색되어야 합니다. 단 음봉3회이상 출현이후 양봉발생시에는 검색대상이 아닙니다.