커뮤니티

사용자지표수식질문요

프로필 이미지
타고난스캘퍼
2012-02-15 22:56:16
601
글번호 47805
답변완료
input:날짜(20120215), //작성할날짜 측정단위(1); //데이터가 하나의 시트에 다 들어가지 않을 경우 측정단위의 수치를 높여준다 Var:행(0),열(0),단위가격(0),추가행(0),알파벳(""),총개수(0),추정거래량(0), 타임체크(0),cnt(0),mp출력(""); Array:가격대[100](0),거래량[100](0),개수[100](0),mp[100,50](""); 단위가격 = 측정단위 * priceScale; if 날짜 == CurrentDate and Time < CloseTimeN(0) then //사용자함수사용 타임체크 = MinutesToTime((int(TimeToMinutes(CurrentTime)/BarInterval)-1)*Barinterval); if Date == 날짜 then { if DayIndex()==0 then { 가격대[0] = H + 단위가격 * 10; for 행 = 0 to 98 { 가격대[행+1] = 가격대[행] - 단위가격; } } if 가격대 [0] <= H then { 추가행 = ceiling((H-가격대[0]/단위가격) + 5); for 행 = (99 - 추가행) downto 0 { 가격대[행+추가행] = 가격대[행]; 거래량[행+추가행] = 거래량[행]; 개수[행+추가행] = 개수[행]; For 열 = 1 to 49 { mp[행+추가행,열] = mp[행,열]; } } 가격대[0] = 가격대[0] + 단위가격 * 추가행; for 행 = 0 to (추가행-1) { 가격대[행+1] = 가격대[행] - 단위가격; } for 행 = 0 to 추가행 { 거래량[행] = 0; 개수[행] = 0; For 열 = 1 to 49 { mp[행,열] = ""; } } } 알파벳 = NumtoAlphabet(Dayindex + 1); //사용자함수 사용 cnt = 0; for 행 = 0 to 99 { if L <= 가격대[행] and 가격대[행] <= H then cnt = cnt + 1; } 추정거래량 = V/cnt; for 행 = 0 to 99 { if L <= 가격대[행] and 가격대[행] <= H then { for 열 = 1 to 49 { if mp[행,열] == "" then { mp[행,열] = 알파벳; 열 = 50; } } 거래량[행] = 거래량[행] + 추정거래량; 개수[행] = 개수[행] + 1; 총개수 = 총개수 + 1; } } if Time >= CloseTimeN(0) or // 사용자함수 사용 (날짜 == CurrentDate and !(LastBaronChart()) and stime == 타임체크) then { for 행 = 0 to 99 { if 거래량[행] > 0 then { mp출력 = ""; for 열 = 1 to 49 { mp출력 = mp출력 + mp[행,열] + ","; } print("마켓프로파일"+알파벳+".csv",",%.0f,%.0f,%.2f,%s", 거래량[행],개수[행],가격대[행],mp출력); } } } } 이수식을 적용할수 있게 한글값 영어로 지정해주시고 만들어주세요ㅠㅠ좀깁니다. 혹시나 틀린부분있으면 체크수정후 말씀좀해주시면 감사하겠습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-02-16 11:34:04

