커뮤니티

수식 문의

프로필 이미지
스카스카
2021-07-13 03:16:52
1443
글번호 150699
답변완료
1. 특정시간 진입 (예: 10시 1개 / 11시 1개) 분활진입 2. 손익절이 안났다면 장 종료시간에 강제 청산 (익월 05:00) - 가끔 장이 조기 종료되는날도 있는데 어찌처리 하나요? 궁금 이건 좀 어려운 식인데 혹시 할 수 있다면 알려주세요 ^^ (A)13시~14시 1분봉, (최고가/최저가)기준을 두고, 1시간이 지난 15시 이후부터 (A)기준 최고가 보다 1pt 높다면 매수 신호 발생 20포인트 익절 / 20포인트 손절 (A)기준 최저가 보다 1pt 낮으면 매도 신호 발생 20포인트 익절 / 20포인트 손절 부탁드리겠습니다. ^^
시스템
답변 4
프로필 이미지

예스스탁 예스스탁 답변

2021-07-13 10:19:37

안녕하세요 예스스탁입니다. 1 시장 조기종료는 수식에서 알수 없습니다. 수식은 지정한 시간에 당일청산하므로 조기종료되면 해당일 당일청산이 발생하지 못합니다. input : ntime(60),position(1),vol(1),Xtime(50000); var : S1(0),D1(0),TM(0),TF(0),ST(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; ST = sTime; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and LL > 0 Then { if CrossUp(C,HH+1) Then Buy(); if CrossDown(C,LL-1) Then Sell(); } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 > 스카스카 님이 쓴 글입니다. > 제목 : 수식 문의 > 1. 특정시간 진입 (예: 10시 1개 / 11시 1개) 분활진입 2. 손익절이 안났다면 장 종료시간에 강제 청산 (익월 05:00) - 가끔 장이 조기 종료되는날도 있는데 어찌처리 하나요? 궁금 이건 좀 어려운 식인데 혹시 할 수 있다면 알려주세요 ^^ (A)13시~14시 1분봉, (최고가/최저가)기준을 두고, 1시간이 지난 15시 이후부터 (A)기준 최고가 보다 1pt 높다면 매수 신호 발생 20포인트 익절 / 20포인트 손절 (A)기준 최저가 보다 1pt 낮으면 매도 신호 발생 20포인트 익절 / 20포인트 손절 부탁드리겠습니다. ^^
프로필 이미지

스카스카

2021-07-13 14:20:46

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 문의 > 안녕하세요 예스스탁입니다. 1 시장 조기종료는 수식에서 알수 없습니다. 수식은 지정한 시간에 당일청산하므로 조기종료되면 해당일 당일청산이 발생하지 못합니다. input : ntime(60),position(1),vol(1),Xtime(50000); var : S1(0),D1(0),TM(0),TF(0),ST(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; ST = sTime; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } ------------------------------------------------------------------------------------------------ 특정 진입시간이 없는것 같습니다. - 다시 정리해서 올려봅니다. ^^ 죄송합니다~ A. 1. 포지션 선택 매수 or 매도 (변수로 매수 매도 수정가능) 2. 진입시간 지정 (예: 13시) 3. 강제청산 설정 조건에 맞춤 4. 조건에 부합하지 않는다면 익일 05시 청산 B. 위 조건인데 2개가 각기 다른시간에 진입시 입니다. 위 2번. 진입시간 지정 각 2개 지정 (1개 13시, 1개 15시) 나머지 같음 ------------------------------------------------------------------------------------------------ 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and LL > 0 Then { if CrossUp(C,HH+1) Then Buy(); if CrossDown(C,LL-1) Then Sell(); } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 ------------------------------------------------------------------------------------------------ 한번만 진입하게 해주세요~ ^^ 감사합니다~~~ ------------------------------------------------------------------------------------------------ > 스카스카 님이 쓴 글입니다. > 제목 : 수식 문의 > 1. 특정시간 진입 (예: 10시 1개 / 11시 1개) 분활진입 2. 손익절이 안났다면 장 종료시간에 강제 청산 (익월 05:00) - 가끔 장이 조기 종료되는날도 있는데 어찌처리 하나요? 궁금 이건 좀 어려운 식인데 혹시 할 수 있다면 알려주세요 ^^ (A)13시~14시 1분봉, (최고가/최저가)기준을 두고, 1시간이 지난 15시 이후부터 (A)기준 최고가 보다 1pt 높다면 매수 신호 발생 20포인트 익절 / 20포인트 손절 (A)기준 최저가 보다 1pt 낮으면 매도 신호 발생 20포인트 익절 / 20포인트 손절 부탁드리겠습니다. ^^
프로필 이미지

예스스탁 예스스탁 답변

2021-07-13 17:17:40

안녕하세요 예스스탁입니다. 1 아래식들의 input변수 중 position을 매수면 1, 매도면 -1로 지정하시면 됩니다. B식에서 동일포지션을 추가진입할 경우에는 적용시 시스템 트레이딩설정창의 피라미딩탭에서 피라미딩을 설정하셔야 합니다. 파리미딩은 다른진입신호만 허용으로 설정하고 적용하시면 됩니다. 1-A input : position(1),ntime(120000),vol(1),xtime(50000); var : ST(0); if Bdate != Bdate[1] Then { ST = sTime; } if ST > 0 then { if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } 1-B input : position1(1),ntime1(130000),vol1(1); input : position2(1),ntime2(150000),vol2(1); input : xtime(50000); var : ST(0); if Bdate != Bdate[1] Then { ST = sTime; } if ST > 0 then { if (sdate != sdate[1] and stime >= ntime1) or (sdate == sdate[1] and stime >= ntime1 and stime[1] < ntime1) Then { if position1 == 1 Then Buy("b1",OnClose,DEf,vol1); if position1 == -1 Then Sell("s1",OnClose,DEf,vol1); } if (sdate != sdate[1] and stime >= ntime2) or (sdate == sdate[1] and stime >= ntime2 and stime[1] < ntime2) Then { if position2 == 1 Then Buy("b2",OnClose,DEf,vol2); if position2 == -1 Then Sell("s2",OnClose,DEf,vol2); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and CrossUp(C,HH+1) Then { Buy(); T = 4; } if T == 3 and LL > 0 and CrossDown(C,LL-1) Then { Sell(); T = 4; } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 > 스카스카 님이 쓴 글입니다. > 제목 : Re : Re : 수식 문의 > > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 문의 > 안녕하세요 예스스탁입니다. 1 시장 조기종료는 수식에서 알수 없습니다. 수식은 지정한 시간에 당일청산하므로 조기종료되면 해당일 당일청산이 발생하지 못합니다. input : ntime(60),position(1),vol(1),Xtime(50000); var : S1(0),D1(0),TM(0),TF(0),ST(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; ST = sTime; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } ------------------------------------------------------------------------------------------------ 특정 진입시간이 없는것 같습니다. - 다시 정리해서 올려봅니다. ^^ 죄송합니다~ A. 1. 포지션 선택 매수 or 매도 (변수로 매수 매도 수정가능) 2. 진입시간 지정 (예: 13시) 3. 강제청산 설정 조건에 맞춤 4. 조건에 부합하지 않는다면 익일 05시 청산 B. 위 조건인데 2개가 각기 다른시간에 진입시 입니다. 위 2번. 진입시간 지정 각 2개 지정 (1개 13시, 1개 15시) 나머지 같음 ------------------------------------------------------------------------------------------------ 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and LL > 0 Then { if CrossUp(C,HH+1) Then Buy(); if CrossDown(C,LL-1) Then Sell(); } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 ------------------------------------------------------------------------------------------------ 한번만 진입하게 해주세요~ ^^ 감사합니다~~~ ------------------------------------------------------------------------------------------------ > 스카스카 님이 쓴 글입니다. > 제목 : 수식 문의 > 1. 특정시간 진입 (예: 10시 1개 / 11시 1개) 분활진입 2. 손익절이 안났다면 장 종료시간에 강제 청산 (익월 05:00) - 가끔 장이 조기 종료되는날도 있는데 어찌처리 하나요? 궁금 이건 좀 어려운 식인데 혹시 할 수 있다면 알려주세요 ^^ (A)13시~14시 1분봉, (최고가/최저가)기준을 두고, 1시간이 지난 15시 이후부터 (A)기준 최고가 보다 1pt 높다면 매수 신호 발생 20포인트 익절 / 20포인트 손절 (A)기준 최저가 보다 1pt 낮으면 매도 신호 발생 20포인트 익절 / 20포인트 손절 부탁드리겠습니다. ^^
프로필 이미지

스카스카

2021-07-13 23:46:19

모의계좌로 자동주문을 체크하고 있습니다. 신호는 첨부사진처럼 잘 나오는데 진입이 안되고 있습니다. 무슨 이유일까요? 하단 오른쪽 자동매매는 깜빡깜빡 잘 돌아가고 있습니다. 혹시 제가 설정등을 놓치고 있는 부분이 있을까요? ------------------------------------------------------------------------- > 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : Re : 수식 문의 > 안녕하세요 예스스탁입니다. 1 아래식들의 input변수 중 position을 매수면 1, 매도면 -1로 지정하시면 됩니다. B식에서 동일포지션을 추가진입할 경우에는 적용시 시스템 트레이딩설정창의 피라미딩탭에서 피라미딩을 설정하셔야 합니다. 파리미딩은 다른진입신호만 허용으로 설정하고 적용하시면 됩니다. 1-A input : position(1),ntime(120000),vol(1),xtime(50000); var : ST(0); if Bdate != Bdate[1] Then { ST = sTime; } if ST > 0 then { if (sdate != sdate[1] and stime >= ntime) or (sdate == sdate[1] and stime >= ntime and stime[1] < ntime) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } 1-B input : position1(1),ntime1(130000),vol1(1); input : position2(1),ntime2(150000),vol2(1); input : xtime(50000); var : ST(0); if Bdate != Bdate[1] Then { ST = sTime; } if ST > 0 then { if (sdate != sdate[1] and stime >= ntime1) or (sdate == sdate[1] and stime >= ntime1 and stime[1] < ntime1) Then { if position1 == 1 Then Buy("b1",OnClose,DEf,vol1); if position1 == -1 Then Sell("s1",OnClose,DEf,vol1); } if (sdate != sdate[1] and stime >= ntime2) or (sdate == sdate[1] and stime >= ntime2 and stime[1] < ntime2) Then { if position2 == 1 Then Buy("b2",OnClose,DEf,vol2); if position2 == -1 Then Sell("s2",OnClose,DEf,vol2); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and CrossUp(C,HH+1) Then { Buy(); T = 4; } if T == 3 and LL > 0 and CrossDown(C,LL-1) Then { Sell(); T = 4; } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 > 스카스카 님이 쓴 글입니다. > 제목 : Re : Re : 수식 문의 > > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 문의 > 안녕하세요 예스스탁입니다. 1 시장 조기종료는 수식에서 알수 없습니다. 수식은 지정한 시간에 당일청산하므로 조기종료되면 해당일 당일청산이 발생하지 못합니다. input : ntime(60),position(1),vol(1),Xtime(50000); var : S1(0),D1(0),TM(0),TF(0),ST(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; ST = sTime; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { if position == 1 Then Buy("b",OnClose,DEf,vol); if position == -1 Then Sell("s",OnClose,DEf,vol); } } IF Xtime > ST Then SetStopEndofday(Xtime); Else { if sDate != sDate[1] Then SetStopEndofday(Xtime); } if (sdate != sdate[1] and stime >= ST) or (sdate == sdate[1] and stime >= ST and stime[1] < ST) Then { IF Xtime <= ST Then { SetStopEndofday(0); } } ------------------------------------------------------------------------------------------------ 특정 진입시간이 없는것 같습니다. - 다시 정리해서 올려봅니다. ^^ 죄송합니다~ A. 1. 포지션 선택 매수 or 매도 (변수로 매수 매도 수정가능) 2. 진입시간 지정 (예: 13시) 3. 강제청산 설정 조건에 맞춤 4. 조건에 부합하지 않는다면 익일 05시 청산 B. 위 조건인데 2개가 각기 다른시간에 진입시 입니다. 위 2번. 진입시간 지정 각 2개 지정 (1개 13시, 1개 15시) 나머지 같음 ------------------------------------------------------------------------------------------------ 2 input : StartTime(130000),EndTime(140000),ETime(150000); var : Tcond(false),T(0),HH(0),LL(0); if Bdate != Bdate[1] Then T = 0; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { T = 1; HH = H; LL = L; } if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then { T = 2; } if (sdate != sdate[1] and stime >= ETime) or (sdate == sdate[1] and stime >= ETime and stime[1] < ETime) Then { T = 3; } if T == 1 Then { if H > HH Then HH = H; if L < LL Then LL = L; } if T == 3 and HH > 0 and LL > 0 Then { if CrossUp(C,HH+1) Then Buy(); if CrossDown(C,LL-1) Then Sell(); } SetStopProfittarget(20,PointStop); SetStopLoss(20,PointStop); 즐거운 하루되세요 ------------------------------------------------------------------------------------------------ 한번만 진입하게 해주세요~ ^^ 감사합니다~~~ ------------------------------------------------------------------------------------------------ > 스카스카 님이 쓴 글입니다. > 제목 : 수식 문의 > 1. 특정시간 진입 (예: 10시 1개 / 11시 1개) 분활진입 2. 손익절이 안났다면 장 종료시간에 강제 청산 (익월 05:00) - 가끔 장이 조기 종료되는날도 있는데 어찌처리 하나요? 궁금 이건 좀 어려운 식인데 혹시 할 수 있다면 알려주세요 ^^ (A)13시~14시 1분봉, (최고가/최저가)기준을 두고, 1시간이 지난 15시 이후부터 (A)기준 최고가 보다 1pt 높다면 매수 신호 발생 20포인트 익절 / 20포인트 손절 (A)기준 최저가 보다 1pt 낮으면 매도 신호 발생 20포인트 익절 / 20포인트 손절 부탁드리겠습니다. ^^