커뮤니티

추가질문_글번호39505

프로필 이미지
통큰베팅
2014-12-16 20:27:43
152
글번호 81415
답변완료
글번호 39505 추가질문 드립니다. 작성해주신 스크립트대로 매매하여 성과가 좋지 않아 기존의 매매방식을 반대로 하고자 합니다. 즉, 매수신호에 매도, 매도신호에 매수진입을 하되, 청산 방법은 동일하게 하여 수식을 첨부파일의 두번째 시트나 세번째 시트와 같이 작성할 경우 기존의 방식과 신호가 달리 나옵니다. 기존 매수[매도] 신호에 매도[매수] 신호가 나오지 않습니다. 참조값(변수)가 동일한 상황에서 시그널만 반대로 주는 것인다. 그럼에도 불구하고 생각했던 방식으로 매매신호가 나오지 않는 이유가 무엇인지 궁금합니다. 첨부파일의 첫번째 시트의 매수, 매도 신호만 달리하여 두번째와 세번째 시트에 스크립트를 변환하여 작성하였는데 세가지 스크립트 모두 신호가 그렇게 나오지 않는 이유가 무엇일까요? 아울러 두번째 시트와 세번째 시트의 신호마저 다르게 나오는 이유는 왜일까요?
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-12-17 16:34:26

안녕하세요 예스스탁입니다. 부등호와 주문함수만 변경하시면 안됩니다. 주문타입도 같이 변경하셔야 합니다. atstop은 매수주문에서 지정한 가격이상이면 매수 매도주문에서 지정한 가격이하이면 매도신호가 발생합니다. 그러므로 매수와 매도의 진입을 바꾸신다면 주문함수의 atstop이 atlimit이 되어야 합니다. var : ho(0),OL(0),HL(0),CH(0),CL(0),CO(0); var : maho(0),maOL(0),maHL(0),maCH(0),maCL(0),maCO(0); var : cnt(0),sumho(0),sumOL(0),sumHL(0),sumCH(0),sumCL(0),sumCO(0); var : EntryCnt(0); ho = Dayhigh-Dayopen; OL = DayOpen-DayLow; HL = DayHigh-DayLow; CH = abs(Dayclose-dayhigh(1)); CL = abs(DayClose-DayLow(1)); CO = abs(DayClose-dayopen(1)); sumho = 0; sumOL = 0; sumHL = 0; sumCH = 0; sumCL = 0; sumCO = 0; for cnt = 1 to 10{ sumho = sumho + (dayhigh(cnt)-dayopen(cnt)); sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt)); sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt)); sumCH = sumCH + Abs(dayhigh(cnt)-dayclose(cnt+1)); sumCL = sumCL + Abs(DayLow(cnt)-Dayclose(cnt+1)); sumCO = sumCO + abs(DayOpen(cnt)-Dayclose(cnt+1)); } maho = sumho/10; maOL = sumOL/10; maHL = sumHL/10; maCH = sumCH/10; maCL = sumCL/10; maCO = sumCO/10; var1 = dayopen(0)+maho; var2 = DayOpen(0)-maOL; var3 = Dayclose(1)+maCH; var4 = Dayclose(1)-maCL; var5 =iff(dayopen(0)-dayclose(1)>0,dayclose(1)+maco,dayclose(1)-maco); var6 = DayOpen(0)+maHL; var7 = DayOpen(0)-maHL; var8 = NthMaxList(1,var1,var2,var3,var4,var5,var6,var7);#저항3 var9 = NthMaxList(2,var1,var2,var3,var4,var5,var6,var7);#저항2 var10 = NthMaxList(3,var1,var2,var3,var4,var5,var6,var7);#저항1 var11 = NthMaxList(4,var1,var2,var3,var4,var5,var6,var7);#균형 var12 = NthMaxList(5,var1,var2,var3,var4,var5,var6,var7);#지지1 var13 = NthMaxList(6,var1,var2,var3,var4,var5,var6,var7);#지지2 var14 = NthMaxList(7,var1,var2,var3,var4,var5,var6,var7);#지지3 var15 = var8*2-var11;#상단 목표 var16 = var14*2-var11;#하단 목표 if Bdate != Bdate[1] then EntryCnt = 0; if marketposition != 0 and marketposition != marketposition[1] then EntryCnt = EntryCnt+1; if EntryCnt < 1 then{ if dayopen < var11 then sell("S",AtLimit,var11); if dayopen > var11 then Buy("b",AtLimit,var11); } if MarketPosition == -1 Then{ ExitShort("SP1",atlimit,var12); ExitShort("SL1",AtStop,var10); } if MarketPosition == 1 Then{ ExitLong("BP1",atlimit,var10); ExitLong("BL1",AtStop,var12); } if stime == 062500 or (stime > 062500 and stime[1] < 062500) Then{ ExitLong("Bx"); ExitShort("Sx"); } 즐거운 하루되세요 > 통큰베팅 님이 쓴 글입니다. > 제목 : 추가질문_글번호39505 > 글번호 39505 추가질문 드립니다. 작성해주신 스크립트대로 매매하여 성과가 좋지 않아 기존의 매매방식을 반대로 하고자 합니다. 즉, 매수신호에 매도, 매도신호에 매수진입을 하되, 청산 방법은 동일하게 하여 수식을 첨부파일의 두번째 시트나 세번째 시트와 같이 작성할 경우 기존의 방식과 신호가 달리 나옵니다. 기존 매수[매도] 신호에 매도[매수] 신호가 나오지 않습니다. 참조값(변수)가 동일한 상황에서 시그널만 반대로 주는 것인다. 그럼에도 불구하고 생각했던 방식으로 매매신호가 나오지 않는 이유가 무엇인지 궁금합니다. 첨부파일의 첫번째 시트의 매수, 매도 신호만 달리하여 두번째와 세번째 시트에 스크립트를 변환하여 작성하였는데 세가지 스크립트 모두 신호가 그렇게 나오지 않는 이유가 무엇일까요? 아울러 두번째 시트와 세번째 시트의 신호마저 다르게 나오는 이유는 왜일까요?