커뮤니티

현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다.

프로필 이미지
파생루키
2013-09-10 11:53:20
113
글번호 67384
답변완료
예를 들어 기본으로 들어있는 MACD 기준선 시스템에서 현재의 시스템을 차트에 적용하면 Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { Sell(); } 과거 진입신호가 나왔던, 모든 시그널이 차트에 다 표시됩니다만. 과거 진입신호는 나오지 않게하고, 현재 캔들에서 나온 진입신호만 나오게 하려면 어떤 조건문을 더 삽입해야 할까요 ?
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2013-09-10 13:55:18

안녕하세요 예스스탁입니다. 신호만 보고자 하시는 의도이시면 아래와 같이 작성하시면 차트 마지막봉에서 조건만족하면 예비신호만 그림과 같이 표시가 됩니다. 실제 완성신호를 내고자 하시면 방법이 없습니다. Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { if LastBarOnChart == 1 Then Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { if LastBarOnChart == 1 then Sell(); } 즐거운 하루되세요 > 파생루키 님이 쓴 글입니다. > 제목 : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 예를 들어 기본으로 들어있는 MACD 기준선 시스템에서 현재의 시스템을 차트에 적용하면 Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { Sell(); } 과거 진입신호가 나왔던, 모든 시그널이 차트에 다 표시됩니다만. 과거 진입신호는 나오지 않게하고, 현재 캔들에서 나온 진입신호만 나오게 하려면 어떤 조건문을 더 삽입해야 할까요 ?
프로필 이미지

파생루키

2013-09-10 14:09:04

예비신호는 표시되고. 완성신호는 안된다고 하셨는데. 이는 캔들이 완성이 되기전에 나오를 예비신호라고 하고. 완성된후에 바로 이전캔들에 표시되는 게 완성신호 ... 라는 말 뜻으로 이해해도 되겠습니까 ? 예비신호이던 완성신호이던 BUY 와 SELL 주문은 실행되는 것이 아닌가요 ? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 안녕하세요 예스스탁입니다. 신호만 보고자 하시는 의도이시면 아래와 같이 작성하시면 차트 마지막봉에서 조건만족하면 예비신호만 그림과 같이 표시가 됩니다. 실제 완성신호를 내고자 하시면 방법이 없습니다. Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { if LastBarOnChart == 1 Then Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { if LastBarOnChart == 1 then Sell(); } 즐거운 하루되세요 > 파생루키 님이 쓴 글입니다. > 제목 : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 예를 들어 기본으로 들어있는 MACD 기준선 시스템에서 현재의 시스템을 차트에 적용하면 Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { Sell(); } 과거 진입신호가 나왔던, 모든 시그널이 차트에 다 표시됩니다만. 과거 진입신호는 나오지 않게하고, 현재 캔들에서 나온 진입신호만 나오게 하려면 어떤 조건문을 더 삽입해야 할까요 ?
프로필 이미지

예스스탁 예스스탁 답변

2013-09-10 14:39:23

안녕하세요 예스스탁입니다. 주문은 완성신호에서만 발생합니다. 예비신호는 현재봉에서 if조건이 만족하고 있는지 여부를 표시만 해주게 됩니다. 올려드린식은 완선신호가 발생하지 않습니다. 과거봉에는 신호를 발생하지 않고 마지막봉에만 신호를 발생해야 하므로 조건에 LastBarOnChart == 1 이라는 조건을 추가한 식입니다. LastBarOnChart는 해당 봉이 차트의 마지막봉이면 1을 아니면 0을 리턴하는데 봉완성이 다음봉 시가가 수신될때 이므로 다음봉 시가가 수신되면 해당봉이 차트상 마지막봉이 아니므로 조건이 해제가 되어 신호가 발생하지 않습니다. 차트상 마지막봉에 매수조건 만족하면 매수와 매도 미완성 신호가 표시만 되게 작성해 드린 식입니다. 즐거운 하루되세요 > 파생루키 님이 쓴 글입니다. > 제목 : Re : Re : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 예비신호는 표시되고. 완성신호는 안된다고 하셨는데. 이는 캔들이 완성이 되기전에 나오를 예비신호라고 하고. 완성된후에 바로 이전캔들에 표시되는 게 완성신호 ... 라는 말 뜻으로 이해해도 되겠습니까 ? 예비신호이던 완성신호이던 BUY 와 SELL 주문은 실행되는 것이 아닌가요 ? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 안녕하세요 예스스탁입니다. 신호만 보고자 하시는 의도이시면 아래와 같이 작성하시면 차트 마지막봉에서 조건만족하면 예비신호만 그림과 같이 표시가 됩니다. 실제 완성신호를 내고자 하시면 방법이 없습니다. Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { if LastBarOnChart == 1 Then Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { if LastBarOnChart == 1 then Sell(); } 즐거운 하루되세요 > 파생루키 님이 쓴 글입니다. > 제목 : 현재 캔들에 발생한 시스템 진입 신호만 나오게 하고 싶습니다. > 예를 들어 기본으로 들어있는 MACD 기준선 시스템에서 현재의 시스템을 차트에 적용하면 Input : shortPeriod(12), longPeriod(26); Var : value(0); value = MACD(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { Buy(); } # 매도/매수청산 If CrossDown(value, 0) Then { Sell(); } 과거 진입신호가 나왔던, 모든 시그널이 차트에 다 표시됩니다만. 과거 진입신호는 나오지 않게하고, 현재 캔들에서 나온 진입신호만 나오게 하려면 어떤 조건문을 더 삽입해야 할까요 ?