커뮤니티

수식 문의

프로필 이미지
gt
2014-07-09 20:45:32
161
글번호 76582
답변완료
1. 아래 수식 검증과 추가 부탁드립니다. 매도 피라미딩에서 최종진입된 것을 기준으로 최대수익(최저가)이 30틱 이내이고, 50캔들이후에도 최저가를 돌파하지 못하면 청산하는 식 부탁드립니다. if ( (LATESTENTRYNAME(0) == "매도A") AND (LOWEST(L, BARSSINCEENTRY) > LATESTENTRYPRICE(0) - PriceScale * 30) AND (M1.UTrend == TRUE) ) then { EXITSHORT("매도청산#1]", ONCLOSE, DEF, DEF); } 2. 해외선물에서 재진입금지를 위해 아래식을 사용했습니다. if 조건A AND !( (ISENTRYNAME("A", 1) == TRUE) AND (TimeToMinutes(stime) <= TimeToMinutes(ExitTime(1)) + 180) ) then ~~~~~ ==> 이전진입이 A이고 청산된후 180분이 지나야 재진입가능하게 함 근데 위 식을 사용하면 조건에 만족하지도 않았는데도 멀쩡했던 진입이 사라집니다. 위식을 없애고 다시하면 진입이 되고요. 무엇이 잘못되었는지 찾을수가 없습니다. 제가 위식을 정확히 썼는지도 확인부탁드립니다. 도움부탁드립니다. 늘 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-07-10 13:35:19

안녕하세요 예스스탁입니다. 1. LOWEST(L, BARSSINCEENTRY) 는 첫 진입이후의 최저가 입니다. 파리미딩에서 최종 추가진입이하의 최저가로 계산하셔야 합니다. var : LL(0); if MarketPosition == 1 Then{ if CurrentContracts > CurrentContracts[1] Then LL = L; if L < LL Then LL = L; if LATESTENTRYNAME(0) == "매도A" AND LL > LATESTENTRYPRICE(0) - PriceScale * 30 AND M1.UTrend == TRUE then{ EXITSHORT("매도청산#1]", ONCLOSE, DEF, DEF); } } 2. ISENTRYNAME("A", 1)는 직전거래의 최초진입명을 가져오고 의도하신 이전진입명이 위 내용이 맞으시면 문제는 없습니다. 문제가 될 부분은 시간지정입니다. TimeToMinutes함수는 시간을 0시이후에 경과된 분수로 계산을 합니다. 직전청산과 현재봉의 날짜가 같은 날이면 관계없지만 0시를 기준으로 날짜가 다르면 180분으로 지정하시는 것이 의미가 없습니다. if sdate == ExitDate(1) Then var1 = TimeToMinutes(stime)-TimeToMinutes(ExitDate(1)); Else var1 = TimeToMinutes(stime)+(1440-TimeToMinutes(ExitDate(1))); 위와 같이 작성해서 직전거래의 청산과 현재시간과의 차이를 분수로 계산하셔야 합니다. if MarketPosition == 0 and 조건A AND !((ISENTRYNAME("A", 1) == TRUE) AND var1 <= 180) then ~~~~~ 즐거운 하루되세요 > gt 님이 쓴 글입니다. > 제목 : 수식 문의 > 1. 아래 수식 검증과 추가 부탁드립니다. 매도 피라미딩에서 최종진입된 것을 기준으로 최대수익(최저가)이 30틱 이내이고, 50캔들이후에도 최저가를 돌파하지 못하면 청산하는 식 부탁드립니다. if ( (LATESTENTRYNAME(0) == "매도A") AND (LOWEST(L, BARSSINCEENTRY) > LATESTENTRYPRICE(0) - PriceScale * 30) AND (M1.UTrend == TRUE) ) then { EXITSHORT("매도청산#1]", ONCLOSE, DEF, DEF); } 2. 해외선물에서 재진입금지를 위해 아래식을 사용했습니다. if 조건A AND !( (ISENTRYNAME("A", 1) == TRUE) AND (TimeToMinutes(stime) <= TimeToMinutes(ExitTime(1)) + 180) ) then ~~~~~ ==> 이전진입이 A이고 청산된후 180분이 지나야 재진입가능하게 함 근데 위 식을 사용하면 조건에 만족하지도 않았는데도 멀쩡했던 진입이 사라집니다. 위식을 없애고 다시하면 진입이 되고요. 무엇이 잘못되었는지 찾을수가 없습니다. 제가 위식을 정확히 썼는지도 확인부탁드립니다. 도움부탁드립니다. 늘 감사드립니다.