예스스탁
예스스탁 답변
2020-04-10 10:09:27
안녕하세요
예스스탁입니다.
input : 기준시간(101500);
var : cnt(0),entry(0);
var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0);
var : v1(0),v2(0),v3(0),v4(0),v5(0),v6(0),v7(0),v8(0),v9(0),v10(0);
var : h1(0),l1(0);
var : h2(0),l2(0);
var : h3(0),l3(0);
var : h4(0),l4(0);
var : h5(0),l5(0);
var : h6(0),l6(0);
Array : DO[20](0),DH[20](0),DL[20](0),DC[20](0);
if (sdate != sdate[1] and stime >= 기준시간) or
(sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) Then
{
DO[0] = O;
DH[0] = H;
DL[0] = L;
for cnt = 1 to 19
{
DO[cnt] = DO[cnt-1][1];
DH[cnt] = DH[cnt-1][1];
DL[cnt] = DL[cnt-1][1];
DC[cnt] = DC[cnt-1][1];
}
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
DC[0] = C;
if H > DH[0] Then
DH[0] = H;
if L < DL[0] Then
DL[0] = L;
if DO[12] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
sum4 = 0;
sum5 = 0;
sum6 = 0;
h1 = 0;
l1 = 0;
h2 = 0;
l2 = 0;
h3 = 0;
l3 = 0;
h4 = 0;
l4 = 0;
h5 = 0;
l5 = 0;
h6 = 0;
l6 = 0;
for cnt = 1 to 12
{
sum1 = sum1 + (DH[cnt]-DO[cnt]);
sum2 = sum2 + (DO[cnt]-DL[cnt]);
sum3 = sum3 + abs(DC[cnt+1]-DH[cnt]);
sum4 = sum4 + abs(DC[cnt+1]-DL[cnt]);
sum5 = sum5 + abs(DC[cnt+1]-DO[cnt]);
sum6 = sum6 + abs(DO[cnt]-DO[cnt+1]);
if h1 == 0 or (h1 > 0 and DH[cnt]-DO[cnt] > h1) then
h1 = DH[cnt]-DO[cnt];
if l1 == 0 or (l1 > 0 and DH[cnt]-DO[cnt] < l1) then
l1 = DH[cnt]-DO[cnt];
if h2 == 0 or (h2 > 0 and DO[cnt]-DL[cnt] > h2) then
h2 = DO[cnt]-DL[cnt];
if l2 == 0 or (l2 > 0 and DO[cnt]-DL[cnt] < l2) then
l2 = DO[cnt]-DL[cnt];
if h3 == 0 or (h3 > 0 and abs(DC[cnt+1]-DH[cnt]) > h3) then
h3 = abs(DC[cnt+1]-DH[cnt]);
if l3 == 0 or (l3 > 0 and abs(DC[cnt+1]-DH[cnt]) < l3) then
l3 = abs(DC[cnt+1]-DH[cnt]);
if h4 == 0 or (h4 > 0 and abs(DC[cnt+1]-DL[cnt]) > h4) then
h4 = abs(DC[cnt+1]-DL[cnt]);
if l4 == 0 or (l4 > 0 and abs(DC[cnt+1]-DL[cnt]) < l4) then
l4 = abs(DC[cnt+1]-DL[cnt]);
if h5 == 0 or (h5 > 0 and DC[cnt+1]-DO[cnt] > h5) then
h5 = DC[cnt+1]-DO[cnt];
if l5 == 0 or (l5 > 0 and DC[cnt+1]-DO[cnt] < l5) then
l5 = DC[cnt+1]-DO[cnt];
if h6 == 0 or (h6 > 0 and DO[cnt]-DO[cnt+1] > h5) then
h6 = DO[cnt]-DO[cnt+1];
if l6 == 0 or (l6 > 0 and DO[cnt]-DO[cnt+1] < l5) then
l6 = DO[cnt]-DO[cnt+1];
}
v6 = (sum1-h1-l1)/10;
v7 = (sum2-h2-l2)/10;
v8 = (sum3-h3-l3)/10;
v9 = (sum4-h4-l4)/10;
v10 = (sum5-h5-l5)/10;
value1 = NthMaxList(3,DO[0]+v6,DO[0]-v7,DC[1]+v8,DC[1]-v9,iff(DO[0]>DC[1],DC[1]+v10,DC[1]-v10));
var1 = DO[0]-DO[1];
var2 = sum6-h6-l6;
if entry < 1 and MarketPosition <= 0 and abs(var1) > abs(var2) Then
buy();
if MarketPosition == 1 and c > value1 Then
exitlong();
if entry < 1 and MarketPosition >= 0 and abs(var1) < abs(var2) Then
sell();
if MarketPosition == -1 and c < value1 Then
ExitShort();
}
if sdate != sdate[1] Then
SetStopEndofday(152000);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래의 전략에 대해 스크립트 작성 요청드립니다.
안녕하세요?
아래 전략에 대해 스크립트 작성 요청드립니다.
적용하고자 하는 상품 : 항셍선물1분봉
전략:
1) 매수진입 조건: ABS(기준값) > ABS(힘의 균형대)
2) 매수청산 조건: 현재가 > 상대값
3) 매도진입 조건: ABS(기준값) < ABS(힘의 균형대)
4) 매도청산 조건: 현재가 < 상대값
5) 기타: 당일청산(15시 20분)으로 하루 1번 진입
* 기준값: (당일의 시가-전일의 시가)
* 힘의균형대: 당일제외 과거 12영업일 동안 일별 (시가-시가[1]) 값의 최대값과 최소값을 제외한 10일의 평균값
*상대값: v1~v5까지 변수를 산출하여 내림차순 했을 경우 3번째 값
v1= 당일 시가에 v6을 더한 값
v2= 당일 시가에 v7을 뺀 값
v3= 전일 종가에 v8을 더한 값
v4= 전일 종가에 v9을 뺀 값
v5= 당일 시가 > 전일 종가이면 전일 종가에 v10을 더하고, 당일 시가 < 전일종가이면 전일 종가에 v10을 뺀 값
v6= 당일제외 과거 12영업일 동안 일별 (고가-시가) 값의 최대값과 최소값을 제외한 10일의 평균값
v7= 당일제외 과거 12영업일 동안 일별 (시가-저가) 값의 최대값과 최소값을 제외한 10일의 평균값
v8= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-고가) 값의 최대값과 최소값을 제외한 10일의 평균값
v9= 당일제외 과거 12영업일 동안 일별 abs(종가[1]-저가) 값의 최대값과 최소값을 제외한 10일의 평균값
v10= 당일제외 과거 12영업일 동안 일별 (종가[1]-시가) 값의 최대값과 최소값을 제외한 절대값의 10일 의 평균값
하루의 계산을
가. T+1장과 T장을 하루로 계산하여 시가를 18:15로 산정
나. T장과 T+1장을 하루로 계산하여 시가를 10:15로 산정
가, 나 각각 스크립트 작성을 요청드립니다. 언제나 감사드립니다.