커뮤니티
재문의 드립니다.
2013-12-04 15:30:27
159
글번호 70124
if CrossDown(var1,var2) Then{
value1 = var1; #현재 데드크로스의 20이평값
value2= value1[1]; #직전 데드크로스의 20평값
if value1 < value2 and value2 > 0 Then
sell();
1.이게 관리자님이 답변주신건데요..
첨부파일에서 보듯이 빨간이평이 VAR1 입니다. 매수신호나온뒤에 데드크로스가 나올때
직전 데드값보다 작기때문에 다시 매도신호가 나와야 되는데 나오질 않아요..
2. 또 value2>0 이란 의미가 어떤의미고 왜 필요한지 이해가 잘 가질 않습니다.
왜그런거죠???
- 1. 70574_캡처.PNG (0.01 MB)
답변 1
예스스탁 예스스탁 답변
2013-12-04 16:06:09
안녕하세요
예스스탁입니다.
1.
해당 내용 수식에 잘못된 부분이 없습니다.
아래식으로 적용해 보았지만 잘못나오는 부분이 없습니다.
var1 = ma(c,5);
var2 = ma(c,20);
if crossup(var1,var2) Then
buy();
if CrossDown(var1,var2) Then{
value1 = var1; #현재 데드크로스의 20이평값
value2 = value1[1]; #직전 데드크로스의 20평값
if value1 < value2 and value2 > 0 Then
sell();
}
아래 몇가지 확인해 보시기 바랍니다.
1)
켭쳐하신 차트에서 지표로 적용한 이평과 시스템식에서 사용하시는
이평이 같은 기간값, 같은 평균방법인지 확인하시기 바랍니다.
2) 수식상 해당 매도식 위에 다른 if문이 있는지 확인하시기 바랍니다.
if ~~~~ then{
if CrossDown(var1,var2) Then{
value1 = var1; #현재 데드크로스의 20이평값
value2 = value1[1]; #직전 데드크로스의 20평값
if value1 < value2 and value2 > 0 Then
sell();
}
}
3)
var1,var2,value1,value2와 동일한 변수에
다른 값을 할당하고 있는지 확인해 보시기 바랍니다.
2.
value2 > 0을 추가한 이유는
value2는 초기값이 0인 변수로
직전 데드크로스의 값을 저장하기 위해 사용합니다.
차트상 첫번째 데드크로스가 발생하면 이전의
데드크로스가 없어 아직 값이 0이므로
value2가 0이상의 값을 가지는 것은
차트상 최소 2번이상 데드크로스가 발생한 이후입니다.
그러므로 value2 > 0은
차트에서 최소 2번이상의 데드크로스가 발생하고 라는 내용이 됩니다.
즐거운 하루되세요
> 희망의날개 님이 쓴 글입니다.
> 제목 : 재문의 드립니다.
> if CrossDown(var1,var2) Then{
value1 = var1; #현재 데드크로스의 20이평값
value2= value1[1]; #직전 데드크로스의 20평값
if value1 < value2 and value2 > 0 Then
sell();
1.이게 관리자님이 답변주신건데요..
첨부파일에서 보듯이 빨간이평이 VAR1 입니다. 매수신호나온뒤에 데드크로스가 나올때
직전 데드값보다 작기때문에 다시 매도신호가 나와야 되는데 나오질 않아요..
2. 또 value2>0 이란 의미가 어떤의미고 왜 필요한지 이해가 잘 가질 않습니다.
왜그런거죠???