첨부 이미지
그림1
별첨파일은 아래식의 결과물입니다.
1번 차트 코스피200 선물 진입변수 30 10 0
2번 차트 코스피200 미니선물 진입변수 30 10 0
3번 차트 코스피200 미니선물 진입변수 64 10 0
1번과 2번은 동일한 변수를 적용하였습니다.
그런데 어제 9월26일 2번 차트 미니선물에서 진입이 발생하지 않았습니다.
그래서 3번 차트에서 진입변수를 30 에서 63 까지 늘려보았는데 64부터 진입이 발생하였습니다.
제 생각에는 미니선물에서 30틱은 0.6포인트라 고점과 저점 갱신이 쉽게 바뀌므로
진입을 위한 b1값을 잡는데 혼선이 발생하여 나타나는 현상이라고 생각합니다.
(1번 차트 선물 30틱은 1.5 포인트, 3번 차트 미니선물 64틱은 1.28 포인트)
평소에는 30 10 0 으로 미니선물이 선물보다 진입을 더 많이 해왔습니다.
이렇게 진입을 하지 않는 경우는 금년 들어 처음입니다.
진입신호가 아예 안나온다는 것은 논리적으로 수식에 오류가 있다고 생각입니다.
수식을 살펴주셨으면 합니다.
항상 고맙습니다.
********************************************************************************
input : 최대(99999),최소(0),거래횟수(10);
input : b1(30),진입눌림1(10),진입돌파1(0);
input : b2(40),진입눌림2(10),진입돌파2(0);
input : 진입시간(084500),진입제한시간(151500);
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then{
T1 = TotalTrades;
E1 = 0;
LL = L;
}
if stime >= 진입시간 then{
if L < LL Then
LL = L;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림1 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파1 and Tcond == true and 최대 >= C and C >= 최소 Then{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
LL = L;
}
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림2 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파2 and Tcond == true and 최대 >= C and C >= 최소 Then{
buy("b2");
}
}
}
답변 1
예스스탁
예스스탁 답변
2024-09-27 15:04:03
안녕하세요
예스스탁입니다.
미니선물 60틱차트에서 26일 초반 3개봉을 보시면
첫봉에서 이미 당일저가대비 63틱까지 종가가 상승한 상태로 b1조건을 충족하고
이후 진입눌림1까지 하락은 했지만 3번째 봉에서 그날의 당일저가가 발생하면서
b1이상 상승봉의 최저가 보다 작은봉이 발생하면서 조건이 무효화 되었습니다.
이후 다음봉 4번째 봉부터는 진입시간이후 최저가(LL)대비 종가가 모두 70틱이상 높습니다.
if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then
{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
이부분을 해결하시려면 위 수식과 같이 종가가 최저가+b1틱을 돌파로 작성이 되어 있는데
단순히 최저가보다 일정틱이상 크면 조건이 충족되게 하셔야 합니다.
if E1 == 0 and C >= LL+PriceScale*B1 Then
{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
즐거운 하루되세요
> 목마와숙녀 님이 쓴 글입니다.
> 제목 : 문의
> 별첨파일은 아래식의 결과물입니다.
1번 차트 코스피200 선물 진입변수 30 10 0
2번 차트 코스피200 미니선물 진입변수 30 10 0
3번 차트 코스피200 미니선물 진입변수 64 10 0
1번과 2번은 동일한 변수를 적용하였습니다.
그런데 어제 9월26일 2번 차트 미니선물에서 진입이 발생하지 않았습니다.
그래서 3번 차트에서 진입변수를 30 에서 63 까지 늘려보았는데 64부터 진입이 발생하였습니다.
제 생각에는 미니선물에서 30틱은 0.6포인트라 고점과 저점 갱신이 쉽게 바뀌므로
진입을 위한 b1값을 잡는데 혼선이 발생하여 나타나는 현상이라고 생각합니다.
(1번 차트 선물 30틱은 1.5 포인트, 3번 차트 미니선물 64틱은 1.28 포인트)
평소에는 30 10 0 으로 미니선물이 선물보다 진입을 더 많이 해왔습니다.
이렇게 진입을 하지 않는 경우는 금년 들어 처음입니다.
진입신호가 아예 안나온다는 것은 논리적으로 수식에 오류가 있다고 생각입니다.
수식을 살펴주셨으면 합니다.
항상 고맙습니다.
********************************************************************************
input : 최대(99999),최소(0),거래횟수(10);
input : b1(30),진입눌림1(10),진입돌파1(0);
input : b2(40),진입눌림2(10),진입돌파2(0);
input : 진입시간(084500),진입제한시간(151500);
var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then
Tcond = true;
if (sdate != sdate[1] and stime >= 진입제한시간) or
(sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then
Tcond = false;
if (sdate != sdate[1] and stime >= 진입시간) or
(sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then{
T1 = TotalTrades;
E1 = 0;
LL = L;
}
if stime >= 진입시간 then{
if L < LL Then
LL = L;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if MarketPosition == 0 and entry == 0 Then{
if E1 == 0 and C >= LL+PriceScale*B1 and C[1] < LL+PriceScale*B1 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림1 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파1 and Tcond == true and 최대 >= C and C >= 최소 Then{
buy("b1");
}
}
if TotalTrades > TotalTrades[1] Then{
E1 = 0;
LL = L;
}
if L < LL Then
LL = L;
if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{
if E1 == 0 and C >= LL+PriceScale*B2 and C[1] < LL+PriceScale*B2 Then{
E1 = 1;
H1 = H;
i1 = index;
V1 = LL; //시작점 종가
}
if E1 == 1 and index > i1 then{
if H > H1 Then
H1 = H;
#저가가 시작봉종가보다 클때만 눌림체크
if L >= V1 and L <= H1-PriceScale*진입눌림2 Then{
E1 = 2;
i1 = index;
S1 = H1;
}
}
//시작점 종가보다 낮은 가격이 발생하면 초기화
if E1 >= 1 and L < V1 Then{
E1 = 0;
LL = L;
}
if E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파2 and Tcond == true and 최대 >= C and C >= 최소 Then{
buy("b2");
}
}
}