커뮤니티

문의드립니다~

프로필 이미지
겐지
2019-02-13 07:09:42
149
글번호 126115
답변완료
var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ; Hswb = SwingHighbar(1,h,3,3,100); Lswb = SwingLowbar(1,L,3,3,100); if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 and (tic5<tic20 ) and BarsSinceEntry <= 3 Then { value5 = L[right2]; value6 = tic20[right2]; value9 = tic5[right2]; } if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 and (tic5>tic20 ) and BarsSinceEntry <= 3 Then { value7 = H[right2]; value8 = tic20[right2]; value10 = tic5[right2]; } if MarketPosition == 1 then { ExitLong("롱꼭지점스탑",AtStop,value5-PriceScale*1); } if MarketPosition == -1 then { ExitShort("숏꼭지점스탑",AtStop,value7+PriceScale*1); } ////////////////////////// 매수진입한 시점의 직전스윙로우 가격의 1틱아래에 청산하는 식입니다. 그런데 문제가 BarsSinceEntry <= 3 이렇게 조건을 주니깐. 청산하고나서 바로 재진입신호가 나올때에 직전스윙로우값을 잡아주지못하는 문제가 있네요. 재진입신호가 나오고나서는 직전스윙로우가격이 진입경과봉수의3보다 큰 가격이라서 못잡아주는거 같은데요. 진입한시점을 기준으로 이후로 생성되는 스윙로우말고 바로 직전의 스윙로우가격을 고정해서 위식대로 청산식으로 적용하고 싶습니다~ 감사합니다~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-02-13 13:49:39

안녕하세요 예스스탁입니다. 진입기준으로 값을 가져오고자 하시면 데이타나 변수나 함수뒤에 [BarsSinceEntry]를 붙이시면 됩니다. 스윙로우나 스윙하이를 체크하는 조건에 다른 부가 조건이 있으면 스윙로우나 스윙하이가 발생할때마다 값저장이 되지 않으므로 아래수식에서는 제거했습니다. var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ; Hswb = SwingHighbar(1,h,3,3,100); Lswb = SwingLowbar(1,L,3,3,100); if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 Then { value5 = L[right2]; value6 = tic20[right2]; value9 = tic5[right2]; } if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 Then { value7 = H[right2]; value8 = tic20[right2]; value10 = tic5[right2]; } if MarketPosition == 1 then { ExitLong("롱꼭지점스탑",AtStop,value5[BarsSinceEntry]-PriceScale*1); } if MarketPosition == -1 then { ExitShort("숏꼭지점스탑",AtStop,value7[BarsSinceEntry]+PriceScale*1); } 즐거운 하루되세요 > 겐지 님이 쓴 글입니다. > 제목 : 문의드립니다~ > var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ; Hswb = SwingHighbar(1,h,3,3,100); Lswb = SwingLowbar(1,L,3,3,100); if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 and (tic5<tic20 ) and BarsSinceEntry <= 3 Then { value5 = L[right2]; value6 = tic20[right2]; value9 = tic5[right2]; } if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 and (tic5>tic20 ) and BarsSinceEntry <= 3 Then { value7 = H[right2]; value8 = tic20[right2]; value10 = tic5[right2]; } if MarketPosition == 1 then { ExitLong("롱꼭지점스탑",AtStop,value5-PriceScale*1); } if MarketPosition == -1 then { ExitShort("숏꼭지점스탑",AtStop,value7+PriceScale*1); } ////////////////////////// 매수진입한 시점의 직전스윙로우 가격의 1틱아래에 청산하는 식입니다. 그런데 문제가 BarsSinceEntry <= 3 이렇게 조건을 주니깐. 청산하고나서 바로 재진입신호가 나올때에 직전스윙로우값을 잡아주지못하는 문제가 있네요. 재진입신호가 나오고나서는 직전스윙로우가격이 진입경과봉수의3보다 큰 가격이라서 못잡아주는거 같은데요. 진입한시점을 기준으로 이후로 생성되는 스윙로우말고 바로 직전의 스윙로우가격을 고정해서 위식대로 청산식으로 적용하고 싶습니다~ 감사합니다~