커뮤니티

청산식에서 BarsSinceEntry() 사용문제

프로필 이미지
일목초인
2010-07-09 13:16:23
621
글번호 30847
답변완료

첨부 이미지

아래 식은 다음과 같은 목적을 구현하기 위해 테스트용으로 간단히 구성해 본 식의 일부분입니다. 0. 적용종목: 연결선물 5분봉, 피라미딩 적용 1. 매수식 A은 청산식 AX로만 하루에 한번만 거래된다. 2. 매수식 B은 청산식 BX로만 하루에 한번만 거래된다. 3. 매수식 A가 진입된 상태에서도 매수식B가 진입 가능해야 한다. 4. 매수식 B가 진입된 상태에서도 매수식A가 진입 가능해야 한다. 최근에 BarsSinceEntry()를 이용하여 진입 후 일정 시간이 지나면 청산되는 식을 추가하려고 하는데 첫번째 식이 미청산 상태에서 두번째 식이 진입할 경우 처음 진입된 매수 봉 기준으로 두번째 식이 청산되어 버립니다. 검토 후 수정 부탁드립니다. 항상 감사합니다...^^ SetStopEndofday(145000); if date != date[1] or MarketPosition == 0 Then { Condition1 = false; Condition2 = false; Condition3 = false; Condition4 = false; } // 매수1 if Crossup(C, DayOpen+0.7) && Condition1 == False Then { buy("A",OnClose,def,1); Value7 = C; Condition1 = true; } // 매수2 if Crossup(C, DayOpen+1) && Condition3 == False Then { buy("B",OnClose,def,1); Value8 = C; Condition3 = true; } // 매수청산1 if MarketPosition==1 && Condition1==true Then { if BarsSinceEntry()>=6 && Condition2==False Then { exitlong("Ax",OnClose,def,"",1,1); Condition2=true; } } // 매수청산2 if MarketPosition==1 && Condition3==true Then { if BarsSinceEntry()>=12 && Condition4==False Then { exitlong("Bx",OnClose,def,"",1,1); Condition4=true; } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-07-09 14:27:52

안녕하세요 예스스탁입니다. BarsSinceEntry는 포지션이 진입하는 첫신호부터 봉수를 카운트 합니다. 추가되는 진입에 관련된 내용은 따로 값을 저장하여 사용하셔야 합니다. 아래는 수정된 식입니다. 즐거운 하루되세요 SetStopEndofday(145000); if date != date[1] or MarketPosition == 0 Then { Condition1 = false; Condition2 = false; Condition3 = false; Condition4 = false; } // 매수1 if Crossup(C, DayOpen+0.7) && Condition1 == False Then { buy("A",OnClose,def,1); Value7 = C; Condition1 = true; var1 = index; } // 매수2 if Crossup(C, DayOpen+1) && Condition3 == False Then { buy("B",OnClose,def,1); Value8 = C; Condition3 = true; var2 = index; } // 매수청산1 if MarketPosition==1 && Condition1==true Then { if index >=var1+6 && Condition2==False Then { exitlong("Ax",OnClose,def,"",1,1); Condition2=true; } } // 매수청산2 if MarketPosition==1 && Condition3==true Then { if index>=var2+12 && Condition4==False Then { exitlong("Bx",OnClose,def,"",1,1); Condition4=true; } } > 일목초인 님이 쓴 글입니다. > 제목 : 청산식에서 BarsSinceEntry() 사용문제 > 아래 식은 다음과 같은 목적을 구현하기 위해 테스트용으로 간단히 구성해 본 식의 일부분입니다. 0. 적용종목: 연결선물 5분봉, 피라미딩 적용 1. 매수식 A은 청산식 AX로만 하루에 한번만 거래된다. 2. 매수식 B은 청산식 BX로만 하루에 한번만 거래된다. 3. 매수식 A가 진입된 상태에서도 매수식B가 진입 가능해야 한다. 4. 매수식 B가 진입된 상태에서도 매수식A가 진입 가능해야 한다. 최근에 BarsSinceEntry()를 이용하여 진입 후 일정 시간이 지나면 청산되는 식을 추가하려고 하는데 첫번째 식이 미청산 상태에서 두번째 식이 진입할 경우 처음 진입된 매수 봉 기준으로 두번째 식이 청산되어 버립니다. 검토 후 수정 부탁드립니다. 항상 감사합니다...^^ SetStopEndofday(145000); if date != date[1] or MarketPosition == 0 Then { Condition1 = false; Condition2 = false; Condition3 = false; Condition4 = false; } // 매수1 if Crossup(C, DayOpen+0.7) && Condition1 == False Then { buy("A",OnClose,def,1); Value7 = C; Condition1 = true; } // 매수2 if Crossup(C, DayOpen+1) && Condition3 == False Then { buy("B",OnClose,def,1); Value8 = C; Condition3 = true; } // 매수청산1 if MarketPosition==1 && Condition1==true Then { if BarsSinceEntry()>=6 && Condition2==False Then { exitlong("Ax",OnClose,def,"",1,1); Condition2=true; } } // 매수청산2 if MarketPosition==1 && Condition3==true Then { if BarsSinceEntry()>=12 && Condition4==False Then { exitlong("Bx",OnClose,def,"",1,1); Condition4=true; } }