커뮤니티

피라미딩 진입 및 청산 문의

프로필 이미지
adino30
2015-12-03 17:41:09
120
글번호 93054
답변완료
안녕하세요? 피라미딩 진입 시 (모든 신호 허용) 코드 질문 드립니다. 예를 들어, 어떠한 "조건 1"이 만족할 때 진입 "enter1" 이 있다고 가정하였습니다. if "조건 1" then buy ("enter1", onclose); 이때, 중복진입 옵션을 클릭하면, 차트상 "조건1"이 만족할 때 마다 진입이 이루어지는데, 청산이 진입 시점에 관계없이 한번에 이루어 지는 문제가 있습니다. 예를 들어, 아래와 같은 상황을 가정해 보겠습니다. 15년11월1일: 1000원에 진입 15년 11월2일: 1100원에 진입 이때, 청산조건을 진입 조건보다 3% 가격 상승 후, crossdown(mfi,80)으로 잡았을때, (if c>entryprice*1.03 then if crossdown(mfi,80) then exitlong (~~); 진입한 시점과 날짜, 가격에 상관없이 일시에 청산되는 문제가 있습니다. 각 진입마다 독립적으로 청산이 가능하도록 만들 수 없을지요?
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-12-04 11:43:56

안녕하세요 예스스탁입니다. 청산함수에 수량을 지정하지 않으시면 전량청산입니다. 청산이 발생할때마다 순차적으로 수량을 청산하게 만드셔야 합니다. 아래 내용 참고하시기 바랍니다. var : Xcnt(0),cnt(0),entry(0); Array : vol[21](0); #매수진입상태가 아니면 모든 변수 0으로 초기화 if MarketPosition != 1 Then{ entry = 0; Xcnt = 0; for cnt = 1 to 20{ vol[cnt] = 0; } } if "조건1" then{ buy("enter1",onclose); } #매수상태에서 if MarketPosition == 1 Then{ #진입수량이 증가하면(진입발생) if CurrentContracts > CurrentContracts[1] Then{ #entry를 1씩 증가 entry = entry +1; #entry번호로 배열변수에 해당 진입 수량 저장 #첫진입은 vol[1], 두번째는 vol[2], 세번쨰는 vol[3]... vol[entry] = CurrentContracts-CurrentContracts[1]; } #청산조건발생 if c>entryprice*1.03 and crossdown(mfi,80) then{ #청산발생횟수 1씩 증가 Xcnt = Xcnt+1; #지정한 수량으로 청산 #첫청산 vol[1], 두번째는 vol[2], 세번째는 vol[3]...만큼 청산 exitlong ("exit",OnClose,def,"",vol[Xcnt],2); } } 즐거운 하루되세요 > adino30 님이 쓴 글입니다. > 제목 : 피라미딩 진입 및 청산 문의 > 안녕하세요? 피라미딩 진입 시 (모든 신호 허용) 코드 질문 드립니다. 예를 들어, 어떠한 "조건 1"이 만족할 때 진입 "enter1" 이 있다고 가정하였습니다. if "조건 1" then buy ("enter1", onclose); 이때, 중복진입 옵션을 클릭하면, 차트상 "조건1"이 만족할 때 마다 진입이 이루어지는데, 청산이 진입 시점에 관계없이 한번에 이루어 지는 문제가 있습니다. 예를 들어, 아래와 같은 상황을 가정해 보겠습니다. 15년11월1일: 1000원에 진입 15년 11월2일: 1100원에 진입 이때, 청산조건을 진입 조건보다 3% 가격 상승 후, crossdown(mfi,80)으로 잡았을때, (if c>entryprice*1.03 then if crossdown(mfi,80) then exitlong (~~); 진입한 시점과 날짜, 가격에 상관없이 일시에 청산되는 문제가 있습니다. 각 진입마다 독립적으로 청산이 가능하도록 만들 수 없을지요?