커뮤니티
수식문의 드립니다.
2016-02-25 15:29:32
240
글번호 95799
수고하십니다.
도움을 부탁드립니다.
매수조건 키움검색식으로 해서 파일 올렸습니다.
일봉과 분봉이 섞여서 표현을 할수있나 모르겠습니다.
전에도 이것때문에 포기했었는데 도움 부탁드리겠습니다.
파일에서 매수조건 R은 1분 이평 60선에서 간격 20 으로 16개 까지하면 360선까지 해서
그물망으로 최저선과 최고선의 차이가 1.2% 이내입니다.
매도조건
-2% 수익 전량손절
3% 수익 절반매도
5% 수익 전량매도
당일 14시 40분 전량청산입니다.
완성봉이 아닌 진행봉으로 하고 싶습니다.
항상 수고해주셔서 감사합니다.
- 1. 매수조건.xls (0.00 MB)
답변 1
예스스탁 예스스탁 답변
2016-02-26 13:51:53
안녕하세요
예스스탁입니다.
분봉이하의 차트에는 내부적으로 첫봉의 날짜+약 99일치의
일봉데이터가 제공됩니다.
수식에서 120일 이평이 필요하므로
차트를 최대한 많이 조회하신 후에 적용하셔야 합니다.
전략실행 차트는 최대 1만개 봉까지 조회가능합니다.
1만개로 설정후 적용하시면 됩니다.
input : Period1(2),Period2(8);//일봉 거래대금 이평 변수
input : maP1(5),maP2(20),maP3(60),maP4(120);//일봉종가이평변수
input : 그물망기간(60),간격(20),갯수(16);
input : P1(20),P2(60);
var : cnt(0), sum1(0),sum2(0),sum3(0),sum4(0);
var : sum11(0),sum12(0),sum13(0),mav11(0),mav12(0),mav13(0);
var : mav1(0),mav2(0),mav3(0),mav4(0);
var : cum1(0),cum2(0),avgv1(0),avgv2(0);
var : ma1(0),ma2(0),HH(0),LL(0),entry(0),TT(0),T1(0);
Array : MM[20](0),그물망[50](0);
TT = TotalTrades;
#일봉 거래대금 저장(최대 최근 20일)
if date != date[1] Then{
MM[0] = 0;
for cnt = 1 to 19{
MM[cnt] = MM[cnt-1][1];
}
}
MM[0] = MM[0] + M;
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
#일봉 거래대금 이평 계산
if MM[Period2] > 0 then{
cum1 = 0;
cum2 = 0;
for cnt = 1 to Period2{
if cnt <= Period1 Then
cum1 = cum1 + MM[cnt];
if cnt <= Period2 Then
cum2 = cum2 + MM[cnt];
}
avgv1 = cum1/Period1;
avgv2 = cum2/Period2;
}
#일봉 5,20,60,120 이평 계산
sum1 = 0;
sum2 = 0;
sum3 = 0;
sum4 = 0;
sum11 = 0;
sum12 = 0;
sum13 = 0;
for cnt = 0 to maP4{
if cnt < maP1 Then{
sum1 = sum1+DayClose(cnt);
sum11 = sum11+DayClose(cnt+1);
sum12 = sum12+DayClose(cnt+2);
sum13 = sum13+DayClose(cnt+3);
}
if cnt < maP2 Then
sum2 = sum2+DayClose(cnt);
if cnt < maP3 Then
sum3 = sum3+DayClose(cnt);
if cnt < maP4 Then
sum4 = sum4+DayClose(cnt);
}
mav1 = sum1/maP1;
mav11 = sum11/maP1;//1일전기준 5이평
mav12 = sum12/maP1;//2일전기준 5이평
mav13 = sum13/maP1;//3일전기준 5이평
mav2 = sum1/maP2;
mav3 = sum1/maP3;
mav4 = sum1/maP4;
#최근 19일 이내에 전일종가대비 7.5%이상 상승한경우가 있으면 true
Condition1 = false;
for cnt = 0 to 19{
if DayClose(cnt) >= DayClose(cnt)*1.075 Then
Condition1 = true;
}
#분봉이평
ma1 = ma(C,P1);
ma2 = ma(c,P2);
#분봉 그물망
for cnt = 0 to 갯수-1{
그물망[cnt] = ma(C,그물망기간+간격*cnt);
}
#그물망 최고 최저
HH = 그물망[0];
LL = 그물망[0];
for cnt = 0 to 갯수-1{
if 그물망[cnt] > HH and 그물망[cnt] > 0 Then
HH = 그물망[cnt];
if 그물망[cnt] < LL and 그물망[cnt] > 0 Then
LL = 그물망[cnt];
}
var : Acond(false),Icond(false),Ccond(false),Hcond(false),Ncond(false);
var : Ocond(false),Pcond(false),Qcond(false),Rcond(false),Scond(false),Tcond(false);
Acond = avgv2 >= 7500000000 and avgv2 <= 999999999000000;
Icond = avgv1 >= 3000000000 and avgv1 <= 999999999000000;
Ccond = C >= 300 and C <= 9999999;
Hcond = Condition1 == true;
Ncond = mav1 > mav11 and mav11 > mav12 and mav12 > mav13;
Ocond = mav1 >= O;
Pcond = mav2 > L;
Qcond = mav4 > mav3;
Rcond = HH <= LL*1.012;
Scond = C >= ma1;
Tcond = C >= ma2;
if MarketPosition == 0 and
entry < 1 and
DayClose(maP4) > 0 and
MM[Period2] > 0 and
Acond and Icond and Ccond and Hcond and Ncond and Ocond and !Pcond and !Qcond and Rcond and (Scond or Tcond) Then
buy();
if MarketPosition == 1 Then{
exitlong("BP1",Atlimit,EntryPrice*1.03,"",floor(MaxContracts*0.5),1);
exitlong("BP2",Atlimit,EntryPrice*1.05,"",floor(MaxContracts*0.5),1);
}
SetStopLoss(2,PercentStop);
SetStopEndofday(144000);
즐거운 하루되세요
> 하루4% 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다.
> 수고하십니다.
도움을 부탁드립니다.
매수조건 키움검색식으로 해서 파일 올렸습니다.
일봉과 분봉이 섞여서 표현을 할수있나 모르겠습니다.
전에도 이것때문에 포기했었는데 도움 부탁드리겠습니다.
파일에서 매수조건 R은 1분 이평 60선에서 간격 20 으로 16개 까지하면 360선까지 해서
그물망으로 최저선과 최고선의 차이가 1.2% 이내입니다.
매도조건
-2% 수익 전량손절
3% 수익 절반매도
5% 수익 전량매도
당일 14시 40분 전량청산입니다.
완성봉이 아닌 진행봉으로 하고 싶습니다.
항상 수고해주셔서 감사합니다.