항상 수고가 많으십니다.
재질문드립니다 -----------------------------------------------------------------------
87124 에서 제가 원하는 결과가 나오지 않아서 다시 질문드립니다.
이번에는 이렇게 해주시면 고맙겠습니다.
선물 가격은 8:45 부터 들어오지만 개인의 거래소 가격은 9:00 부터 들어오므로
9:00시 부터 11:00 까지에서 개인의 최고매수금액 - 최고매수금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 2번째 최고매수금액- 2번째최고매수금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 최고매도금액 - 최고매도금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 2번째 최고매도금액 - 2번째최고매도금액일째 선물현재가
여기서 주의 할 점은 최고매도금액 < 2번째 최고매도금액 이며
최고매수금액 > 2번째최고 매수금액 이라는 점입니다.
제가 말씀드리는 2번째최고매도금액이라는 말과 2번째최고매수금액이라는 의미가
제가 의도하는 정확한 의미전달하기 위해서 수치로 예를 들어 보겠습니다.
100 -> 200 -> 300 -> 200 -> 300 -> 500 -> 350 -> 300 -> 400 -> 300
^ ^
최고매수금액 2번째최고매수금액
-100 -> -200 -> -300 -> -200 -> -300 -> -500 -> -350 -> -300 -> -400 -> -300
^ ^
최고매도금액 2번째최고매도금액
위와 같은 상황을 확인해야하니 신호는 11시 이후에 나오겠습니다.
즉,
input : 당일최대진입횟수(1);
var : T1(0), count(0);
if Data1(DayIndex == 0) Then
{
변수 초기화 ...
T1 = TotalTrades;
}
if Data1(DayIndex > 0 and stime < 152000) Then
{
~~~
~~~
//------ 진입횟수제한식 ----------------------------------------------------
if MarketPosition == 0 Then
{
count = TotalTrades - T1;
}
Else
{
count = TotalTrades - T1 + 1;
}
//--------------------------------------------------------------------------
if stime >= 090000 and stime <= 110000 then
{
상기 조건을 확인하는 전략식
}
if count < 당일최대진입횟수 Then
{
if stime > 110000 then
{
if 최고매도금액일때 선물현재가 > 2번째최고매도금액일때 선물현재가 then
{
buy("b1")
}
if 최고매수금액일때 선물현재가 < 2번째최고매수금액일때 선물현재가 then
{
sell("b1")
}
}
} // end of count < 당일최대진입횟수
} // end of 전략식
죄송하지만, 위 서식대로 수식을 부탁드리며,
상기 서식이 잘못되었다면 임의로 하셔도 괜찮습니다.
또한, 각 수식에 대한 주석도 첨부하여 주셨으면 고맙겠습니다.
------------------------------------------------------------------------------------
감사합니다.
항상 좋은 일만 생기시길를 ~~
답변 1
예스스탁
예스스탁 답변
2024-05-20 14:15:15
안녕하세요
예스스탁입니다.
input : 당일최대진입횟수(1);
var : T1(0), count(0);
var : b1(0,Data2),b2(0,Data2),bc1(0,Data2),bc2(0,Data2);
var : s1(0,Data2),s2(0,Data2),sc1(0,Data2),sc2(0,Data2);
if Data1(DayIndex == 0) Then
{
b1 = 0;
b2 = 0;
bc1 = 0;
bc2 = 0;
s1 = 0;
s2 = 0;
sc1 = 0;
sc2 = 0;
T1 = TotalTrades;
}
if Data1(DayIndex > 0 and stime < 152000) Then
{
~~~
~~~
//------ 진입횟수제한식 ----------------------------------------------------
if MarketPosition == 0 Then
{
count = TotalTrades - T1;
}
Else
{
count = TotalTrades - T1 + 1;
}
//--------------------------------------------------------------------------
//9시~11시 사이
if stime >= 090000 and stime <= 110000 then
{
#data2(c)가 양수일때
if Data2(c) > 0 Then
{
#b1이 0이거나(첫발생)
#b1에 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b1보다 크면
if b1 == 0 or (b1 > 0 and Data2(c) > b1) Then
{
#b1에 Data2(c)저장
b1 = Data2(c);
#bc1에 Data1(c)저장
bc1 = Data1(c);
#새로운 Data2(c)의 최고가 발생했으므로 b2와 bc2에 b1과 bc1의 직전값을 저장해
#두번째 큰값으로 사용
#b2에 b1값을 이동
b2 = b1[1];
#bc2에 bc1의 값을
bc2 = bc1[1];
}
Else #최고값 갱신이 아닐때
{
#두번째 큰값이 갱신될 때
#b2가 0이거나(첫발생)
#b2가 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b2보다 크면
if b2 == 0 or (b2 > 0 and Data2(c) > b2) Then
{
#b2에 Data2(c)저장
b2 = Data2(c);
#bc2에 Data1(c)저장
bc2 = Data1(c);
}
}
}
#data2(c)가 음수일때
if Data2(c) < 0 Then
{
#b1이 0이거나(첫발생)
#b1에 0보다 큰값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 b1보다 크면
if s1 == 0 or (s1 < 0 and Data2(c) < s1) Then
{
#s1에 Data2(c)저장
s1 = Data2(c);
#sc1에 Data1(c)저장
sc1 = Data1(c);
#새로운 Data2(c)의 최저가 발생했으므로 s2와 sc2에 s1과 sc1의 직전값을 저장해
#두번째 작은값으로 사용
#s2에 s1값을 이동
s2 = s1[1];
#bc2에 bc1의 값을
sc2 = sc1[1];
}
Else #최저값 갱신이 아닐때
{
#두번째 작은값이 갱신될 때
#s2가 0이거나(첫발생)
#s2가 0보다 작은값이 저장되어 있고(당일 이미 값이 한번이상 저장된상태) Data2(c)가 s2보다 작으면
if s2 == 0 or (s2 < 0 and Data2(c) < s2) Then
{
#s2에 Data2(c)저장
s2 = Data2(c);
#sc2에 Data1(c)저장
sc2 = Data1(c);
}
}
}
}
if count < 당일최대진입횟수 Then
{
if stime > 110000 then
{
if b1 > 0 and b2 > 0 and bc1 > bc2 then
{
buy("b1");
}
if s1 < 0 and s2 < 0 and sc1 < sc2 then
{
sell("s1");
}
}
} // end of count < 당일최대진입횟수
} // end of 전략식
즐거운 하루되세요
> 샐리짱 님이 쓴 글입니다.
> 제목 : 87124 관련 재질문드립니다
> 항상 수고가 많으십니다.
재질문드립니다 -----------------------------------------------------------------------
87124 에서 제가 원하는 결과가 나오지 않아서 다시 질문드립니다.
이번에는 이렇게 해주시면 고맙겠습니다.
선물 가격은 8:45 부터 들어오지만 개인의 거래소 가격은 9:00 부터 들어오므로
9:00시 부터 11:00 까지에서 개인의 최고매수금액 - 최고매수금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 2번째 최고매수금액- 2번째최고매수금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 최고매도금액 - 최고매도금액일때 선물현재가
9:00시 부터 11:00 까지에서 개인의 2번째 최고매도금액 - 2번째최고매도금액일째 선물현재가
여기서 주의 할 점은 최고매도금액 < 2번째 최고매도금액 이며
최고매수금액 > 2번째최고 매수금액 이라는 점입니다.
제가 말씀드리는 2번째최고매도금액이라는 말과 2번째최고매수금액이라는 의미가
제가 의도하는 정확한 의미전달하기 위해서 수치로 예를 들어 보겠습니다.
100 -> 200 -> 300 -> 200 -> 300 -> 500 -> 350 -> 300 -> 400 -> 300
^ ^
최고매수금액 2번째최고매수금액
-100 -> -200 -> -300 -> -200 -> -300 -> -500 -> -350 -> -300 -> -400 -> -300
^ ^
최고매도금액 2번째최고매도금액
위와 같은 상황을 확인해야하니 신호는 11시 이후에 나오겠습니다.
즉,
input : 당일최대진입횟수(1);
var : T1(0), count(0);
if Data1(DayIndex == 0) Then
{
변수 초기화 ...
T1 = TotalTrades;
}
if Data1(DayIndex > 0 and stime < 152000) Then
{
~~~
~~~
//------ 진입횟수제한식 ----------------------------------------------------
if MarketPosition == 0 Then
{
count = TotalTrades - T1;
}
Else
{
count = TotalTrades - T1 + 1;
}
//--------------------------------------------------------------------------
if stime >= 090000 and stime <= 110000 then
{
상기 조건을 확인하는 전략식
}
if count < 당일최대진입횟수 Then
{
if stime > 110000 then
{
if 최고매도금액일때 선물현재가 > 2번째최고매도금액일때 선물현재가 then
{
buy("b1")
}
if 최고매수금액일때 선물현재가 < 2번째최고매수금액일때 선물현재가 then
{
sell("b1")
}
}
} // end of count < 당일최대진입횟수
} // end of 전략식
죄송하지만, 위 서식대로 수식을 부탁드리며,
상기 서식이 잘못되었다면 임의로 하셔도 괜찮습니다.
또한, 각 수식에 대한 주석도 첨부하여 주셨으면 고맙겠습니다.
------------------------------------------------------------------------------------
감사합니다.
항상 좋은 일만 생기시길를 ~~