커뮤니티
수식 부탁드립니다.
2015-05-13 07:44:38
153
글번호 85965
매번 성의있는 답변 정말 감사드립니다.
오늘 질문이 좀 많습니다.
1.
얼마 전 제가 부탁드려 아래와 같은 식을 짜주셨는데,
진입이나 손절시 반올림이 가능한지요?
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then
var1 = O;
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,NextBarOpen*1.01);
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,NextBarOpen*0.99);
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,var1*1.01);
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,var1*0.99);
SetStopLoss(1,PercentStop);
예를들어 매수진입가를 계산해서 80.8021 이 나왔는데,
거래하는 종목은 소수점 두째자리까지밖에 안습니다.
이럴 때 반올림해서 두째자리까지만 나타내면 80.80 이 됩니다.
하지만 80.8021 보다 큰 값중 가장 가까운 값인 80.81 로 진입을 하더군요.
매도진입가의 경우도 계산한 값이 69.2482 라고 할 때,
반올림한 값인 69.25 로 진입하고 싶은데,
실제로는 69.2482 보다 낮은 값중 가장 가까운 값인 69.24 로 진입을 하더군요.
손절의 경우도 마찬가지더군요.
2.
제가 부탁드려 짜주신 위의 식은 해외선물 용이라 16시 ~ 익일 16시까지를
하루로 잡은 것입니다.
이렇게 잡은 하루에서 1회 또는 2회나 3회 등 회수를 조절해서
조절한 만큼 손절이 발생하면 그날은 더 이상 진입 할 수 없게
식을 짤 수 있나요?
하지만 손절이 아니라 트레일링스탑 따위는 재진입해도 상관 없습니다.
그리고 여기서 말하는 그 날은 16시~16시 를 하루로 잡았을 때의 그 날을 말합니다.
예를들어 1회 손절 제한으로 할 경우
3일 15시 20분에 손절이 발생하면,
이는 2일 16시 ~ 3일 16시 사이에 발생한 손절이 됩니다.
따라서 3일 15시 20분 ~ 3일 16시 까지는 재진입하지 않습니다.
하지만 3일 16시 ~ 4일 16시에는 신호가 발생하면 진입이 가능합니다.
3-1.
(아래의 질문은 처음에 부탁드렸을 때 짜주신것 처럼,
특정시(예를들어 16시)를 기준으로 진입신호가 발생하면 즉시 진입 할 수 있게
부탁드립니다.)
위에 짜주신 식은 매일 16시~16시에 진입하도록 되어 있습니다.
그리고 매일 16시의 시가를 기준으로 진입가를 계산하도록 되어 있습니다.
그런데 격일제 또는 원하는 날짜만 하는 것이 가능한지요?
예를들어 하루씩 걸러 월수금 화목 월수금 화목...
또는 이틀씩 걸러 월 목 화 금 수 월 목 화 금 수... 라던지
아니면 매주 월요일만 또는 수요일만 한다던가,
아니면 매주 화수금만 한다던지 말입니다.
이런식으로 날짜 조절이 가능한지 궁금합니다.
그리고 이 때,
만약 월수금 화목으로 한다고 할 때,
월요일 16시 ~ 화요일 16시 까지를 1일로 잡고,
이날 만약에 진입 신호가 발생하지 않는다면 그냥 넘기고,
다시 수요일 16시 ~ 목요일 16시의 진입신호를 기다린다던가 하는 식입니다.
3-2.
위의 3-1 과 연관된 질문인데,
월요일 또는 화요일이나 수요일 등의 16시 시가를 기준으로
일주일 내내 사용하는 게 가능한지 궁금합니다.
예를들어 월요일 16시 시가 곱하기 1.1 을 매수진입가로 한다고 했을 때,
월요일 16시의 시가가 100 이라면 진입가는 110 이 됩니다.
그런데 월요일 16시 ~ 화요일 16시 까지는 110 이라는 진입 신호가 발생하지 않고,
목요일에 발생하면 목요일에 진입하는 식입니다.
또는 화요일이나 수요일 16시를 기준으로 삼을 수도 있습니다.
그래서 월요일 16시 시가를 기준으로 월~금 까지 쓸수도 있고,
화요일 16시 시가를 기준으로 화~금, 또는 화~ 다음주 수를 기준으로 삼을 수도 있습니다.
이런식으로 특정 날짜와 시간을 기준으로
며칠안에 진입신호가 발생하면 진입하는식이 가능한지 궁금합니다.
4-1.
위에 짜주신 식은 10분봉을 사용하여 16시를 기준으로 했는데,
이를 단순 일봉이나 주봉을 사용하면 어떻게 짜야되는지요?
예를들어 매일 일봉의 시가를 기준으로,
또는 매주 주봉의 시가를 기준으로 삼아,
그 시가 곱하기 1.1 을 매수진입가로 삼는 식은 어떻게 짜나요?
4-2.
일봉을 기준으로 20일 평균 ATR 의 2배 만큼 만큼 변동이 생겼을 때 진입하는 식은
어떻게 짜나요?
또는 주봉의 경우 20주 평균 ATR 의 2배 만큼 변동이 생겼을 때 진입하는 식은
어떻게 짜나요?
5-1.
갭변동이 발생했을 때의 손절은 어떻게 하나요?
예를들어 매수진입가 대비 1% 하락했을 때 즉시 시장가로 손절 주문을 내게 식을 짰는데,
갑자기 5% 갭 하락 했다면, 이를 무시하고 그냥 시장가로 손절 주문이 나가는 건가요?
만약 1% 손절로 설정해 놨는데,
1% 이상 떨어져도 그냥 시장가로 청산 주문 나가는 식이 궁금합니다.
5-2.
아래의 식은 제가 얼마전 부탁드려서 짜주신 식입니다.
(위에 보여드린 식 밑에 덧붙여 쓰고 있습니다.)
var : HH(0),LL(0);
if MarketPosition == 1 Then{
HH = highest(h,BarsSinceEntry);
if HH >= EntryPrice*1.10 and HH < EntryPrice*1.20 Then
ExitLong("bx1",AtStop,HH-(HH-EntryPrice)*0.5);
if HH >= EntryPrice*1.20 and HH < EntryPrice*1.30 Then
ExitLong("bx2",AtStop,HH-(HH-EntryPrice)*0.6);
if HH >= EntryPrice*1.30 and HH < EntryPrice*2.00 Then
ExitLong("bx3",AtStop,HH-(HH-EntryPrice)*0.7);
if HH >= EntryPrice*2.00 Then
ExitLong("bx4",AtStop,HH*0.9);
}
이 식의 경우도 5-1 의 경우와 같이 갭 하락이 있을 수 있습니다.
예를들어 위 식의 경우 진입이후 최고가가 1.2 ~ 1.3 에 있을때,
이 수익 분이 60% 빠지면 즉시 시장가로 청산하게 되어 있는데,
만약에 50% 가 빠진 후에 순차적으로 60% 가 빠지지 않고,
갭하락으로 바로 70% 가 빠져버리는 경우가 있습니다.
이럴 때에도 역시 그냥 바로 시장가로 청산 주문이 나가는 식이 궁금합니다.
답변 1
예스스탁 예스스탁 답변
2015-05-13 11:27:51
안녕하세요
예스스탁입니다.
아래 내용들 참고하셔서 수정보완해 사용하시기 바랍니다.
1.
round함수 이용하셔서 소숫점 3자리아라에서 반올림해서
2자리까지만 사용하게 처리하시면 됩니다.
반올림한 가격을 쓰시면 손절함수를 사용하지 않고 풀어서 작성하셔야 합니다.
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then
var1 = O;
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
2.
input : N(3);
var : loss(0);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
var1 = O;
Loss = 0;
}
if MarketPosition == 0 and CurrentContracts < CurrentContracts[1] and
(IsExitName("bx",1) == true or IsExitName("sx",1) == true) Then
loss = loss+1;
if loss < N then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
3-1.
아래식은 격일로 거래하는 식입니다.
var : Week(0),entry(false),Start(false);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
entry = false;
var1 = O;
Week = DayOfWeek(sdate);
if Week%2 == 0 Then
Entry = true;
}
if entry == true then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
아래내용은 특정요일들을 지정하는 것입니다.
var : Week(0),entry(false),Start(false);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
entry = false;
var1 = O;
Week = DayOfWeek(sdate);
if Week == 1 or Week == 2 or week == 3 Then#월화수만 지정
Entry = true;
}
if entry == true then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
3-2
특정요일의 16시 시가를 저장해 다음 지정한 요일전가지 사용하는 식입니다.
var : Week(0),entry(false),Start(false);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
Week = DayOfWeek(sdate);
if week == 1 Then{#월요일
var1 = O;
}
}
if entry == true then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
4-1
일봉시가
if MarketPosition <= 0 and H < dayopen*1.01 Then
buy("b",AtStop,round(dayopen*1.01,3));
if MarketPosition >= 0 and L > dayopen*0.99 Then
sell("s",AtStop,round(dayopen*0.99,3));
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
주봉시가
var : W1(0),W2(0),WeekO(0);
if Bdate != Bdate[1] Then{
W1 = DayOfWeek(sdate);
W2 = W1[1];
if W1 < W2 Then
WeekO = O;
}
if MarketPosition <= 0 and H < WeekO*1.01 Then
buy("b",AtStop,round(WeekO*1.01,3));
if MarketPosition >= 0 and L > WeekO*0.99 Then
sell("s",AtStop,round(WeekO*0.99,3));
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(WeekO*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(WeekO*1.01,3));
4-2
#일봉ATR
input : N(3);
input : P(20);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0);
var : loss(0),entry(false);
sum = 0;
for cnt = 0 to P-1{
If DayClose(cnt+1) > dayhigh(cnt) then
TH = DayClose(cnt+1);
else
TH = dayhigh(cnt);
If DayClose(cnt+1) < DayLow(cnt) then
TL = DayClose(cnt+1);
else
TL = daylow(cnt);
TR = TH-TL;
Sum = Sum+TR;
}
DayATR = Sum/P;
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
var1 = O;
Loss = 0;
entry = false;
}
if MarketPosition == 0 and CurrentContracts < CurrentContracts[1] and
(IsExitName("bx",1) == true or IsExitName("sx",1) == true) Then
loss = loss+1;
if loss < N and TR >= dayATR*2 and dayATR > 0 then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
#주봉 ATR
input : N(3);
input : P(20);
var : loss(0),entry(false);
var : TF(0),TL(0),TH(0),cnt(0),sum(0),w1(0),w2(0),WeekATRV(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0);
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
W1 = DayOfWeek(sdate);
W2 = W1[1];
if W1 < W2 Then{
HH[0] = H;
LL[0] = L;
CC[0] = C;
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
}
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
sum = 0;
if TR[P] > 0 Then{
for cnt = 0 to P-1{
sum = sum + TR[cnt];
}
WeekATRV = sum/P;
}
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{
var1 = O;
Loss = 0;
}
if MarketPosition == 0 and CurrentContracts < CurrentContracts[1] and
(IsExitName("bx",1) == true or IsExitName("sx",1) == true) Then
loss = loss+1;
if loss < N and TR[0] >= WeekATRV*2 and WeekATRV > 0 then{
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,round(NextBarOpen*1.01,3));
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,round(NextBarOpen*0.99,3));
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,round(var1*1.01,3));
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,round(var1*0.99,3));
}
if MarketPosition == 1 Then
ExitLong("bx",AtStop,round(EntryPrice*0.99,3));
if MarketPosition == -1 Then
ExitLong("sx",AtStop,round(EntryPrice*1.01,3));
5-1
예 갭변동(5%)으로 해당 손절가(1%) 이하의 시세가 발생하면 청산됩니다.
5-2
예 위 5-1번과 같이 바로 주문이 집행됩니다.
즐거운 하루되세요
> spek 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
>
매번 성의있는 답변 정말 감사드립니다.
오늘 질문이 좀 많습니다.
1.
얼마 전 제가 부탁드려 아래와 같은 식을 짜주셨는데,
진입이나 손절시 반올림이 가능한지요?
if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then
var1 = O;
if MarketPosition <= 0 and stime == 155000 Then
buy("b1",AtStop,NextBarOpen*1.01);
if MarketPosition >= 0 and stime == 155000 Then
sell("s1",AtStop,NextBarOpen*0.99);
if MarketPosition <= 0 and H < var1*1.01 Then
buy("b",AtStop,var1*1.01);
if MarketPosition >= 0 and L > var1*0.99 Then
sell("s",AtStop,var1*0.99);
SetStopLoss(1,PercentStop);
예를들어 매수진입가를 계산해서 80.8021 이 나왔는데,
거래하는 종목은 소수점 두째자리까지밖에 안습니다.
이럴 때 반올림해서 두째자리까지만 나타내면 80.80 이 됩니다.
하지만 80.8021 보다 큰 값중 가장 가까운 값인 80.81 로 진입을 하더군요.
매도진입가의 경우도 계산한 값이 69.2482 라고 할 때,
반올림한 값인 69.25 로 진입하고 싶은데,
실제로는 69.2482 보다 낮은 값중 가장 가까운 값인 69.24 로 진입을 하더군요.
손절의 경우도 마찬가지더군요.
2.
제가 부탁드려 짜주신 위의 식은 해외선물 용이라 16시 ~ 익일 16시까지를
하루로 잡은 것입니다.
이렇게 잡은 하루에서 1회 또는 2회나 3회 등 회수를 조절해서
조절한 만큼 손절이 발생하면 그날은 더 이상 진입 할 수 없게
식을 짤 수 있나요?
하지만 손절이 아니라 트레일링스탑 따위는 재진입해도 상관 없습니다.
그리고 여기서 말하는 그 날은 16시~16시 를 하루로 잡았을 때의 그 날을 말합니다.
예를들어 1회 손절 제한으로 할 경우
3일 15시 20분에 손절이 발생하면,
이는 2일 16시 ~ 3일 16시 사이에 발생한 손절이 됩니다.
따라서 3일 15시 20분 ~ 3일 16시 까지는 재진입하지 않습니다.
하지만 3일 16시 ~ 4일 16시에는 신호가 발생하면 진입이 가능합니다.
3-1.
(아래의 질문은 처음에 부탁드렸을 때 짜주신것 처럼,
특정시(예를들어 16시)를 기준으로 진입신호가 발생하면 즉시 진입 할 수 있게
부탁드립니다.)
위에 짜주신 식은 매일 16시~16시에 진입하도록 되어 있습니다.
그리고 매일 16시의 시가를 기준으로 진입가를 계산하도록 되어 있습니다.
그런데 격일제 또는 원하는 날짜만 하는 것이 가능한지요?
예를들어 하루씩 걸러 월수금 화목 월수금 화목...
또는 이틀씩 걸러 월 목 화 금 수 월 목 화 금 수... 라던지
아니면 매주 월요일만 또는 수요일만 한다던가,
아니면 매주 화수금만 한다던지 말입니다.
이런식으로 날짜 조절이 가능한지 궁금합니다.
그리고 이 때,
만약 월수금 화목으로 한다고 할 때,
월요일 16시 ~ 화요일 16시 까지를 1일로 잡고,
이날 만약에 진입 신호가 발생하지 않는다면 그냥 넘기고,
다시 수요일 16시 ~ 목요일 16시의 진입신호를 기다린다던가 하는 식입니다.
3-2.
위의 3-1 과 연관된 질문인데,
월요일 또는 화요일이나 수요일 등의 16시 시가를 기준으로
일주일 내내 사용하는 게 가능한지 궁금합니다.
예를들어 월요일 16시 시가 곱하기 1.1 을 매수진입가로 한다고 했을 때,
월요일 16시의 시가가 100 이라면 진입가는 110 이 됩니다.
그런데 월요일 16시 ~ 화요일 16시 까지는 110 이라는 진입 신호가 발생하지 않고,
목요일에 발생하면 목요일에 진입하는 식입니다.
또는 화요일이나 수요일 16시를 기준으로 삼을 수도 있습니다.
그래서 월요일 16시 시가를 기준으로 월~금 까지 쓸수도 있고,
화요일 16시 시가를 기준으로 화~금, 또는 화~ 다음주 수를 기준으로 삼을 수도 있습니다.
이런식으로 특정 날짜와 시간을 기준으로
며칠안에 진입신호가 발생하면 진입하는식이 가능한지 궁금합니다.
4-1.
위에 짜주신 식은 10분봉을 사용하여 16시를 기준으로 했는데,
이를 단순 일봉이나 주봉을 사용하면 어떻게 짜야되는지요?
예를들어 매일 일봉의 시가를 기준으로,
또는 매주 주봉의 시가를 기준으로 삼아,
그 시가 곱하기 1.1 을 매수진입가로 삼는 식은 어떻게 짜나요?
4-2.
일봉을 기준으로 20일 평균 ATR 의 2배 만큼 만큼 변동이 생겼을 때 진입하는 식은
어떻게 짜나요?
또는 주봉의 경우 20주 평균 ATR 의 2배 만큼 변동이 생겼을 때 진입하는 식은
어떻게 짜나요?
5-1.
갭변동이 발생했을 때의 손절은 어떻게 하나요?
예를들어 매수진입가 대비 1% 하락했을 때 즉시 시장가로 손절 주문을 내게 식을 짰는데,
갑자기 5% 갭 하락 했다면, 이를 무시하고 그냥 시장가로 손절 주문이 나가는 건가요?
만약 1% 손절로 설정해 놨는데,
1% 이상 떨어져도 그냥 시장가로 청산 주문 나가는 식이 궁금합니다.
5-2.
아래의 식은 제가 얼마전 부탁드려서 짜주신 식입니다.
(위에 보여드린 식 밑에 덧붙여 쓰고 있습니다.)
var : HH(0),LL(0);
if MarketPosition == 1 Then{
HH = highest(h,BarsSinceEntry);
if HH >= EntryPrice*1.10 and HH < EntryPrice*1.20 Then
ExitLong("bx1",AtStop,HH-(HH-EntryPrice)*0.5);
if HH >= EntryPrice*1.20 and HH < EntryPrice*1.30 Then
ExitLong("bx2",AtStop,HH-(HH-EntryPrice)*0.6);
if HH >= EntryPrice*1.30 and HH < EntryPrice*2.00 Then
ExitLong("bx3",AtStop,HH-(HH-EntryPrice)*0.7);
if HH >= EntryPrice*2.00 Then
ExitLong("bx4",AtStop,HH*0.9);
}
이 식의 경우도 5-1 의 경우와 같이 갭 하락이 있을 수 있습니다.
예를들어 위 식의 경우 진입이후 최고가가 1.2 ~ 1.3 에 있을때,
이 수익 분이 60% 빠지면 즉시 시장가로 청산하게 되어 있는데,
만약에 50% 가 빠진 후에 순차적으로 60% 가 빠지지 않고,
갭하락으로 바로 70% 가 빠져버리는 경우가 있습니다.
이럴 때에도 역시 그냥 바로 시장가로 청산 주문이 나가는 식이 궁금합니다.