커뮤니티
문의 드립니다
2016-04-28 14:00:33
123
글번호 97552
아래 식은 이평으로 만들어주신것을 매수와 매도진입을 가공하였습니다
그런데 진입이 되다 말다 하고요 진입을 하였다 하더라고 어떤경우에는0.20 에청산되고0.05에도 청산되고 있습니다
매수식과 매도식을 변경하면서 이상해진것같습니다
어디가 잘못된건지 확인 부탁드립니다
감사합니다
input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2);
var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0);
var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false);
NP = NetProfit;
if sTime == 진입시작시간 or (stime == 진입시작시간 and stime[1] < 진입시작시간) Then{
Tcond = true;
NP1 = NP[1];
Xcond = false;
}
if sTime == 진입종료시간 or (stime == 진입종료시간 and stime[1] < 진입종료시간) Then{
Tcond = False;
}
dayPL = NP-NP1;
if TotalTrades > TotalTrades[1] and
(IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then
Xcond = true;
if Tcond == true and Xcond == false Then{
count= 0;
For cnt =0 to aa Begin
if h == h[cnt] Then
count = count + 1;
count1 = count + h;
end
var1 = (count);
HH = var1;
HV = H;
for cnt = 0 to P-1{
if var1[cnt] > HH Then{
HH = var1[cnt];
HV = H[cnt];
}
}
}
countl= 0;
For cntl =0 to aal Begin
if l == l[cntl] Then
countl = countl + 1;
countl1 = countl + l;
end
var2 = (countl);
HHl = var2;
HVl = l;
for cntl = 0 to Pl-1{
if var2[cntl] > HHl Then{
HHl = var2[cntl];
HVl = l[cntl];
}
}
var3 = ma(h,Period1);
var4 = ma(l,Period1);
if crossup(var4,hv) Then{
buy();
}
if CrossDown(var3,hvl) Then{
sell();
}
if MarketPosition == 1 Then{
ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl);
}
if MarketPosition == -1 Then{
ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl);
}
SetStopProfittarget(목표수익,PointStop);
SetStopEndofday(당일청산시간);
답변 1
예스스탁 예스스탁 답변
2016-05-02 17:24:16
안녕하세요
예스스탁입니다.
리포트의 손익에는 수수료와 슬리피지가 포함됩니다.
시스템을 적용시 시스템트레이딩설정창의 비용/수량 탭에서
지정된 수수료와 슬리피지가 손익에 추가되므로
해당 설정 원하지 않으시면 0으로 셋팅하시기 바랍니다.
또한 손익이 지정한 값보다 큰것은 봉의 시가가 지정한 수익을
넘어서 형성된 경우이고
해당식이 반대진입이 발생하면 기존포지션 청산하고
진입하므로 반대신호로 청산된것은 지정한 목표수익과 다릅니다.
진입후 목표수익으로 청산만 하신다면
진입식에 MarketPosition == 0 조건을 추가하시면 됩니다.
당일 수익이면 청산하고 거래종료하는 부분이
진입식에 없어 추가했습니다.
input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2);
var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0);
var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false);
NP = NetProfit;
if sTime == 진입시작시간 or (stime == 진입시작시간 and stime[1] < 진입시작시간) Then{
Tcond = true;
NP1 = NP[1];
Xcond = false;
}
if sTime == 진입종료시간 or (stime == 진입종료시간 and stime[1] < 진입종료시간) Then{
Tcond = False;
}
dayPL = NP-NP1;
if TotalTrades > TotalTrades[1] and
(IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then
Xcond = true;
if Tcond == true and Xcond == false Then{
count= 0;
For cnt =0 to aa Begin
if h == h[cnt] Then
count = count + 1;
count1 = count + h;
end
var1 = (count);
HH = var1;
HV = H;
for cnt = 0 to P-1{
if var1[cnt] > HH Then{
HH = var1[cnt];
HV = H[cnt];
}
}
}
countl= 0;
For cntl =0 to aal Begin
if l == l[cntl] Then
countl = countl + 1;
countl1 = countl + l;
end
var2 = (countl);
HHl = var2;
HVl = l;
for cntl = 0 to Pl-1{
if var2[cntl] > HHl Then{
HHl = var2[cntl];
HVl = l[cntl];
}
}
var3 = ma(h,Period1);
var4 = ma(l,Period1);
if crossup(var4,hv) and Xcond == false Then{
buy();
}
if CrossDown(var3,hvl) and Xcond == false Then{
sell();
}
if MarketPosition == 1 Then{
ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl);
}
if MarketPosition == -1 Then{
ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl);
}
SetStopProfittarget(목표수익,PointStop);
SetStopEndofday(당일청산시간);
즐거운 하루되세요
> 파파리리 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 아래 식은 이평으로 만들어주신것을 매수와 매도진입을 가공하였습니다
그런데 진입이 되다 말다 하고요 진입을 하였다 하더라고 어떤경우에는0.20 에청산되고0.05에도 청산되고 있습니다
매수식과 매도식을 변경하면서 이상해진것같습니다
어디가 잘못된건지 확인 부탁드립니다
감사합니다
input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2);
var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0);
var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false);
NP = NetProfit;
if sTime == 진입시작시간 or (stime == 진입시작시간 and stime[1] < 진입시작시간) Then{
Tcond = true;
NP1 = NP[1];
Xcond = false;
}
if sTime == 진입종료시간 or (stime == 진입종료시간 and stime[1] < 진입종료시간) Then{
Tcond = False;
}
dayPL = NP-NP1;
if TotalTrades > TotalTrades[1] and
(IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then
Xcond = true;
if Tcond == true and Xcond == false Then{
count= 0;
For cnt =0 to aa Begin
if h == h[cnt] Then
count = count + 1;
count1 = count + h;
end
var1 = (count);
HH = var1;
HV = H;
for cnt = 0 to P-1{
if var1[cnt] > HH Then{
HH = var1[cnt];
HV = H[cnt];
}
}
}
countl= 0;
For cntl =0 to aal Begin
if l == l[cntl] Then
countl = countl + 1;
countl1 = countl + l;
end
var2 = (countl);
HHl = var2;
HVl = l;
for cntl = 0 to Pl-1{
if var2[cntl] > HHl Then{
HHl = var2[cntl];
HVl = l[cntl];
}
}
var3 = ma(h,Period1);
var4 = ma(l,Period1);
if crossup(var4,hv) Then{
buy();
}
if CrossDown(var3,hvl) Then{
sell();
}
if MarketPosition == 1 Then{
ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl);
}
if MarketPosition == -1 Then{
ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl);
}
SetStopProfittarget(목표수익,PointStop);
SetStopEndofday(당일청산시간);
다음글