예스스탁
예스스탁 답변
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포인트 손절
부탁드리겠습니다. ^^
> 예스스탁 님이 쓴 글입니다.
> 제목 : 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포인트 손절
부탁드리겠습니다. ^^
모의계좌로 자동주문을 체크하고 있습니다.
신호는 첨부사진처럼 잘 나오는데 진입이 안되고 있습니다.
무슨 이유일까요?
하단 오른쪽 자동매매는 깜빡깜빡 잘 돌아가고 있습니다.
혹시 제가 설정등을 놓치고 있는 부분이 있을까요?
-------------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : 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포인트 손절
부탁드리겠습니다. ^^