커뮤니티
공부하는 학생입니다. 문의드립니다.
2011-08-03 18:10:41
573
글번호 41605
안녕하세요.
지표값이 기준선을 기준으로 마이너스(-)에서 플러스(+) 전환된 후,
플러스 상태가 몇회(변수) 연속되면 진입하라는 식이 가능한가요?
구체적으로
-----------------------------------------------------------------------------
해당 분봉에서 RSI값이 0선 밑에 있다가 0선 위로 올라온 후
입력된 (변수)만큼 연속으로 0선 위에 있으면 해당 봉의 종가에 진입.(0선위면 매수)
- 진입 후, 0선 밑으로 내려가는 해당 봉의 종가에 청산
------------------------------------------------------------------------------
아직 공부하는 단계라 어렵네요.
알려주시면 열심히 공부하겠습니다.
답변 1
예스스탁 예스스탁 답변
2011-08-03 19:26:54
안녕하세요? 예스스탁입니다.
요청하신 식은 아래와 같이 크게 두가지 방법으로 작성할 수 있습니다.
첫번째 방법은 사용된 기간값 등을 외부변수와 내부변수로 선언하지 않고 작성한 식이고 두번째 방법은 외부변수와 내부변수를 선언해서 작성한 식입니다. 방법1과 같은 방법으로 익숙하게 작성할 수 있으면, 그 다음은 방법2와 같이 작성하시는 것이 좋습니다.
아래식은 RSI가 30선을 상향돌파하고 RSI가 30이상에서 3봉이상 유지되면 매수하는 식이고 RSI가 30선을 하향이탈하면 매수청산하는 식입니다.
아래식에서 핵심은 RSI가 30선을 상향돌파하고 3봉 연속 30이상에서 유지되는지를 파악하는 식인데 countif 함수를 이용해서 조건이 몇번 발생했는지를 먼저 계산할 수 있습니다.
아래식에서 countif( RSI(14) > 30 , 3) 의 내용은
RSI가 30보다 큰 경우가 3봉 동안 몇번 발생했는지 횟수를 세는 식이고
countif( RSI(14) > 30 , 3) == 3 의 내용은 3봉 동안 RSI가 30보다 큰 경우가 3번 이라는 것을 의미합니다.
그리고 3봉전에는 RSI가 30 이하에 위치해 있어야 하므로
and RSI(14)[3] < 30 의 내용이 추가된 것입니다.
[방법1]
condition1 = countif( RSI(14) > 30 , 3) == 3 and RSI(14)[3] < 30 ;
if condition1 == true Then
buy();
if CrossDown(RSI(14), 30) Then
exitlong();
[방법2]
input : Period(14), N(3);
var : RsiV(0), 조건(false);
RsiV = RSI(Period);
조건 = countif( var1 > 30 , N) == N and RsiV[N] < 30 ;
if 조건 == true Then
buy();
if CrossDown(RsiV, 30) Then
exitlong();
> WT_oil8001 님이 쓴 글입니다.
> 제목 : 공부하는 학생입니다. 문의드립니다.
> 안녕하세요.
지표값이 기준선을 기준으로 마이너스(-)에서 플러스(+) 전환된 후,
플러스 상태가 몇회(변수) 연속되면 진입하라는 식이 가능한가요?
구체적으로
-----------------------------------------------------------------------------
해당 분봉에서 RSI값이 0선 밑에 있다가 0선 위로 올라온 후
입력된 (변수)만큼 연속으로 0선 위에 있으면 해당 봉의 종가에 진입.(0선위면 매수)
- 진입 후, 0선 밑으로 내려가는 해당 봉의 종가에 청산
------------------------------------------------------------------------------
아직 공부하는 단계라 어렵네요.
알려주시면 열심히 공부하겠습니다.
다음글
이전글