커뮤니티

피보나치 시간대 표현

프로필 이미지
올드송
2024-10-04 10:03:49
741
글번호 183957
답변완료
// 입력 변수 선언 input : StartDate(20240801); // 시작 날짜와 시간 var : starttime(0); // 피보나치 수열 정의 array: 피보나치_수열[10](0) ; 피보나치_수열[0] = 1; 피보나치_수열[1] = 2; 피보나치_수열[2] = 3; 피보나치_수열[3] = 5; 피보나치_수열[4] = 8; 피보나치_수열[5] = 13; 피보나치_수열[6] = 21; 피보나치_수열[7] = 34; 피보나치_수열[8] = 55; 피보나치_수열[9] = 89; // 추세선 출력 (각각의 피보나치 수열 값을 사용하여 수동으로 9개의 선 그리기) var : TL_ID1(0), TL_ID2(0), TL_ID3(0), TL_ID4(0), TL_ID5(0), TL_ID6(0), TL_ID7(0), TL_ID8(0), TL_ID9(0); var : 피보_날짜(0), 피보_가격(0); // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate ; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID1, Blue); TL_SetSize(TL_ID1, 3); // 선의 굵기 TL_SetDrawMode (TL_ID1,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID1,1); //1은 실선 TL_SetExtLeft(TL_ID1,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate + 피보나치_수열[0]; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID2, Blue); TL_SetSize(TL_ID2, 3); // 선의 굵기 TL_SetDrawMode (TL_ID2,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID2,1); //1은 실선 TL_SetExtLeft(TL_ID2,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate + 피보나치_수열[1]; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID3, Blue); TL_SetSize(TL_ID3, 3); // 선의 굵기 TL_SetDrawMode (TL_ID3,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID3,1); //1은 실선 TL_SetExtLeft(TL_ID3,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 날자를 인풋받아 그 날자를 기준으로 피보나치 시간대 (피보나치 수열의 세로선)를 그리고 싶습니다. 왠지 선도 이상하고... 장이 안열리는 휴일이 있어... 이런식으로 잘 될꺼 같지 않습니다. 이왕이면 for 문을 사용해 세련된 코드로 만들어 주세요 ㅎㅎ; 감사합니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-10-07 11:32:08

안녕하세요 예스스탁입니다. // 입력 변수 선언 input : StartDate(20240801); // 시작 날짜와 시간 var : ii(0),cnt(0),TL_ID(0); // 피보나치 수열 정의 array: 피보나치_수열[10](0) ; var1 = 1; var2 = 0; For cnt = 0 to 9 { 피보나치_수열[cnt] = var1+var2; var2 = var1; var1 = 피보나치_수열[cnt]; } // 추세선 출력 (각각의 피보나치 수열 값을 사용하여 수동으로 9개의 선 그리기) var : TL_ID1(0), TL_ID2(0), TL_ID3(0), TL_ID4(0), TL_ID5(0), TL_ID6(0), TL_ID7(0), TL_ID8(0), TL_ID9(0); var : 피보_날짜(0), 피보_가격(0); if Bdate >= StartDate Then { if Bdate != Bdate[1] Then { ii = ii +1; Condition1 = False; For cnt = 0 to 9 { if ii == 피보나치_수열[cnt] Then Condition1 = true; } if Condition1 == true Then { TL_ID = TL_New(SDate, STime, 0, SDate, STime, 999999999); TL_SetColor(TL_ID, Blue); TL_SetSize(TL_ID, 3); // 선의 굵기 TL_SetDrawMode (TL_ID,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID,1); //1은 실선 } } } 즐거운 하루되세요 > 올드송 님이 쓴 글입니다. > 제목 : 피보나치 시간대 표현 > // 입력 변수 선언 input : StartDate(20240801); // 시작 날짜와 시간 var : starttime(0); // 피보나치 수열 정의 array: 피보나치_수열[10](0) ; 피보나치_수열[0] = 1; 피보나치_수열[1] = 2; 피보나치_수열[2] = 3; 피보나치_수열[3] = 5; 피보나치_수열[4] = 8; 피보나치_수열[5] = 13; 피보나치_수열[6] = 21; 피보나치_수열[7] = 34; 피보나치_수열[8] = 55; 피보나치_수열[9] = 89; // 추세선 출력 (각각의 피보나치 수열 값을 사용하여 수동으로 9개의 선 그리기) var : TL_ID1(0), TL_ID2(0), TL_ID3(0), TL_ID4(0), TL_ID5(0), TL_ID6(0), TL_ID7(0), TL_ID8(0), TL_ID9(0); var : 피보_날짜(0), 피보_가격(0); // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate ; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID1, Blue); TL_SetSize(TL_ID1, 3); // 선의 굵기 TL_SetDrawMode (TL_ID1,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID1,1); //1은 실선 TL_SetExtLeft(TL_ID1,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate + 피보나치_수열[0]; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID2, Blue); TL_SetSize(TL_ID2, 3); // 선의 굵기 TL_SetDrawMode (TL_ID2,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID2,1); //1은 실선 TL_SetExtLeft(TL_ID2,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 // 각 피보나치 날짜에 해당하는 위치에 추세선 그리기 피보_날짜 = StartDate + 피보나치_수열[1]; 피보_가격 = c * 1.5; TL_ID1 = TL_New(StartDate, StartTime, c, StartDate, StartTime, c*1.1); TL_SetColor(TL_ID3, Blue); TL_SetSize(TL_ID3, 3); // 선의 굵기 TL_SetDrawMode (TL_ID3,2); // 캔들과 겹칠시 뒤에 1은 선색으로, 2는 반전 TL_SetSize(TL_ID3,1); //1은 실선 TL_SetExtLeft(TL_ID3,true); // 선의 왼쪽 확장 // TL_SetExtRight(TL_ID1,true); // 선의 왼쪽 확장 날자를 인풋받아 그 날자를 기준으로 피보나치 시간대 (피보나치 수열의 세로선)를 그리고 싶습니다. 왠지 선도 이상하고... 장이 안열리는 휴일이 있어... 이런식으로 잘 될꺼 같지 않습니다. 이왕이면 for 문을 사용해 세련된 코드로 만들어 주세요 ㅎㅎ; 감사합니다.