커뮤니티
사용자지표수식질문요
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출력);
}
}
}
}
이수식을 적용할수 있게 한글값 영어로 지정해주시고 만들어주세요ㅠㅠ좀깁니다.
혹시나 틀린부분있으면 체크수정후 말씀좀해주시면 감사하겠습니다.