커뮤니티

초보질문입니다. 청산시점이 무었이 잘못 되었을까요

프로필 이미지
멋진감자
2009-08-28 10:56:08
738
글번호 24446
답변완료

첨부 이미지

더운날씨에 수고가 많으십니다. 초보 시스템식에서 청산시점에 대하여 문의 드립니다. var1=ma(c,5); var2=ma(c,20); if CrossDown(var1, var2) Then{ sell(); if BarsSinceEntry(0) >1 then //포지션진입이후 1개봉이상 경과되었다면 var3=SwingLow(1, low , 2, 2, 30); // 포지션 진입 하고 좌우측 2개봉중 현재시점에서 가장 작은금액을 var3에 저장한다. var4=SwingLow(2, low , 2, 2, 30); // 포지션 진입 후 좌우측 2개봉 중 두번째로 작은 금액을 var4에 저장한다. } if var4 > var3 Then ExitShort("매도청산", onclose); //두번째 좌우2개봉의 최저가 보다 최근에 좌우2개봉의 최저가가 적으면 청산 첨부파일과 같이 예상매도시점과 실제매도시점이 차이가 납니다. 수정부탁드립니다. 감사합니다.
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2009-08-28 14:32:44

안녕하세요 예스스탁입니다. 식을 조금 수정했습니다. var1=ma(c,5); var2=ma(c,20); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 가격 var3=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 가격 var4=SwingLow(2, low , 2, 2, 30); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 시점 var5=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 시점 var6=SwingLow(2, low , 2, 2, 30); if CrossDown(var1, var2) Then{ sell(); } if MarketPosition == -1 and BarsSinceEntry(0) >1 then{ //포지션진입이후 1개봉이상 경과되었다면 if var4 > var3 and var5 == 2 and var6 < BarsSinceEntry Then ExitShort("매도청산", onclose); } 매도청산이 매도포지션 이후에 발생한 swinglow만을 가지고 신호를 발생하게 만들어 주셔야 합니다. 현재가 최근 swinglow가 발생한 시점임을 추가해 주셔야 하며 또한 전 swinglow가 진입 이후여야 한다는 것도 추가해 주셔야 합니다. 즐거운 하루되세요 > 멋진감자 님이 쓴 글입니다. > 제목 : 초보질문입니다. 청산시점이 무었이 잘못 되었을까요 > 더운날씨에 수고가 많으십니다. 초보 시스템식에서 청산시점에 대하여 문의 드립니다. var1=ma(c,5); var2=ma(c,20); if CrossDown(var1, var2) Then{ sell(); if BarsSinceEntry(0) >1 then //포지션진입이후 1개봉이상 경과되었다면 var3=SwingLow(1, low , 2, 2, 30); // 포지션 진입 하고 좌우측 2개봉중 현재시점에서 가장 작은금액을 var3에 저장한다. var4=SwingLow(2, low , 2, 2, 30); // 포지션 진입 후 좌우측 2개봉 중 두번째로 작은 금액을 var4에 저장한다. } if var4 > var3 Then ExitShort("매도청산", onclose); //두번째 좌우2개봉의 최저가 보다 최근에 좌우2개봉의 최저가가 적으면 청산 첨부파일과 같이 예상매도시점과 실제매도시점이 차이가 납니다. 수정부탁드립니다. 감사합니다.
프로필 이미지

멋진감자

2009-08-28 16:05:59

답변진심으로 감사를 드립니다. var5 == 2 and var6 < BarsSinceEntry 주석좀 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 초보질문입니다. 청산시점이 무었이 잘못 되었을까요 > 안녕하세요 예스스탁입니다. 식을 조금 수정했습니다. var1=ma(c,5); var2=ma(c,20); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 가격 var3=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 가격 var4=SwingLow(2, low , 2, 2, 30); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 시점 var5=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 시점 var6=SwingLow(2, low , 2, 2, 30); if CrossDown(var1, var2) Then{ sell(); } if MarketPosition == -1 and BarsSinceEntry(0) >1 then{ //포지션진입이후 1개봉이상 경과되었다면 if var4 > var3 and var5 == 2 and var6 < BarsSinceEntry Then ExitShort("매도청산", onclose); } 매도청산이 매도포지션 이후에 발생한 swinglow만을 가지고 신호를 발생하게 만들어 주셔야 합니다. 현재가 최근 swinglow가 발생한 시점임을 추가해 주셔야 하며 또한 전 swinglow가 진입 이후여야 한다는 것도 추가해 주셔야 합니다. 즐거운 하루되세요
프로필 이미지

예스스탁 예스스탁 답변

2009-08-28 17:32:17

안녕하세요 예스스탁입니다. 식이 잘못된 부분이 있어 다시 올려드립니다. var1=ma(c,5); var2=ma(c,20); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 가격 var3=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 가격 var4=SwingLow(2, low , 2, 2, 30); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 시점 var5=SwingLowbar(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 시점 var6=SwingLowbar(2, low , 2, 2, 30); if CrossDown(var1, var2) Then{ sell(); } if MarketPosition == -1 and BarsSinceEntry(0) >1 then{ //포지션진입이후 1개봉이상 경과되었다면 if var4 > var3 and var5 == 2 and var6 < BarsSinceEntry Then ExitShort("매도청산", onclose); } var5는 최근 스윙로우가 몇봉전에 발생했는지를 리턴합니다. 좌측과 우측을 2개씩 감시하므로 스윙로우가 발생됐다고 판단하는 시점은 기준봉에서 2개봉이 지나서 입니다. 그러므로 var5 == 2는 현재봉에서 막 최근 스윙로우가 발생했음을 나타냅니다. var6 < BarsSinceEntry 은 전 스윙로우가 현재부터 진입사이에 위치해야 한다는 표현입니다. BarsSinceEntry 는 진입이후 경과한 봉갯수이므로 현재 10봉이 경과되었다면 전 스윙로우가 10이상의 값을 가지면 진입이전에 생성된 것이므로 제외하는 것입니다. 참고하시기 바랍니다. 즐거운 하루되세요 > 멋진감자 님이 쓴 글입니다. > 제목 : Re : Re : 답변감사드립니다. 추가질문 > 답변진심으로 감사를 드립니다. var5 == 2 and var6 < BarsSinceEntry 주석좀 부탁드립니다. 감사합니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 초보질문입니다. 청산시점이 무었이 잘못 되었을까요 > 안녕하세요 예스스탁입니다. 식을 조금 수정했습니다. var1=ma(c,5); var2=ma(c,20); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 가격 var3=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 가격 var4=SwingLow(2, low , 2, 2, 30); # 최근 30봉 중 가장 최근 저가기준 swinglow가 발생했을때의 시점 var5=SwingLow(1, low , 2, 2, 30); # 최근 30봉 중 두번째 최근 저가기준 swinglow가 발생했을때의 시점 var6=SwingLow(2, low , 2, 2, 30); if CrossDown(var1, var2) Then{ sell(); } if MarketPosition == -1 and BarsSinceEntry(0) >1 then{ //포지션진입이후 1개봉이상 경과되었다면 if var4 > var3 and var5 == 2 and var6 < BarsSinceEntry Then ExitShort("매도청산", onclose); } 매도청산이 매도포지션 이후에 발생한 swinglow만을 가지고 신호를 발생하게 만들어 주셔야 합니다. 현재가 최근 swinglow가 발생한 시점임을 추가해 주셔야 하며 또한 전 swinglow가 진입 이후여야 한다는 것도 추가해 주셔야 합니다. 즐거운 하루되세요