커뮤니티

atstop 주문에 문제가 있는거 같은데.. 잘못된거 설명좀

프로필 이미지
회원
2009-02-26 21:41:06
614
글번호 20531
답변완료
var : cnt(0); cnt = 0; for var1=0 to 10{ if sdate==entrydate(var1) Then cnt = cnt+1; } if IsEntryName("첫매수",1) Then var1=1; Else var1=2; if cnt ==0 Then{ if stime>093000 then{ var6=lowest(l,30); if c<var6* 1.15 and c>var6 and ma(c,10)>ma(c,20) Then buy("첫매수",atmarket); } } if cnt>0 then{ if var1==1 then { if entryPrice(1)<c Then buy("매수2",atmarket); } } if cnt>0 then { if TotalTrades>=2 and var1==2 Then{ if exitPrice(1)<c and ma(c,5)>ma(c,20) Then buy("매수3",atmarket); } } if c < EntryPrice*0.9 Then ExitLong("아까운청산", AtMarket,DEF,DEF); if c > EntryPrice*1.10 Then{ if c> EntryPrice*1.5 then{ ExitLong("최대수익",atstop, EntryPrice*1.45+atr(10)*0.5); } exitlong("추적매도", atstop, c[1]+atr(10)*0.5); <------- 요 부분 } 이 식에서 시물로 돌려 보면 매수, 매도 주문이 한봉에 청산되고 잇습니다. atstop 주문에 문제가 있는거 같은데//// 잘모르겠네요..설명좀 해주시고 어떻게 수정해야될까요.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-02-27 13:19:18

안녕하세요 예스스탁입니다. atstop은 시세조건이 만족하면 바로 주문이 발생합니다. 고로 진입한 봉에서도 청산이 나올 수 있습니다. exitlong은 에서 atstop은 지정한 가격이하의 시세가 발생하면 청산하는식이므로 c[1]+atr(10)*0.5이하의 이하의 시세이면 바로 청산이 됩니다. atstop에서의 가격은 가장최근 완성된 봉을 기준으로 하므로 신제 신호봉의 전전봉의 종가+atr(1)*0.5 이하이면 발생합니다. 또한 entryprice(0)는 현재봉에서 포지션이 있으면 진입의 값을 가져오는데 entryprice(0)는 진입이 없으면 0값입니다. 그러므로 항상 if문이 만족하고 atstop이 설정되어 있고 감시하다가 진입이 발생하면 해당조건에 만족하기만 하면 신호가 나옵니다. 포지션을 확인하는 조건이 필요합니다. var : cnt(0); cnt = 0; for var1=0 to 10{ if sdate==entrydate(var1) Then cnt = cnt+1; } if IsEntryName("첫매수",1) Then var1=1; Else var1=2; if cnt ==0 Then{ if stime>093000 then{ var6=lowest(l,30); if c<var6* 1.15 and c>var6 and ma(c,10)>ma(c,20) Then buy("첫매수",atmarket); } } if cnt>0 then{ if var1==1 then { if entryPrice(1)<c Then buy("매수2",atmarket); } } if cnt>0 then { if TotalTrades>=2 and var1==2 Then{ if exitPrice(1)<c and ma(c,5)>ma(c,20) Then buy("매수3",atmarket); } } if c < EntryPrice*0.9 Then ExitLong("아까운청산", AtMarket,DEF,DEF); if c > EntryPrice*1.10 and MarketPosition() == 1 Then{ if c> EntryPrice*1.5 then{ ExitLong("최대수익",atstop, EntryPrice*1.45+atr(10)*0.5); } exitlong("추적매도", atstop, c[1]+atr(10)*0.5); #<------- 요 부분 } 즐거운 할되세요 > CJ_coco 님이 쓴 글입니다. > 제목 : atstop 주문에 문제가 있는거 같은데.. 잘못된거 설명좀 > var : cnt(0); cnt = 0; for var1=0 to 10{ if sdate==entrydate(var1) Then cnt = cnt+1; } if IsEntryName("첫매수",1) Then var1=1; Else var1=2; if cnt ==0 Then{ if stime>093000 then{ var6=lowest(l,30); if c<var6* 1.15 and c>var6 and ma(c,10)>ma(c,20) Then buy("첫매수",atmarket); } } if cnt>0 then{ if var1==1 then { if entryPrice(1)<c Then buy("매수2",atmarket); } } if cnt>0 then { if TotalTrades>=2 and var1==2 Then{ if exitPrice(1)<c and ma(c,5)>ma(c,20) Then buy("매수3",atmarket); } } if c < EntryPrice*0.9 Then ExitLong("아까운청산", AtMarket,DEF,DEF); if c > EntryPrice*1.10 Then{ if c> EntryPrice*1.5 then{ ExitLong("최대수익",atstop, EntryPrice*1.45+atr(10)*0.5); } exitlong("추적매도", atstop, c[1]+atr(10)*0.5); <------- 요 부분 } 이 식에서 시물로 돌려 보면 매수, 매도 주문이 한봉에 청산되고 잇습니다. atstop 주문에 문제가 있는거 같은데//// 잘모르겠네요..설명좀 해주시고 어떻게 수정해야될까요.