커뮤니티

문의드립니다.

프로필 이미지
회원
2015-12-13 23:55:01
198
글번호 93360
답변완료
1. Input:Rsi변동폭(0.5); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); Input : RSIP(14), Period(50),dv(2.1); var : RSIV(0),Mid(0),BBup(0),BBdn(0),RSIBandB(0); RSIV = RSI(RSIP); Mid = ma(RSIV,Period); BBup = Mid+STD(RSIV,Period)*dv; BBdn = Mid-STD(RSIV,Period)*dv; RSIBandB = (RSIv - BBdn)/(BBup - BBdn); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RSIBandB || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RSIBandB || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 <= RSIBandB Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 >= RSIBandB Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 > RSIBandB Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 < RSIBandB Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If Rsi파동선[1] != Rsi파동선 Then { Plot1(파동선); //적당껏 수평이동 # PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } Else If LastBarOnChart == 1 Then { plot1(Iff(방향 == 상승,고[0],저[0])); #PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } #상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승 If 저[2] > 저[1] && Rsi저[2] < Rsi저[1] Then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2]; Plot2(추세선,"상승다이버전스"); } #하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락 if 고[2] < 고[1] && Rsi고[2] > Rsi고[1] Then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2]; Plot3(추세선,"하락다이버전스"); } ................................................................................... 2. input : 고점(265),저점(264); var1 = 고점-저점; plot1(고점+var1*1.000); plot2(고점+var1*0.618); plot3(고점+var1*0.236); plot4(고점); plot5(저점+var1*0.724); plot6(저점+var1*0.618); plot7(저점+var1*0.500); plot8(저점+var1*0.382); plot9(저점+var1*0.236); plot10(저점); plot11(저점-var1*0.236); plot12(저점-var1*0.618); plot13(저점-var1*1.000); .................................................................................... 1번지표와 2번지표를 결합해서 하나로 만들고 싶습니다. 1번을 실행해 보면 챠트에 파동선이 그려지는데..(다이버젼스선은 생략해 주세요) 그 파동선의 고점과 저점 (즉 꺽은선이 생기면)이 생기면 그에 해당되는 피보나치 비율을 수평선으로 그려 주셨으면 합니다. 다시 파동선에서 꺽은선이 생기면 그에 따라 피보나치 수평선 다섯개도 다시 갱신해 주시구요. 가능한 대로 표현해 주세요 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-12-14 14:55:49

안녕하세요 예스스탁입니다. Input:Rsi변동폭(0.5); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); Input : RSIP(14), Period(50),dv(2.1); var : RSIV(0),Mid(0),BBup(0),BBdn(0),RSIBandB(0); RSIV = RSI(RSIP); Mid = ma(RSIV,Period); BBup = Mid+STD(RSIV,Period)*dv; BBdn = Mid-STD(RSIV,Period)*dv; RSIBandB = (RSIv - BBdn)/(BBup - BBdn); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RSIBandB || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RSIBandB || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 <= RSIBandB Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 >= RSIBandB Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 > RSIBandB Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 < RSIBandB Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If Rsi파동선[1] != Rsi파동선 Then { Plot1(파동선); //적당껏 수평이동 # PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } Else If LastBarOnChart == 1 Then { plot1(Iff(방향 == 상승,고[0],저[0])); #PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } /* #상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승 If 저[2] > 저[1] && Rsi저[2] < Rsi저[1] Then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2]; Plot2(추세선,"상승다이버전스"); } #하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락 if 고[2] < 고[1] && Rsi고[2] > Rsi고[1] Then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2]; Plot3(추세선,"하락다이버전스"); } */ var1 = 고[1]-저[1]; plot21(고[1]+var1*1.000); plot22(고[1]+var1*0.618); plot23(고[1]+var1*0.236); plot24(고[1]); plot25(저[1]+var1*0.724); plot26(저[1]+var1*0.618); plot27(저[1]+var1*0.500); plot28(저[1]+var1*0.382); plot29(저[1]+var1*0.236); plot30(저[1]); plot31(저[1]-var1*0.236); plot32(저[1]-var1*0.618); plot33(저[1]-var1*1.000); 즐거운 하루되세요 > alsk 님이 쓴 글입니다. > 제목 : 문의드립니다. > 1. Input:Rsi변동폭(0.5); Var:j(0),상승(100),하락(-100),양방향(2),추세(0), 파동선(0),Rsi파동선(0),방향(0),추세선(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0), Rsi고[20](0),Rsi저[20](0),Rsi고Bar[20](0),Rsi저Bar[20](0); Input : RSIP(14), Period(50),dv(2.1); var : RSIV(0),Mid(0),BBup(0),BBdn(0),RSIBandB(0); RSIV = RSI(RSIP); Mid = ma(RSIV,Period); BBup = Mid+STD(RSIV,Period)*dv; BBdn = Mid-STD(RSIV,Period)*dv; RSIBandB = (RSIv - BBdn)/(BBup - BBdn); #==========================================# # 전고점,전저점 index 증가 #==========================================# For j = 1 To 19 { Rsi고Bar[j] = Rsi고Bar[j] + 1; Rsi저Bar[j] = Rsi저Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 고Bar[j] = 고Bar[j] + 1; } #==========================================# # 최근 고,저 갱신 #==========================================# If Rsi고[0] <= RSIBandB || Rsi고[0] == 0 || IsNaN(Rsi고[0]) == True Then { Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } Else Rsi고Bar[0] = Rsi고Bar[0] + 1; If Rsi저[0] >= RSIBandB || Rsi저[0] == 0 || IsNaN(Rsi저[0]) == True Then { Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } Else Rsi저Bar[0] = Rsi저Bar[0] + 1; If 고[0] <= H || 고[0] == 0 || IsNaN(고[0]) == True Then { 고[0] = H; 고Bar[0] = 0; } Else 고Bar[0] = 고Bar[0] + 1; If 저[0] >= L || 저[0] == 0 || IsNaN(저[0]) == True Then { 저[0] = L; 저Bar[0] = 0; } Else 저Bar[0] = 저Bar[0] + 1; #==========================================# # 추세방향 결정 #==========================================# If Rsi저[0][1] + Rsi변동폭 > RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 <= RSIBandB Then 방향 = 상승; If Rsi고[0][1] - Rsi변동폭 < RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 >= RSIBandB Then 방향 = 하락; #==========================================# # 추세변화에 따른 변곡점 처리 #==========================================# If 방향[1] == 하락 && 방향 == 상승 Then { For j = 18 DownTo 1 { Rsi저[j+1] = Rsi저[j]; Rsi저Bar[j+1] = Rsi저Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; 고[0] = H; 고Bar[0] = 0; } Else If 방향[1] == 상승 && 방향 == 하락 Then { For j = 18 DownTo 1 { Rsi고[j+1] = Rsi고[j]; Rsi고Bar[j+1] = Rsi고Bar[j]; 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; 저[0] = L; 저Bar[0] = 0; } Else If 방향[1] == 하락 && 방향 == 하락 Then { If Rsi고[1] < Rsi고[0] && Rsi고[0][1] - Rsi변동폭 <= RSIBandB[1] && Rsi고[0][1] - Rsi변동폭 > RSIBandB Then { Rsi고[1] = Rsi고[0]; Rsi고Bar[1] = Rsi고Bar[0]; Rsi파동선 = Rsi고[0]; Rsi고[0] = RSIBandB; Rsi고Bar[0] = 0; } If 고[1] < 고[0] && 고[0] > H Then { 고[1] = 고[0]; 고Bar[1] = 고Bar[0]; 파동선 = 고[0]; 고[0] = H; 고Bar[0] = 0; } } Else If 방향[1] == 상승 && 방향 == 상승 Then { If Rsi저[1] > Rsi저[0] && Rsi저[0][1] + Rsi변동폭 >= RSIBandB[1] && Rsi저[0][1] + Rsi변동폭 < RSIBandB Then { Rsi저[1] = Rsi저[0]; Rsi저Bar[1] = Rsi저Bar[0]; Rsi파동선 = Rsi저[0]; Rsi저[0] = RSIBandB; Rsi저Bar[0] = 0; } If 저[1] > 저[0] && 저[0] < L Then { 저[1] = 저[0]; 저Bar[1] = 저Bar[0]; 파동선 = 저[0]; 저[0] = L; 저Bar[0] = 0; } } #==========================================# # 지표식 출력 #==========================================# If Rsi파동선[1] != Rsi파동선 Then { Plot1(파동선); //적당껏 수평이동 # PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } Else If LastBarOnChart == 1 Then { plot1(Iff(방향 == 상승,고[0],저[0])); #PlaySound("C:₩예스트레이더₩data₩Sound₩sound6.wav"); } #상승 다이버전스 : 주가의 저점 하락 + 지표의 저점 상승 If 저[2] > 저[1] && Rsi저[2] < Rsi저[1] Then { 추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1])*저Bar[2] + 저[2]; Plot2(추세선,"상승다이버전스"); } #하락 다이버전스 : 주가의 고점 상승 + 지표의 고점 하락 if 고[2] < 고[1] && Rsi고[2] > Rsi고[1] Then { 추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1])*고Bar[2] + 고[2]; Plot3(추세선,"하락다이버전스"); } ................................................................................... 2. input : 고점(265),저점(264); var1 = 고점-저점; plot1(고점+var1*1.000); plot2(고점+var1*0.618); plot3(고점+var1*0.236); plot4(고점); plot5(저점+var1*0.724); plot6(저점+var1*0.618); plot7(저점+var1*0.500); plot8(저점+var1*0.382); plot9(저점+var1*0.236); plot10(저점); plot11(저점-var1*0.236); plot12(저점-var1*0.618); plot13(저점-var1*1.000); .................................................................................... 1번지표와 2번지표를 결합해서 하나로 만들고 싶습니다. 1번을 실행해 보면 챠트에 파동선이 그려지는데..(다이버젼스선은 생략해 주세요) 그 파동선의 고점과 저점 (즉 꺽은선이 생기면)이 생기면 그에 해당되는 피보나치 비율을 수평선으로 그려 주셨으면 합니다. 다시 파동선에서 꺽은선이 생기면 그에 따라 피보나치 수평선 다섯개도 다시 갱신해 주시구요. 가능한 대로 표현해 주세요 감사합니다.