커뮤니티
문의드립니다.
2018-01-10 05:42:23
191
글번호 115604
추운날씨에 고생많으십니다.
아래와 같은 조건의 수식 좀 부탁드립니다.
1.진입조건(현재 5분봉차트에서 60분봉차트의 5일선,20일선,50일선의 정배열,역배열 조건활용)
매수진입 : 현재 5분봉 차트에서 10일선,30일선,60일선이 정배열이면 매수진입을 하는데
동시에 60분봉차트의 5일선,20일선,50일선이 정배열 이어야만 매수진입 가능함
(매도진입은 반대로) , 2계약 진입
2.청산/손절
청산 : 10틱수익에서 1계약 청산하고 남은 1계약은 손절가를 처음 손절가의 절반 위치로 이동하여 반절만 건후 10일선이 60일선을 데드크로스 하면 청산.
손절 : -30틱 손절
3.질문
한가지 질문 좀 드립니다.
모의계좌로 자동매매를 돌려봤는데요, 진입신호가 완성되었는데 어쩔땐 진입하고 어쩔땐 진입을 안하던데 이유가 뭔지 모르겠습니다. 체결은 물론 접수조차 안하는 경우가 있습니다.
시스템트레이딩 설정창에서는 수수료만 설정해주고 나머지는 기본설정값을 그대로 사용했습니다.
그리고 또 다른 경우엔 진입신호가 완성되었는데 접수창만 뜨고 체결이 되지 않고 남아있는데 이유가 무엇인지 모르겠습니다.
신호완성되면 접수 단계 없이 곧바로 체결되도록 할 수는 없는지요?
실투에서도 이렇게되면 큰 낭패라 명쾌한 답변 부탁드립니다.
감사합니다.
답변 1
예스스탁 예스스탁 답변
2018-01-10 15:16:47
안녕하세요
예스스탁입니다.
1
input : ntime1(60),L1(10),L2(30),L3(60),P1(5),P2(20),P3(50);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
Array : C1[100](0);
var1 = ma(c,L1);
var2 = ma(c,L2);
var3 = ma(c,L3);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 49
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P3] > 0 then{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 0 to P3-1{
if cnt < P1 then
sum1 = sum1+C1[cnt];
if cnt < P2 then
sum2 = sum2+C1[cnt];
if cnt < P3 then
sum3 = sum3+C1[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
mav3 = sum3/P3;
if mav1 > mav2 and mav2 > mav3 and
var1 > var2 and var2 > var3 Then
buy("b",OnClose,def,2);
if mav1 < mav2 and mav2 < mav3 and
var1 < var2 and var2 < var3 Then
sell("s",OnClose,def,2);
}
}
if MarketPosition == 1 Then{
if CurrentContracts == MaxContracts Then{
ExitLong("BP",AtLimit,EntryPrice+PriceScale*10,"",1,1);
exitlong("BL1",AtStop,EntryPrice-PriceScale*30);
}
Else{
exitlong("BL2",AtStop,EntryPrice-PriceScale*15);
if CrossDown(var1,var3) Then
exitlong("bx");
}
}
if MarketPosition == -1 Then{
if CurrentContracts == MaxContracts Then{
ExitShort("SP",AtLimit,EntryPrice-PriceScale*10,"",1,1);
ExitShort("SL1",AtStop,EntryPrice+PriceScale*30);
}
Else{
ExitShort("SL2",AtStop,EntryPrice+PriceScale*15);
if CrossUp(var1,var3) Then
ExitShort("sx");
}
}
2
시스템은 신호와 주문을 처리하는 것까지만 담당합니다.
주문이 발생해서 원장에서 거부가 발생하거나
접수이후에 미체결되는 것은 수식내부에서 알수가 없습니다.
주문 내실때 모읱투자라도 증거금등이 부족하게 되면
접수가 거부될수 있습니다.
접수 이후에 미체결은 따로 처리불가능한 부분입니다.
서정창에서 매매가격을 체결이 빨리 될수 있도록
현재가+-5호가로 지정해서 주고 적용하시기 바랍니다.
즐거운 하루되세요
> 웹피 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 추운날씨에 고생많으십니다.
아래와 같은 조건의 수식 좀 부탁드립니다.
1.진입조건(현재 5분봉차트에서 60분봉차트의 5일선,20일선,50일선의 정배열,역배열 조건활용)
매수진입 : 현재 5분봉 차트에서 10일선,30일선,60일선이 정배열이면 매수진입을 하는데
동시에 60분봉차트의 5일선,20일선,50일선이 정배열 이어야만 매수진입 가능함
(매도진입은 반대로) , 2계약 진입
2.청산/손절
청산 : 10틱수익에서 1계약 청산하고 남은 1계약은 손절가를 처음 손절가의 절반 위치로 이동하여 반절만 건후 10일선이 60일선을 데드크로스 하면 청산.
손절 : -30틱 손절
3.질문
한가지 질문 좀 드립니다.
모의계좌로 자동매매를 돌려봤는데요, 진입신호가 완성되었는데 어쩔땐 진입하고 어쩔땐 진입을 안하던데 이유가 뭔지 모르겠습니다. 체결은 물론 접수조차 안하는 경우가 있습니다.
시스템트레이딩 설정창에서는 수수료만 설정해주고 나머지는 기본설정값을 그대로 사용했습니다.
그리고 또 다른 경우엔 진입신호가 완성되었는데 접수창만 뜨고 체결이 되지 않고 남아있는데 이유가 무엇인지 모르겠습니다.
신호완성되면 접수 단계 없이 곧바로 체결되도록 할 수는 없는지요?
실투에서도 이렇게되면 큰 낭패라 명쾌한 답변 부탁드립니다.
감사합니다.
다음글