커뮤니티

문의드립니다

프로필 이미지
파트라
2021-04-25 17:08:51
1064
글번호 148363
답변완료
1. 개별주식종목 거래할때 Data2로 지수Data의 일봉을 이용하여서 이평선을 5, 10, 20 모두 하향 돌파할때에 다음날 첫 봉 마감시 매도 / 5, 10, 20 중 한 개 이상 상향 돌파할때에 다음날 첫 봉 마감시 매수 수식을 작성하였습니다만 의도한 시점에 매수, 매도가 일어나지 않는것 같습니다 검토 부탁드립니다 Var : YesterdayClose(0), Ma5(0), Ma10(0), Ma20(0); Var : BuyFilter(0), SellFilter(0); // Variance Declaration YesterdayClose = Data2(C[1]); Ma5 = Data2(Ma(C[1],5)); Ma10 = Data2(Ma(C[1],10)); Ma20 = Data2(Ma(C[1],20)); BuyFilter = IFf((YesterdayClose > Ma5) or (YesterdayClose > Ma10) or (YesterdayClose > Ma20), 1, 0); SellFilter = IFf((YesterdayClose < Ma5) and (YesterdayClose < Ma10) and (YesterdayClose < Ma20), 1, 0); // Buy If MarketPosition == 0 and BuyFilter == 1 Then Buy("", OnClose); // ExitLong If MarketPosition == 1 and SellFilter == 1 Then ExitLong("", OnClose); 2. 장이 시작 된 후 부터 양봉 혹은 음봉이 n개 이상 만들어졌을 때에 n개 봉의 종가와 봉 번호를 각각 저장하는 수식을 작성하고 싶습니다. 예를 들어 KP200 선물데이터에서 5분봉을 사용한다 하였을 때에 음음양음양양 순으로 봉이 만들어졌다면 가장 최근 양봉 : 7번, 종가 2번째 양봉 : 6번, 종가 3번째 양봉 : 3번, 종가 / 이렇게 저장하고 6개 봉 뒤에 다시 양봉이 생기면 또 최근것을 저장하고 3번 양봉은 빠지는 수식을 작성하고 싶습니다. Array를 활용해야 할까요..? 어렵군요 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-04-26 11:51:39

안녕하세요 예스스탁입니다. 1 랭귀지는 완성봉된 봉값만 사용합니다. 참조데이타가 일봉이면 전일데이타가 최근 완성된 봉이므로 Data2(C),Data2(Ma(C,5))가 전일봉값이고 Data2(C[1]),Data2(Ma(C[1],5))은 전전일봉값입니다. Var : YesterdayClose(0), Ma5(0), Ma10(0), Ma20(0); Var : BuyFilter(0), SellFilter(0); // Variance Declaration YesterdayClose = Data2(C); Ma5 = Data2(Ma(C,5)); Ma10 = Data2(Ma(C,10)); Ma20 = Data2(Ma(C,20)); BuyFilter = IFf((YesterdayClose > Ma5) or (YesterdayClose > Ma10) or (YesterdayClose > Ma20), 1, 0); SellFilter = IFf((YesterdayClose < Ma5) and (YesterdayClose < Ma10) and (YesterdayClose < Ma20), 1, 0); // Buy If MarketPosition == 0 and BuyFilter == 1 Then Buy("", OnClose); // ExitLong If MarketPosition == 1 and SellFilter == 1 Then ExitLong("", OnClose); 2 array를 이용하셔야 합니다. 당일 최근 3개의 양봉이므로 아래와 같이 작성하시면 됩니다. 초기값은 모두 0이고 양봉발생시 차례로 값이 저장되게 됩니다. var : cnt(0); Array : P[3](0); if Bdate != Bdate[1] Then { #날짜변경되면 모두 0으로 초기화 For cnt = 2 DownTo 0 { P[cnt] = 0; } } if C > O Then { For cnt = 2 DownTo 1 { P[cnt] = P[cnt-1]; } P[0] = C; } Plot1(P[0]); Plot2(P[1]); Plot3(P[2]); 즐거운 하루되세요 > 파트라 님이 쓴 글입니다. > 제목 : 문의드립니다 > 1. 개별주식종목 거래할때 Data2로 지수Data의 일봉을 이용하여서 이평선을 5, 10, 20 모두 하향 돌파할때에 다음날 첫 봉 마감시 매도 / 5, 10, 20 중 한 개 이상 상향 돌파할때에 다음날 첫 봉 마감시 매수 수식을 작성하였습니다만 의도한 시점에 매수, 매도가 일어나지 않는것 같습니다 검토 부탁드립니다 Var : YesterdayClose(0), Ma5(0), Ma10(0), Ma20(0); Var : BuyFilter(0), SellFilter(0); // Variance Declaration YesterdayClose = Data2(C[1]); Ma5 = Data2(Ma(C[1],5)); Ma10 = Data2(Ma(C[1],10)); Ma20 = Data2(Ma(C[1],20)); BuyFilter = IFf((YesterdayClose > Ma5) or (YesterdayClose > Ma10) or (YesterdayClose > Ma20), 1, 0); SellFilter = IFf((YesterdayClose < Ma5) and (YesterdayClose < Ma10) and (YesterdayClose < Ma20), 1, 0); // Buy If MarketPosition == 0 and BuyFilter == 1 Then Buy("", OnClose); // ExitLong If MarketPosition == 1 and SellFilter == 1 Then ExitLong("", OnClose); 2. 장이 시작 된 후 부터 양봉 혹은 음봉이 n개 이상 만들어졌을 때에 n개 봉의 종가와 봉 번호를 각각 저장하는 수식을 작성하고 싶습니다. 예를 들어 KP200 선물데이터에서 5분봉을 사용한다 하였을 때에 음음양음양양 순으로 봉이 만들어졌다면 가장 최근 양봉 : 7번, 종가 2번째 양봉 : 6번, 종가 3번째 양봉 : 3번, 종가 / 이렇게 저장하고 6개 봉 뒤에 다시 양봉이 생기면 또 최근것을 저장하고 3번 양봉은 빠지는 수식을 작성하고 싶습니다. Array를 활용해야 할까요..? 어렵군요 감사합니다