커뮤니티
Lowest, BarsSinceExit, ExitPrice
2010-10-20 19:38:49
994
글번호 32963
안녕하세요?
1. 10분봉에서, 현재 시각은 10:03분이라고 합시다.
Lowest(C, 2) 라고 하면 9시 40분봉의 종가, 9시 50분봉의 종가, 그리고 현재가 중의 최소값을 리턴하는 것인가요?
2. 10분봉에서, 현재 시각은 10:03분이라고 합시다.
var1 = CountIf(C>O, 2); 현재까지 10개 연속 양봉이었다고 합시다. 그리고 10:03분 현재 시점의 가격도 10:00분 시점의 가격보다 크다고 합시다.
이 때, var1 = CountIf(C>O, 2); 라고 한다면 var1의 값은 2입니까 아니면 3입니까?
또, 만약 var1의 값이 2라면 현재봉과 직전봉 때문에 2인가요 아니면 현재봉 말고, 직전봉과 직직전봉(즉, 9시 40분봉과 9시 50분봉이 양봉이라서) 2인지요?
3. 10분봉에서 현재 시각은 10:03분이라고 합시다.
들어왔던 포지션이 Exitlong(..., Onclose, ...); 주문으로 9시 40분에 청산(즉, 9시 50분의 시초가에 청산) 되었다고 합시다.
이 경우, C[BarsSinceExit]와 Lowest(C, BarsSinceExit) 가 뜻하는 바는 정확히 무엇입니까?
4. 90개 매수진입된 상태에서, 조건 A가 발생함에 따라서 1차로 30개 청산, 그리고 1차에 청산된 가격을 기억했다가 그 청산가격 +1 포인트 이상이 되면 2차로 30개 청산, 또 그 청산가대비 +1 포인트 되면 나머지 30개를 청산하려고 합니다. (모든 주문은 Onclose 주문.)
이 때, Exitprice를 사용해도 되는 건지요? 즉,
if A then exitlong(30개); var1 = C;
if C >= var1 +1 then exitlong(30개); var2 = C;
if C >= var2 +1 then exitlong(30개);
와
if A then exitlong(30개); var1 = ExitPrice;
if C >= var1 + 1 then exitlong(30개); var2 = ExitPrice;
if C >= var2 + 1 then exitlong(30개);
다 되는거 맞겠지요? 그리고 첫 번째 식에 비해 두 번째 식은 제 의도대로, 실제로 청산된 가격대비 1포인트가 더 오르면 두 번째 청산명령이 나가고, 2번째로 청산된 실제가격대비 1포인트가 더 오르면 마지막 청산명령이 나가는 것 맞습니까?
예전에 어떤 식을 부탁드렸을 때, 제가 의도했던 것은 ExitPrice 였었는데, C를 써서 작성해주셔서 뭔가 제가 잘 모르는 뜻이 있으신가 해서요.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2010-10-21 16:53:39
안녕하세요
예스스탁입니다.
1.
모든 값은 완성된 봉에서만 가져와 사용됩니다.
그러므로 현재봉은 미완성이므로 계산에 포함되지 않습니다.
40분봉종가 50분봉 종가 중 작은 값입니다.
2.
2입니다.
계산은 완성된 봉까지입니다.
미완성봉은 계산에 포함안된다고 보시면 됩니다.
3.
C[BarsSinceExit(1)] 은 직전 청산신호가 난 봉의 종가입니다.
Lowest(C, BarsSinceExit(1)) 직전 청산이후에 종가 중 최저가입니다.
청산관련함수는 함수의 매개변수가 (1)이 최소입니다.
이용에 참고하시기 바랍니다.
4.
사용하시면 안됩니다.
ExitPrice(1)는 현재 청산중인 포지션이 아니라 가장 최근에 청산이 완료된 거래의 청산가격입니다.
또한 분할청산식은 그 경우의 수를 잘 파악해서 작성되어야 하며 진입의 피라미딩 여부에 따라 많이 다르게 됩니다.
매수한번에 100주 진입한 경우라면 아래와 같이 작성하시면 됩니다.
if MarketPosition == 1 Then{
if A조건 and CurrentContracts == MaxContracts then{
exitlong("bx1",onclose,def,"",30,1);
var1 = C;
}
if CurrentContracts == MaxContracts-30 and C >= var1 +1 then{
exitlong("bx2",onclose,def,"",30,1);
var2 = C;
}
if CurrentContracts == MaxContracts-60 and C >= var2 +1 then{
exitlong("bx3",onclose,def,"",40,1);
}
}
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : Lowest, BarsSinceExit, ExitPrice
> 안녕하세요?
1. 10분봉에서, 현재 시각은 10:03분이라고 합시다.
Lowest(C, 2) 라고 하면 9시 40분봉의 종가, 9시 50분봉의 종가, 그리고 현재가 중의 최소값을 리턴하는 것인가요?
2. 10분봉에서, 현재 시각은 10:03분이라고 합시다.
var1 = CountIf(C>O, 2); 현재까지 10개 연속 양봉이었다고 합시다. 그리고 10:03분 현재 시점의 가격도 10:00분 시점의 가격보다 크다고 합시다.
이 때, var1 = CountIf(C>O, 2); 라고 한다면 var1의 값은 2입니까 아니면 3입니까?
또, 만약 var1의 값이 2라면 현재봉과 직전봉 때문에 2인가요 아니면 현재봉 말고, 직전봉과 직직전봉(즉, 9시 40분봉과 9시 50분봉이 양봉이라서) 2인지요?
3. 10분봉에서 현재 시각은 10:03분이라고 합시다.
들어왔던 포지션이 Exitlong(..., Onclose, ...); 주문으로 9시 40분에 청산(즉, 9시 50분의 시초가에 청산) 되었다고 합시다.
이 경우, C[BarsSinceExit]와 Lowest(C, BarsSinceExit) 가 뜻하는 바는 정확히 무엇입니까?
4. 90개 매수진입된 상태에서, 조건 A가 발생함에 따라서 1차로 30개 청산, 그리고 1차에 청산된 가격을 기억했다가 그 청산가격 +1 포인트 이상이 되면 2차로 30개 청산, 또 그 청산가대비 +1 포인트 되면 나머지 30개를 청산하려고 합니다. (모든 주문은 Onclose 주문.)
이 때, Exitprice를 사용해도 되는 건지요? 즉,
if A then exitlong(30개); var1 = C;
if C >= var1 +1 then exitlong(30개); var2 = C;
if C >= var2 +1 then exitlong(30개);
와
if A then exitlong(30개); var1 = ExitPrice;
if C >= var1 + 1 then exitlong(30개); var2 = ExitPrice;
if C >= var2 + 1 then exitlong(30개);
다 되는거 맞겠지요? 그리고 첫 번째 식에 비해 두 번째 식은 제 의도대로, 실제로 청산된 가격대비 1포인트가 더 오르면 두 번째 청산명령이 나가고, 2번째로 청산된 실제가격대비 1포인트가 더 오르면 마지막 청산명령이 나가는 것 맞습니까?
예전에 어떤 식을 부탁드렸을 때, 제가 의도했던 것은 ExitPrice 였었는데, C를 써서 작성해주셔서 뭔가 제가 잘 모르는 뜻이 있으신가 해서요.
감사합니다.
다음글
이전글