커뮤니티

단 한 번 진입 (Entry?)

프로필 이미지
ST
2012-12-03 12:46:54
229
글번호 56991
답변완료
23:30~6:30까지 시스템트레이딩하는 경우에 대해 지난 금요일 아래와 같이 식을 만들어 주셨습니다. '단 한 번' 진입하는 경우 식이었죠 (시스템 설정에 강제매매 설정). if stime == 233000 or (stime > 233000 and stime[1] < 233000) then { Condition1 = false; Condition2 = false; } if stime >= 230000 or stime <= 063000 Then{ if MarketPosition == 1 and MarketPosition[1] != 1 then Condition1 = True; if MarketPosition == -1 and MarketPosition[1] != -1 then Condition2 = true; if 매수조건 and Condition1 == False then sell(); If 매도조건 and Condition2 == False then buy(); } 질문. 제가 보기에는 아무리 봐도 '단 한 번' 진입이 아닌 듯 합니다. (논의를 단순화하기 위해 매수진입만 있다고 가정하면 아래 식이 됩니다): if stime == 233000 or (stime > 233000 and stime[1] < 233000) then Condition1 = false; if stime >= 230000 or stime <= 063000 Then{ if MarketPosition == 1 and MarketPosition[1] != 1 then ---------- (2) Condition1 = True; if 매수조건 and Condition1 == False then sell(); } 제가 원하는 23:00~06:30 시간 중 '단 한 번' 매수진입이 되려면, 고려 시간 동안 현재봉 포함 이전 봉의 포지션이 모두 0인 경우에만 진입이 가능한 경우입니다. 단 한 봉에서의 포지션도 1이 된 적 있으면 더 이상 매수진입이 발생하면 안 되는 경우입니다. 따라서 식(2)가 최소한 하나의 MarektPosition[x] == 1 (x = 0, 1, ...... , N; N은 23:30에 해당)이라는 내용이 되어야 하는 경우를 원합니다. (매뉴얼 살펴보니 Entry함수가 있던데, 이걸 이용하면 되는 건지요?) 답변 부탁드립니다. 수고하세요.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-12-03 15:28:28

안녕하세요 예스스탁입니다. 죄송합니다. 이전답변에 변수가 반대로 되어 있었습니다. 아래식 적용해 보시면 해당 시간내에 매수진입와 매도진입이 한번씩만 발생하시는 것을 보실 수 있습니다. 진입은 20이평 상승시 매수, 20이평 하락시 매도로 작성했습니다. if stime == 233000 or (stime > 233000 and stime[1] < 233000) then { Condition1 = false; Condition2 = false; } if stime >= 230000 or stime <= 063000 Then{ if MarketPosition == 1 and MarketPosition[1] != 1 then Condition1 = True; if MarketPosition == -1 and MarketPosition[1] != -1 then Condition2 = true; If CrossUp(c,ma(c,20)) and Condition1 == False then buy(); if crossdown(c,ma(c,20)) and Condition2 == False then sell(); } 기존의 for문으로 이전 포지션의 값을 가져와 당일 진입횟수를 카운트 하는 식은 0시~24시를 기준으로 하루를 판단하므로 말씀하신 23:30~6:30까지의 시간대로 사용할수가 없습니다. 위와 같이 지정하신 시작시간에 초기화를 하는 내용으로 만들어야 합니다. 즐거운 하루되세요 > ST 님이 쓴 글입니다. > 제목 : 단 한 번 진입 (Entry?) > 23:30~6:30까지 시스템트레이딩하는 경우에 대해 지난 금요일 아래와 같이 식을 만들어 주셨습니다. '단 한 번' 진입하는 경우 식이었죠 (시스템 설정에 강제매매 설정). if stime == 233000 or (stime > 233000 and stime[1] < 233000) then { Condition1 = false; Condition2 = false; } if stime >= 230000 or stime <= 063000 Then{ if MarketPosition == 1 and MarketPosition[1] != 1 then Condition1 = True; if MarketPosition == -1 and MarketPosition[1] != -1 then Condition2 = true; if 매수조건 and Condition1 == False then sell(); If 매도조건 and Condition2 == False then buy(); } 질문. 제가 보기에는 아무리 봐도 '단 한 번' 진입이 아닌 듯 합니다. (논의를 단순화하기 위해 매수진입만 있다고 가정하면 아래 식이 됩니다): if stime == 233000 or (stime > 233000 and stime[1] < 233000) then Condition1 = false; if stime >= 230000 or stime <= 063000 Then{ if MarketPosition == 1 and MarketPosition[1] != 1 then ---------- (2) Condition1 = True; if 매수조건 and Condition1 == False then sell(); } 제가 원하는 23:00~06:30 시간 중 '단 한 번' 매수진입이 되려면, 고려 시간 동안 현재봉 포함 이전 봉의 포지션이 모두 0인 경우에만 진입이 가능한 경우입니다. 단 한 봉에서의 포지션도 1이 된 적 있으면 더 이상 매수진입이 발생하면 안 되는 경우입니다. 따라서 식(2)가 최소한 하나의 MarektPosition[x] == 1 (x = 0, 1, ...... , N; N은 23:30에 해당)이라는 내용이 되어야 하는 경우를 원합니다. (매뉴얼 살펴보니 Entry함수가 있던데, 이걸 이용하면 되는 건지요?) 답변 부탁드립니다. 수고하세요.