커뮤니티
문의드립니다.
2015-12-03 15:58:06
132
글번호 93035
문의드립니다.
20분봉 포지션입니다.
if crossup(diplus,40) then buy();
이렇게하면 2001.1.12. 14:20에 매수신호가 발생합니다.
매수신호가 발생하고나서 adxv가 20을 crossdown후
diplus 나 diminus가 40보다 큰게 나온 것이 없는 상태에서
adxv가 40을 넘고나서 40아래로 내려오고난후
diplus가 adxv와 교차가 없는상태에서
diminus가 adxv를 crossup 할 때 신호를 발생하려고 하는데
(원하는결과는 2001.1.22. 12:40 에 매도발생입니다)
countif 나 accumN(iff(를 이용해서 수식을 구현해도 원하는값을 얻지못해 자문을 구합니다.
////// 추가 질문입니다 /////
barssinceentry는 진입이후를 표현하는데
진입상태에서 crossdown(adxv,20)이 발생한 이후를 표현하는 방법도 부탁드립니다.
- 1. 93548_캡처.PNG (0.10 MB)
답변 1
예스스탁 예스스탁 답변
2015-12-03 16:51:34
안녕하세요
예스스탁입니다.
문의하신 내용
countif등을 이용해서 제어를 하실수 없습니다.
순서대로 체크해야 하므로
아래와 같이 변수에 점수를 부여해서
특정사건이후 다음 특정사건 감시로 식을 작성해 가셔야 합니다.
아래 내용 참고하시기 바랍니다.
input : P(14);
var : T(0),Adxv(0),DP(0),DM(0);
ADXV = adx(P);
DP = Diplus(P);
DM = DiMinus(P);
if MarketPosition == 1 Then{
#adx가 20을 하향이탈하면 1
if T == 0 and CrossDown(adxv,20) Then
T = 1;
#T가 1인상태에서
if T == 1 Then{
#DP나 DM이 40이상 발생하면 T를 으로 돌려 다음 adxv가 20을 하향이탈할때부터 재감시
if DP >= 40 or DM >= 40 Then
T = 0;
#adxv가 40을 하향이탈하면 2, 하향이탈이므로 40위에 있었다는 내용도 자동으로 포함
if CrossDown(adxv,40) Then
T = 2;
}
#T가 2인상태에서
if T == 2 Then{
#DP와 DM이 크로스가 발생하면 다시 0으로 돌림
if crossup(DP,DM) or CrossDown(DP,DM) Then
T = 0;
#DM이 ADXV를 돌파하면 매수청산
if crossup(DM,adxv) Then
ExitLong();
}
}
Else //매수포지션이 아니면 0
T = 0;
즐거운 하루되세요
> 베스트시스템 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 문의드립니다.
20분봉 포지션입니다.
if crossup(diplus,40) then buy();
이렇게하면 2001.1.12. 14:20에 매수신호가 발생합니다.
매수신호가 발생하고나서 adxv가 20을 crossdown후
diplus 나 diminus가 40보다 큰게 나온 것이 없는 상태에서
adxv가 40을 넘고나서 40아래로 내려오고난후
diplus가 adxv와 교차가 없는상태에서
diminus가 adxv를 crossup 할 때 신호를 발생하려고 하는데
(원하는결과는 2001.1.22. 12:40 에 매도발생입니다)
countif 나 accumN(iff(를 이용해서 수식을 구현해도 원하는값을 얻지못해 자문을 구합니다.
////// 추가 질문입니다 /////
barssinceentry는 진입이후를 표현하는데
진입상태에서 crossdown(adxv,20)이 발생한 이후를 표현하는 방법도 부탁드립니다.
다음글
이전글