안녕하세요 예스스탁입니다. input:Specifieddate(20120215), //작성할날짜 unit(1); //데이터가 하나의 시트에 다 들어가지 않을 경우 측정단위의 수치를 높여준다 Var:Line(0),Row(0),UnitPrice(0),AddLine(0),Alphabet(""),Total(0),EstVol(0), TimeCheck(0),cnt(0),mpOutPut(""); Array:PriceRange[100](0),Vols[100](0),Num[100](0),mp[100,50](""); UnitPrice = unit * priceScale; if Specifieddate == CurrentDate and Time < CloseTimeN(0) then //사용자함수사용 TimeCheck = MinutesToTime((int(TimeToMinutes(CurrentTime)/BarInterval)-1)*Barinterval); if Date == Specifieddate then { if DayIndex()==0 then { PriceRange[0] = H + UnitPrice * 10; for Line = 0 to 98 { PriceRange[Line+1] = PriceRange[Line] - UnitPrice; } } if PriceRange [0] <= H then { AddLine = ceiling((H-PriceRange[0]/UnitPrice) + 5); for Line = (99 - AddLine) downto 0 { PriceRange[Line+AddLine] = PriceRange[Line]; Vols[Line+AddLine] = Vols[Line]; Num[Line+AddLine] = Num[Line]; For Row = 1 to 49 { mp[Line+AddLine,Row] = mp[Line,Row]; } } PriceRange[0] = PriceRange[0] + UnitPrice * AddLine; for Line = 0 to (AddLine-1) { PriceRange[Line+1] = PriceRange[Line] - UnitPrice; } for Line = 0 to AddLine { Vols[Line] = 0; Num[Line] = 0; For Row = 1 to 49 { mp[Line,Row] = ""; } } } Alphabet = NumtoAlphabet(Dayindex + 1); //사용자함수 사용 cnt = 0; for Line = 0 to 99 { if L <= PriceRange[Line] and PriceRange[Line] <= H then cnt = cnt + 1; } EstVol = V/cnt; for Line = 0 to 99 { if L <= PriceRange[Line] and PriceRange[Line] <= H then { for Row = 1 to 49 { if mp[Line,Row] == "" then { mp[Line,Row] = Alphabet; Row = 50; } } Vols[Line] = Vols[Line] + EstVol; Num[Line] = Num[Line] + 1; Total = Total + 1; } } if Time >= CloseTimeN(0) or // 사용자함수 사용 (Specifieddate == CurrentDate and !(LastBaronChart()) and stime == TimeCheck) then { for Line = 0 to 99 { if Vols[Line] > 0 then { mpOutPut = ""; for Row = 1 to 49 { mpOutPut = mpOutPut + mp[Line,Row] + ","; } print("마켓프로파일"+Alphabet+".csv",",%.0f,%.0f,%.2f,%s", Vols[Line],Num[Line],PriceRange[Line],mpOutPut); } } } } CloseTimeN함수는 기본으로 제공되는 함수가 아니라 정확한 내용파악이 되지 않습니다. 해당부분은 따로 작성자에게 해당 함수 문의하신 후 직접 사용자함수로 만들어서 사용하셔야 합니다. 즐거운 하루되세요 > 타고난스캘퍼 님이 쓴 글입니다. > 제목 : 사용자지표수식질문요 > input:날짜(20120215), //작성할날짜 측정단위(1); //데이터가 하나의 시트에 다 들어가지 않을 경우 측정단위의 수치를 높여준다 Var:행(0),열(0),단위가격(0),추가행(0),알파벳(""),총개수(0),추정거래량(0), 타임체크(0),cnt(0),mp출력(""); Array:가격대[100](0),거래량[100](0),개수[100](0),mp[100,50](""); 단위가격 = 측정단위 * priceScale; if 날짜 == CurrentDate and Time < CloseTimeN(0) then //사용자함수사용 타임체크 = MinutesToTime((int(TimeToMinutes(CurrentTime)/BarInterval)-1)*Barinterval); if Date == 날짜 then { if DayIndex()==0 then { 가격대[0] = H + 단위가격 * 10; for 행 = 0 to 98 { 가격대[행+1] = 가격대[행] - 단위가격; } } if 가격대 [0] <= H then { 추가행 = ceiling((H-가격대[0]/단위가격) + 5); for 행 = (99 - 추가행) downto 0 { 가격대[행+추가행] = 가격대[행]; 거래량[행+추가행] = 거래량[행]; 개수[행+추가행] = 개수[행]; For 열 = 1 to 49 { mp[행+추가행,열] = mp[행,열]; } } 가격대[0] = 가격대[0] + 단위가격 * 추가행; for 행 = 0 to (추가행-1) { 가격대[행+1] = 가격대[행] - 단위가격; } for 행 = 0 to 추가행 { 거래량[행] = 0; 개수[행] = 0; For 열 = 1 to 49 { mp[행,열] = ""; } } } 알파벳 = NumtoAlphabet(Dayindex + 1); //사용자함수 사용 cnt = 0; for 행 = 0 to 99 { if L <= 가격대[행] and 가격대[행] <= H then cnt = cnt + 1; } 추정거래량 = V/cnt; for 행 = 0 to 99 { if L <= 가격대[행] and 가격대[행] <= H then { for 열 = 1 to 49 { if mp[행,열] == "" then { mp[행,열] = 알파벳; 열 = 50; } } 거래량[행] = 거래량[행] + 추정거래량; 개수[행] = 개수[행] + 1; 총개수 = 총개수 + 1; } } if Time >= CloseTimeN(0) or // 사용자함수 사용 (날짜 == CurrentDate and !(LastBaronChart()) and stime == 타임체크) then { for 행 = 0 to 99 { if 거래량[행] > 0 then { mp출력 = ""; for 열 = 1 to 49 { mp출력 = mp출력 + mp[행,열] + ","; } print("마켓프로파일"+알파벳+".csv",",%.0f,%.0f,%.2f,%s", 거래량[행],개수[행],가격대[행],mp출력); } } } } 이수식을 적용할수 있게 한글값 영어로 지정해주시고 만들어주세요ㅠㅠ좀깁니다. 혹시나 틀린부분있으면 체크수정후 말씀좀해주시면 감사하겠습니다.