커뮤니티
피라미딩 진입 및 청산 문의
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 (~~);
진입한 시점과 날짜, 가격에 상관없이 일시에 청산되는 문제가 있습니다.
각 진입마다 독립적으로 청산이 가능하도록 만들 수 없을지요?
다음글
이전글