커뮤니티

질문입니다.

프로필 이미지
회원
2013-10-14 20:43:33
161
글번호 68457
답변완료
1.아래의 함수에서 현재 swinglow로 지정된 봉의 저가값을 불러오려면 어떻게 해야하나요? 또한 직전 swinglow로 지정된 봉의 저가값을 불러오려면 어떻게 해야하나요? 예를들어 현재 swinglow의 값보다 금일저가가 15%이하일 경우를 나타내려면... 직전 swinglow의 값보다 금일저가가 20%이하일 경우를 나타내려면... /* Description : Swing Low * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ Input : Occur(NumericSimple), Value(NumericSeries), Left(NumericSimple), Right(NumericSimple), Length(NumericSimple); Var : Result(0), X(0), J(0), Z(0), Ltrue(FALSE), Counter(0), Found(FALSE); if CurrentBar >= Length - 1 then { Result = -1; Z = 0; X = Right; Counter = 0; Found = FALSE; while Counter < Length && X + Left < Length && Found == FALSE Begin J = X + Left; Ltrue = TRUE; while Ltrue && J > X Begin if Value[X] > Value[J] then Ltrue = FALSE; J = J - 1; End J = X - 1; while Ltrue && J >= X - Right Begin if Value[X] >= Value[J] then Ltrue = FALSE; J = J - 1; End if LTrue == TRUE then { Z = Z + 1; if Z >= Occur then { Result = Value[X]; Found = TRUE; } } X = X + 1; Counter = Counter + 1; End if Z == 0 then SwingLow = -1; else SwingLow = Result; } 2.전봉 또는 현재봉이 직전 26개봉 최저가 이고 현재봉이 양봉이며 현재봉과 직전봉의 최저가를 이탈하는 봉이 2개이상 발생할경우 1을 호출하는 수식부탁드립니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-10-15 13:53:44

안녕하세요 예스스탁입니다. 1. Input : Occur(NumericSimple), Value(NumericSeries), Left(NumericSimple), Right(NumericSimple), Length(NumericSimple); Var : Result(0), X(0), J(0), Z(0), Ltrue(FALSE), Counter(0), Found(FALSE),ResultL(0); if CurrentBar >= Length - 1 then { Result = -1; Z = 0; X = Right; Counter = 0; Found = FALSE; while Counter < Length && X + Left < Length && Found == FALSE Begin J = X + Left; Ltrue = TRUE; while Ltrue && J > X Begin if Value[X] > Value[J] then Ltrue = FALSE; J = J - 1; End J = X - 1; while Ltrue && J >= X - Right Begin if Value[X] >= Value[J] then Ltrue = FALSE; J = J - 1; End if LTrue == TRUE then { Z = Z + 1; if Z >= Occur then { Result = Value[X]; ResultL1 = Low[X]; Found = TRUE; } } X = X + 1; Counter = Counter + 1; End if Z == 0 then SwingLow = -1; else SwingLow = ResultL; } 올려주신 식은 함수식입니다. 함수식은 리턴값이 한개이므로 리턴값이 2개이상이 한번에 리턴되지는 않습니다. 만약 스윙로우나 스윙하이 함수를 지표나 시스템에서 풀어서 작성하고 여러개의 값을 리턴받으시려면 동일한 식을 변수를 모두 달리해서 여러번 작성해야 수식이 길어지고 비효율적이 됩니다., 2. 문의하신 내용은 함수식 자체를 만드시는 것보다 아래와 같이 기본 함수식 그대로를 이용하면서 문의하신 내용이 구현이 가능합니다. Input :Left(3), Right(3); Var : mav(0); mav = ma(c,5); #5이평의 스윙로우가 발생하면 if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 then{ var1 = L[Right]; #스윙로우봉의 저가 저장 var2 = var1[1]; #직전 스윙로우봉의 저가 } plot1(var1); plot2(var2); 3. Input :Left(3), Right(3); Var : mav(0),SH1(0),SH2(0); mav = ma(c,5); #5이평의 스윙로우가 발생하면 if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 then{ SH1 = L[Right]; #스윙로우봉의 저가 저장 SH2 = SH1[1]; #직전 스윙로우봉의 저가 } #당일 저가가 최근 스윙로우봉의 저가보다 15% 이하이고 #당일 저가가 직전 스윙로우봉의 저가보다 20% 이하이면 #SH2 > 0은 SH2(직전값 저장변수)에 값이 저장되어 있다는 의미입니다. #기초값이 0인 SH2에 값이 저장되면 자동으로 이전에 두번의 스윙로우는 있었다는 의미입니다. if daylow <= SH1*0.85 and daylow <= SH2*0.80 and var2 > 0 then 즐거운 하루되세요 > HI_JA****** 님이 쓴 글입니다. > 제목 : 질문입니다. > 1.아래의 함수에서 현재 swinglow로 지정된 봉의 저가값을 불러오려면 어떻게 해야하나요? 또한 직전 swinglow로 지정된 봉의 저가값을 불러오려면 어떻게 해야하나요? 예를들어 현재 swinglow의 값보다 금일저가가 15%이하일 경우를 나타내려면... 직전 swinglow의 값보다 금일저가가 20%이하일 경우를 나타내려면... /* Description : Swing Low * * Provided By : YesStock Inc. (c) Copyright 2006 * E-Mail : webmaster@yesstock.com */ Input : Occur(NumericSimple), Value(NumericSeries), Left(NumericSimple), Right(NumericSimple), Length(NumericSimple); Var : Result(0), X(0), J(0), Z(0), Ltrue(FALSE), Counter(0), Found(FALSE); if CurrentBar >= Length - 1 then { Result = -1; Z = 0; X = Right; Counter = 0; Found = FALSE; while Counter < Length && X + Left < Length && Found == FALSE Begin J = X + Left; Ltrue = TRUE; while Ltrue && J > X Begin if Value[X] > Value[J] then Ltrue = FALSE; J = J - 1; End J = X - 1; while Ltrue && J >= X - Right Begin if Value[X] >= Value[J] then Ltrue = FALSE; J = J - 1; End if LTrue == TRUE then { Z = Z + 1; if Z >= Occur then { Result = Value[X]; Found = TRUE; } } X = X + 1; Counter = Counter + 1; End if Z == 0 then SwingLow = -1; else SwingLow = Result; } 2.전봉 또는 현재봉이 직전 26개봉 최저가 이고 현재봉이 양봉이며 현재봉과 직전봉의 최저가를 이탈하는 봉이 2개이상 발생할경우 1을 호출하는 수식부탁드립니다.