커뮤니티
수식 문의드립니다.
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); <- 이렇게 작성하는게 맞는지요?