커뮤니티
문의 드립니다.
2015-10-29 12:09:12
212
글번호 91865
안녕하세요. 빠르고 친절한 답변 고맙습니다.
제가 정확하게 설명하지 못해서 수식이 완성이 안 되고 약간의 오해가 있었습니다.
일단 진입 후 작동하는지 확인하려고 수식을 넣어봤는데요. 진입이 이루어지지 않네요.
다시 살펴보시고 수식을 부탁 드립니다.
이전 질문은 44702번입니다.
=============================================================================
진입조건
저항가격(250),지지가격(248)
몇시 이후 당일 진폭이 10틱 이상일 때(지지 저항 가격만 넣으면 주문이 들어가게 40틱에서 10틱으로 줄였습니다.)
현재가가 저항 가격에 오면 2계약 매도(올라와서 저항 가격에 닿으면 매도하고 가격을 넘어가면 스위칭을 합니다)
현재가가 지지 가격에 오면 2계약 매수
청산
손절이 없으면 +10틱에 1계약, +15틱에 1계약 각각 익절
손절 및 스위칭
진입가격 대비 -n틱이면 손절하고 스위칭
손절 계약수의 1/2을 손절과 함께 스위칭하고, 1/2은 손절가격 -6틱에 진입
(매도 포지션을 보유하고 있을 때, N틱이 상승하면 2계약을 손절하면서 동시에 계약수의 1/2인 1계약을 매수로 스위칭하고(1차 매수), 2계약은 손절가격 -6틱에 진입 대기(2차 매수)합니다.
2차 매수가 체결이 되면 2계약 손절 후 3계약을 보유하게 됩니다)
손절 후 청산 및 재 스위칭 조건
손절이 세번(변수처리) 이하인 경우(스위칭 후 재 손절 포함)
2계약을 손절하고 1개만 스위칭 체결됐을 때
(매도 후 N틱을 상승해서 손절하고 매수 스위칭을 1계약 했는데, 손절가격 -6틱에 진입 대기중인 2차 물량이 체결되지 않고 오를 경우)
당일 누적 손실금 + 10틱에 청산
(당일 누적 손실금 : 2계약으로 10틱 손절해서 20틱 손실인 경우 20틱*25000원=50만원 입니다, 손실을 누적 틱수로 하지 않은 이유는 슬리피지가 발생했을 때 손실 금액에 슬리피지까지 포함되는지 잘 모르기 때문이고, 금액으로 손실 제한을 두고 싶어서입니다)
(250에 매도하고 250.5에 손절 후 1계약 매수로 스위칭을 하고, 2차 주문이 체결되지 않으면, 손실 금액인 50만원이 본전이 되는 251.5 + 10틱인 252에 청산 주문이 나가는 겁니다)
2계약을 손절하고 1계약 스위칭, 추가 2계약 진입해서 3계약을 보유중이면
당일 누적 손실금 + 10틱에 1/2 청산, 당일 누적 손실금 +15틱에 나머지 청산
(손실금 50만원 + 10틱= 251.50에 청산하고, 남은 1계약은 251.75에 청산합니다)
손절이 세번 이상인 경우
당일 누적 손실금 + 1틱에 1/2 청산, 당일 누적 손실금 +15틱에 나머지 청산
(당일 누적손실금을 복구하는 가격 + 1틱인데, 어떻게 표현해야 할지 몰라서 설명이 잘 안된 것 같습니다)
최대손실 300만원이면 거래 중지.(스위칭을 반복해서 손실이 300만원이 되면 모든 거래는 중지합니다)
(손실제한 수식을 검색해서 작성해봤는데 진입이 발생하지 않더군요. 이 부분도 작성 부탁 드립니다.)
이해할 수 있게 주석 부탁드립니다. 감사합니다.
답변 1
예스스탁 예스스탁 답변
2015-10-29 17:36:02
안녕하세요
예스스탁입니다.
input : 시간(93000),N(10),저항가격(250),지지가격(248),목표수익틱1(10),목표수익틱2(15),손절틱(15);
input : 연속손실횟수(3);
var : cnt(0),count(0),loss(0),dayPL(0);
var : BV1(0),BV2(0),SV1(0),SV2(0);
#당일진입횟수 카운트
#최근 20개의 진입의 날짜과 현재봉 날짜와 비교해
#같은 날짜가 몇번있는지 체크해서
#당일 진입횟수와 누적수익계산 카운트
count = 0;
dayPL = 0;
for cnt = 0 to 30{
if sdate == EntryDate(cnt) Then{
count = count+1;
if cnt > 0 Then
dayPL = dayPL+PositionProfit(cnt);
}
}
#최근 연속손실횟수갯수만큼의 청산의 날짜와 손익을 불러와
#당일 손실이 몇회연속인지 카운트
loss = 0;
for cnt = 연속손실횟수 to 1{
if sdate == ExitDate(cnt) and PositionProfit(cnt) < 0 Then
loss = loss+1;
Else
loss = 0;
}
#지정한 시간이후 당일 진폭이 N틱이상이면
#당일손실이 6포인트 이하일때만 진입
if stime >= 시간 and dayhigh-daylow >= PriceScale*N and daypl < 6 Then{
#저항가격을 상향돌파하면 매수 2계약
if crossup(c,저항가격) Then
buy("b",OnClose,def,2);
#지지가격을 하향이탈하면 매도 2계약
if CrossDown(c,지지가격) Then
sell("s",OnClose,def,2);
}
if MarketPosition == 1 Then{
#손절스위칭 진입이고
#손절틱-틱만큼 가격이 하락하면 (절반수량*2) 추가진입
if MaxEntries == 1 and IsEntryName("sb1") == true Then
buy("sb3",AtStop,ExitPrice(1)+PriceScale*(손절틱+6),BV1);
#첫진입이거나 당일누적손익이 0이상일때 목표수익청산(10,15틱)
if count == 1 or dayPL >= 0 Then{
exitlong("BP11",Atlimit,EntryPrice+PriceScale*목표수익틱1,"",1,1);
exitlong("BP12",Atlimit,EntryPrice+PriceScale*목표수익틱2);
}
#두번진입부터 당일누적손익이 0미만일때 목표수익청산
if count > 1 and dayPL < 0 Then{
#연속손실횟수 미만
if loss < 연속손실횟수 then{
#스위칭만 진입했을경우
#진입가+당일손실+10틱
if MaxEntries == 1 Then{
exitlong("bp21",Atlimit,EntryPrice+abs(daypl)+PriceScale*10);
}
#추가진입까지 했을경우
#진입가+당일손실+10틱
#진입가+당일손실+15틱
if MaxEntries == 2 Then{
exitlong("bp31",Atlimit,EntryPrice+abs(daypl)+PriceScale*10,"",floor(MaxContracts*0.5),1);
exitlong("bp32",Atlimit,EntryPrice+abs(daypl)+PriceScale*15);
}
}
#연속손실횟수 충족
if loss == 연속손실횟수 then{
exitlong("bp41",Atlimit,EntryPrice+abs(daypl)+PriceScale*1,"",floor(MaxContracts*0.5),1);
exitlong("bp42",Atlimit,EntryPrice+abs(daypl)+PriceScale*15);
}
}
SV1 = Floor(CurrentContracts*0.5);
SV2 = CurrentContracts-SV1+1;
#손절틱만큼 가격이 하락하면 손절하고 보유수량 절반 스위칭
sell("bs1",AtStop,EntryPrice-PriceScale*손절틱,SV1);
#손절틱-틱만큼 가격이 하락하면 (절반수량*2) 추가진입(동일봉 가격조건만족에 대비)
sell("bs2",AtStop,EntryPrice-PriceScale*(손절틱+6),SV2);
}
if MarketPosition == -1 Then{
#손절스위칭 진입이고
#손절틱-틱만큼 가격이 하락하면 (절반수량*2) 추가진입
if MaxEntries == 1 and IsEntryName("bs1") == true Then
sell("bs3",AtStop,ExitPrice(1)-PriceScale*(손절틱+6),SV2);
#첫진입이거나 당일누적손익이 0이상일때 목표수익청산(10,15틱)
if count == 1 or dayPL >= 0 Then{
exitshort("SP11",Atlimit,EntryPrice-PriceScale*목표수익틱1,"",1,1);
exitshort("SP12",Atlimit,EntryPrice-PriceScale*목표수익틱2);
}
#두번진입부터 당일누적손익이 0미만일때 목표수익청산
if count > 1 and dayPL < 0 Then{
#연속손실횟수 미만
if loss < 연속손실횟수 then{
#스위칭만 진입했을경우
#진입가+당일손실+10틱
if MaxEntries == 1 Then{
exitshort("SP21",Atlimit,EntryPrice-abs(daypl)-PriceScale*10);
}
#추가진입까지 했을경우
#진입가+당일손실+10틱
#진입가+당일손실+15틱
if MaxEntries == 2 Then{
exitshort("SP31",Atlimit,EntryPrice-abs(daypl)-PriceScale*10,"",floor(MaxContracts*0.5),1);
exitshort("SP32",Atlimit,EntryPrice-abs(daypl)-PriceScale*15);
}
}
#연속손실횟수 충족
if loss == 연속손실횟수 then{
exitshort("SP41",Atlimit,EntryPrice-abs(daypl)-PriceScale*1,"",floor(MaxContracts*0.5),1);
exitshort("SP42",Atlimit,EntryPrice-abs(daypl)-PriceScale*15);
}
}
BV1 = Floor(CurrentContracts*0.5);
BV2 = CurrentContracts-BV1+1;
#손절틱만큼 가격이 하락하면 손절하고 보유수량 절반 스위칭
buy("sb1",AtStop,EntryPrice+PriceScale*손절틱,BV1);
#손절틱-틱만큼 가격이 하락하면 (절반수량*2) 추가진입(동일봉 가격조건만족에 대비)
buy("sb2",AtStop,EntryPrice+PriceScale*(손절틱+6),BV2);
}
즐거운 하루되세요
> 고운무지개 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요. 빠르고 친절한 답변 고맙습니다.
제가 정확하게 설명하지 못해서 수식이 완성이 안 되고 약간의 오해가 있었습니다.
일단 진입 후 작동하는지 확인하려고 수식을 넣어봤는데요. 진입이 이루어지지 않네요.
다시 살펴보시고 수식을 부탁 드립니다.
이전 질문은 44702번입니다.
=============================================================================
진입조건
저항가격(250),지지가격(248)
몇시 이후 당일 진폭이 10틱 이상일 때(지지 저항 가격만 넣으면 주문이 들어가게 40틱에서 10틱으로 줄였습니다.)
현재가가 저항 가격에 오면 2계약 매도(올라와서 저항 가격에 닿으면 매도하고 가격을 넘어가면 스위칭을 합니다)
현재가가 지지 가격에 오면 2계약 매수
청산
손절이 없으면 +10틱에 1계약, +15틱에 1계약 각각 익절
손절 및 스위칭
진입가격 대비 -n틱이면 손절하고 스위칭
손절 계약수의 1/2을 손절과 함께 스위칭하고, 1/2은 손절가격 -6틱에 진입
(매도 포지션을 보유하고 있을 때, N틱이 상승하면 2계약을 손절하면서 동시에 계약수의 1/2인 1계약을 매수로 스위칭하고(1차 매수), 2계약은 손절가격 -6틱에 진입 대기(2차 매수)합니다.
2차 매수가 체결이 되면 2계약 손절 후 3계약을 보유하게 됩니다)
손절 후 청산 및 재 스위칭 조건
손절이 세번(변수처리) 이하인 경우(스위칭 후 재 손절 포함)
2계약을 손절하고 1개만 스위칭 체결됐을 때
(매도 후 N틱을 상승해서 손절하고 매수 스위칭을 1계약 했는데, 손절가격 -6틱에 진입 대기중인 2차 물량이 체결되지 않고 오를 경우)
당일 누적 손실금 + 10틱에 청산
(당일 누적 손실금 : 2계약으로 10틱 손절해서 20틱 손실인 경우 20틱*25000원=50만원 입니다, 손실을 누적 틱수로 하지 않은 이유는 슬리피지가 발생했을 때 손실 금액에 슬리피지까지 포함되는지 잘 모르기 때문이고, 금액으로 손실 제한을 두고 싶어서입니다)
(250에 매도하고 250.5에 손절 후 1계약 매수로 스위칭을 하고, 2차 주문이 체결되지 않으면, 손실 금액인 50만원이 본전이 되는 251.5 + 10틱인 252에 청산 주문이 나가는 겁니다)
2계약을 손절하고 1계약 스위칭, 추가 2계약 진입해서 3계약을 보유중이면
당일 누적 손실금 + 10틱에 1/2 청산, 당일 누적 손실금 +15틱에 나머지 청산
(손실금 50만원 + 10틱= 251.50에 청산하고, 남은 1계약은 251.75에 청산합니다)
손절이 세번 이상인 경우
당일 누적 손실금 + 1틱에 1/2 청산, 당일 누적 손실금 +15틱에 나머지 청산
(당일 누적손실금을 복구하는 가격 + 1틱인데, 어떻게 표현해야 할지 몰라서 설명이 잘 안된 것 같습니다)
최대손실 300만원이면 거래 중지.(스위칭을 반복해서 손실이 300만원이 되면 모든 거래는 중지합니다)
(손실제한 수식을 검색해서 작성해봤는데 진입이 발생하지 않더군요. 이 부분도 작성 부탁 드립니다.)
이해할 수 있게 주석 부탁드립니다. 감사합니다.
다음글
이전글