커뮤니티

수식 문의드립니다.

프로필 이미지
spark
2014-02-07 05:39:48
189
글번호 72293
답변완료
Data1에 10분봉 Data2에 일봉 이렇게 놓고 Swinglow 값을 구하려고 합니다. Var : DL1(0), DL2(0,Data2); Var : SwingLow1(0); Var : SwingLow2(0); Var : SwingLow3(0); DL1 = Data2(Low); DL2 = Data2(Low); If CurrentBar == 1 Then ClearDebug; SwingLow1 = Data2(SwingLow(1,L,5,5,25)); SwingLow2 = SwingLow(1,DL1,5,5,25); SwingLow3 = SwingLow(1,DL2,5,5,25); If SwingLow1 <> -1 Then Plot1(SwingLow1,"SwingLow1"); If SwingLow2 <> -1 Then Plot2(SwingLow2,"SwingLow2"); If SwingLow3 <> -1 Then Plot3(SwingLow3,"SwingLow3"); MessageLog("SwingLow1 %.2f SwingLow2 %.2f SwingLow3 %.2f",SwingLow1, SwingLow2, SwingLow3); 예스트레이더 메뉴얼을 참고를 했습니다만 위의 swinglow1,2,3 값이 조금씩 다르게 나옵니다. 설명 부탁드립니다. 제가 실제적으로 오늘자 데이터까지 포함된 수치를 구하고자 하는데요 다시 말해서 가장 오른쪽 데이터는 당일자 실시간 10분봉이고 그 이전의 참고값들은 일봉을 이용해서 swinglow 수치를 구할 때 SwingLow2 = SwingLow(1,DL1,5,5,25); <- 이렇게 작성하는게 맞는지요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-07 16:49:44

안녕하세요 예스스탁입니다. 참조데이터를 사용하는 식을 만드실때 변수선언시에 모두 해당 변수의 값을 저장하는 데이터의 주기를 명시하셔야 하며 또한 함수도 데이터번호로 지정해 주셔야 합니다. Var : DL1(0), DL2(0,Data2); 작성하신 식에서 위와 같이 변수를 선언하시면 DL1은 주종목봉수로 이전값을 참조를 하게 됩니다. DL1이 참조데이터가 아닌 주종목기준으로 한봉전에서 봤을때의 참조데이터 값입니다. DL2는 data2로 값을 저장했으르모 DL2[1]가 data2 주기의 전봉값입니다. 함수를 변수에 할당하실때도 SwingLow1 = Data2(SwingLow(1,L,5,5,25)); SwingLow2 = data2(SwingLow(1,DL1,5,5,25)); SwingLow3 = data2(SwingLow(1,DL2,5,5,25)); 와 같이 데이터함수안에 함수식을 사용해야 합니다. SwingLow(1,DL1,5,5,25)라고만 하시면 좌우측 봉수를 주종목봉 기준으로 체크합니다. 위와 같은 이유로 3개의 값이 모두 다른내용이 됩니다. 아래 도움말 링크 참고해 보시기 바랍니다. http://www.yesstock.com/YesTrader/YesLanguage/YesLanguage_help/4_4_3.htm 아래와 같이 변수와 함수를 모두 참조함수 처리를 하셔야 합니다. Var : DL1(0,data2), DL2(0,Data2); Var : SwingLow1(0,data2); Var : SwingLow2(0,data2); Var : SwingLow3(0,data2); DL1 = Data2(Low); DL2 = Data2(Low); If CurrentBar == 1 Then ClearDebug; SwingLow1 = Data2(SwingLow(1,L,5,5,25)); SwingLow2 = data2(SwingLow(1,DL1,5,5,25)); SwingLow3 = data2(SwingLow(1,DL2,5,5,25)); If SwingLow1 <> -1 Then Plot1(SwingLow1,"SwingLow1"); If SwingLow2 <> -1 Then Plot2(SwingLow2,"SwingLow2"); If SwingLow3 <> -1 Then Plot3(SwingLow3,"SwingLow3"); 당일을 포함해서 일봉의 스윙값을 구하고자 하시면 위와 같은 식으로는 작성하실 수 없습니다. 아래와 같이 풀어서 작성하셔야 합니다. input : Left(5),Right(5); var : cnt(0),RightLow(0),LeftLow(0),SwingL(0); #0~4일전 최저가 RightLow = DayLow(0); for cnt = 0 to Right-1{ if DayLow(cnt) < RightLow Then RightLow = DayLow(cnt); } var1 = daylow(Right); #6~10일전 최저가 LeftLow = daylow(Right+1); for cnt = Right+1 to Left+Right{ if DayLow(cnt) < LeftLow Then LeftLow = DayLow(cnt); } #5일전 저가가 0~4일전 최고가보다 작고 6~10일전 최저가보다 작으면 true if LeftLow > var1 and var1< RightLow Then SwingL = var1; plot1(SwingL); 즐거운 하루되세요 > spark 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > Data1에 10분봉 Data2에 일봉 이렇게 놓고 Swinglow 값을 구하려고 합니다. Var : DL1(0), DL2(0,Data2); Var : SwingLow1(0); Var : SwingLow2(0); Var : SwingLow3(0); DL1 = Data2(Low); DL2 = Data2(Low); If CurrentBar == 1 Then ClearDebug; SwingLow1 = Data2(SwingLow(1,L,5,5,25)); SwingLow2 = SwingLow(1,DL1,5,5,25); SwingLow3 = SwingLow(1,DL2,5,5,25); If SwingLow1 <> -1 Then Plot1(SwingLow1,"SwingLow1"); If SwingLow2 <> -1 Then Plot2(SwingLow2,"SwingLow2"); If SwingLow3 <> -1 Then Plot3(SwingLow3,"SwingLow3"); MessageLog("SwingLow1 %.2f SwingLow2 %.2f SwingLow3 %.2f",SwingLow1, SwingLow2, SwingLow3); 예스트레이더 메뉴얼을 참고를 했습니다만 위의 swinglow1,2,3 값이 조금씩 다르게 나옵니다. 설명 부탁드립니다. 제가 실제적으로 오늘자 데이터까지 포함된 수치를 구하고자 하는데요 다시 말해서 가장 오른쪽 데이터는 당일자 실시간 10분봉이고 그 이전의 참고값들은 일봉을 이용해서 swinglow 수치를 구할 때 SwingLow2 = SwingLow(1,DL1,5,5,25); <- 이렇게 작성하는게 맞는지요?