커뮤니티
함수 수정 요청(11-1호)
2015-10-28 11:19:30
168
글번호 91809
안녕하세요?
아래는 최근 10일동안 해외선물의 일중 움직임(시가와 고가, 고가와 저가, 시가와 저가)을 관찰하여 매매의 전략을 세우고자 했었습니다.
단순평균을 사용하다보니 특이치를 제거하고 싶습니다.
즉 최근 10일동안 (고가-저가) 의 값이 가장 큰 값과 가장 작은 값을 제거하고
8개 값을 평균하고 싶습니다.
수정요청 부탁드립니다.
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
for cnt1 = 1 to 10{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
}
maho1 = sumho1/10;
maOL1 = sumOL1/10;
maHL1 = sumHL1/10;
V1 =
V2 =
V3 =
V4 =
V5 =
V6 =
V7 =
V8 =
V9 =
V10 =
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}
답변 1
예스스탁 예스스탁 답변
2015-10-28 14:06:29
안녕하세요
예스스탁입니다.
가장큰값과 가장작은값이
하루가 아닐수 있습니다.
즉 동일값이 여러일에 동일할수도 있습니다.
10동안 각 폭 중 가장큰값과 작은값 계산하고
해당 값과 같은 날은 모두 배제합니다.
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
var : H1(0),L1(0),H2(0),L2(0),H3(0),L3(0),cnt(0);
var : count1(0),count2(0),count3(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
H1 = dayhigh(1)-dayOpen(1);
L1 = dayhigh(1)-dayOpen(1);
H2 = dayOpen(1)-dayLow(1);
L2 = dayOpen(1)-dayLow(1);
H3 = dayhigh(1)-dayLow(1);
L3 = dayHigh(1)-dayLow(1);
for cnt = 1 to 10{
if dayhigh(cnt)-dayOpen(cnt) > H1 Then
H1 = dayhigh(cnt)-dayOpen(cnt);
if dayhigh(cnt)-dayOpen(cnt) < L1 Then
L1 = dayhigh(cnt)-dayOpen(cnt);
if dayopen(cnt)-DayLow(cnt) > H1 Then
H1 = DayOpen(cnt)-DayLow(cnt);
if dayopen(cnt)-DayLow(cnt) < L1 Then
L1 = dayopen(cnt)-DayLow(cnt);
if dayhigh(cnt)-DayLow(cnt) > H1 Then
H1 = dayhigh(cnt)-DayLow(cnt);
if dayhigh(cnt)-DayLow(cnt) < L1 Then
L1 = dayhigh(cnt)-DayLow(cnt);
}
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
count1 = 0;
count2 = 0;
count3 = 0;
for cnt1 = 1 to 10{
if (dayhigh(cnt1)-dayopen(cnt1)) < H1 and (dayhigh(cnt1)-dayopen(cnt1)) > L1 Then{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
count1 = count1+1;
}
if (DayOpen(cnt1)-DayLow(cnt1)) < H1 and (DayOpen(cnt1)-DayLow(cnt1)) > L1 Then{
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
count2 = count2+1;
}
if (DayHigh(cnt1)-DayLow(cnt1)) < H1 and (DayHigh(cnt1)-DayLow(cnt1)) > L1 Then{
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
count3 = count3+1;
}
}
maho1 = sumho1/count1;
maOL1 = sumOL1/count2;
maHL1 = sumHL1/count3;
V1 =
V2 =
V3 =
V4 =
V5 =
V6 =
V7 =
V8 =
V9 =
V10 =
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}
즐거운 하루되세요
> 통큰베팅 님이 쓴 글입니다.
> 제목 : 함수 수정 요청(11-1호)
> 안녕하세요?
아래는 최근 10일동안 해외선물의 일중 움직임(시가와 고가, 고가와 저가, 시가와 저가)을 관찰하여 매매의 전략을 세우고자 했었습니다.
단순평균을 사용하다보니 특이치를 제거하고 싶습니다.
즉 최근 10일동안 (고가-저가) 의 값이 가장 큰 값과 가장 작은 값을 제거하고
8개 값을 평균하고 싶습니다.
수정요청 부탁드립니다.
var : entry1(0);
var : ho1(0),OL1(0),HL1(0);
var : maho1(0),maOL1(0),maHL1(0);
var : cnt1(0),sumho1(0),sumOL1(0),sumHL1(0);
var : EntryCnt1(0);
var : V1(0),V2(0),V3(0),V4(0),V5(0);
var : V6(0),V7(0),V8(0),V9(0),V10(0);
if bdate != bdate[1] Then
entry1 = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry1 = entry1+1;
ho1 = Dayhigh-Dayopen;
OL1 = DayOpen-DayLow;
HL1 = DayHigh-DayLow;
sumho1 = 0;
sumOL1 = 0;
sumHL1 = 0;
for cnt1 = 1 to 10{
sumho1 = sumho1 + (dayhigh(cnt1)-dayopen(cnt1));
sumOL1 = sumOL1 + (DayOpen(cnt1)-DayLow(cnt1));
sumHL1 = sumHL1 + (DayHigh(cnt1)-DayLow(cnt1));
}
maho1 = sumho1/10;
maOL1 = sumOL1/10;
maHL1 = sumHL1/10;
V1 =
V2 =
V3 =
V4 =
V5 =
V6 =
V7 =
V8 =
V9 =
V10 =
if MarketPosition == 0 and entry1 == 0 Then{
if V7 > V8 Then
sell("s1",AtStop,V7-0.02);
if V7 < V8 Then
sell("s2",Atlimit,V8-0.02);
}
if MarketPosition == -1 and IsEntryName("s1") == true Then{
ExitShort("sp1",atlimit,V9-0.03);
ExitShort("sl1",AtStop,V6);
}
if MarketPosition == -1 and IsEntryName("s2") == true Then{
ExitShort("sp2",atlimit,V9-0.03);
ExitShort("sl2",AtStop,V6);
}