커뮤니티
data2가 선물 분봉일때 선물 일봉의 고저차를 보고 싶습니다.
2011-04-02 20:32:32
705
글번호 37189
Input : 고저차이평주기(20);
Var : 고저차이평(0), sumV(0), count(0), ChUp(0), ChDn(0);
sumV = 0;
For count = 1 To 고저차이평주기 {
sumV = sumV+(DayHigh(count)-DayLow(count));
}
고저차이평 = sumV / 고저차이평주기; //고저차의 이동평균
분봉으로 선물만 볼때(data1만 있을 때) 이 식으로 연결선물 일봉의 고저차를 분봉에 표시할 수 있습니다.
그런데 연결선물 분봉이 data2일때 이 식처럼 연결선물 일봉의 고저차를 표시하거나 시스템에 적용하려면 어떻게 해야 하나요?
그렇고 setstoploss를 data2 기준으로 적용하는 방법도 궁금합니다.
늘 감사합니다.
답변 1
예스스탁 예스스탁 답변
2011-04-04 11:19:33
안녕하세요
예스스탁입니다.
1.
참조종목을 사용할 경우 식을 많이 변경하셔야 합니다.
day~함수의 경우 차트 첫봉의 날자 +99일치의 일봉데이터가
더 제공되지만 참조종목의 경우에는 해당 값이 제공되지 않고
차트의 데이터로만 계산이 되며 참조종목의 일봉값을 가져오는
함수는 for문에 직접 사용가능하지 않으므로
아래와 같이 변경하셔야 합니다.
Input : 고저차이평주기(20);
Var : 고저차이평(0,data2), sumV(0,data2), count(0),cnt(0);
Array : HH[50](0,data2),LL[50](0,data2);
if data2(date != date[1]) Then{
HH[0] = data2(H);
LL[0] = data2(L);
for cnt = 1 to 고저차이평주기{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if data2(H) > HH[0] Then
HH[0] = Data2(H);
if data2(L) < LL[0] Then
LL[0] = Data2(L);
sumV = 0;
if HH[고저차이평주기] > 0 then{
For count = 1 To 고저차이평주기{
sumV = sumV+(HH[count]-LL[count]);
}
고저차이평 = sumV / 고저차이평주기; //고저차의 이동평균
}
plot1(고저차이평);
2.
기존에 주종목에서 사용하는 강제청산 내용을
참조종목으로 변경시에는 모두 봉완성시 조건으로 작성하셔야 합니다.
시세를 감시하여 특정가격에 도달하면 즉시 청산하는 내용은
주종목에만 한정됩니다.
var1 = data2(c);
if MarketPosition == 1 and data2(L) <= var1[BarsSinceEntry]*0.95 Then
ExitLong();
if MarketPosition == -1 and data2(H) >= var1[BarsSinceEntry]*1.05 Then
ExitShort();
즐거운 하루되세요
> 닭고기 님이 쓴 글입니다.
> 제목 : data2가 선물 분봉일때 선물 일봉의 고저차를 보고 싶습니다.
> Input : 고저차이평주기(20);
Var : 고저차이평(0), sumV(0), count(0), ChUp(0), ChDn(0);
sumV = 0;
For count = 1 To 고저차이평주기 {
sumV = sumV+(DayHigh(count)-DayLow(count));
}
고저차이평 = sumV / 고저차이평주기; //고저차의 이동평균
분봉으로 선물만 볼때(data1만 있을 때) 이 식으로 연결선물 일봉의 고저차를 분봉에 표시할 수 있습니다.
그런데 연결선물 분봉이 data2일때 이 식처럼 연결선물 일봉의 고저차를 표시하거나 시스템에 적용하려면 어떻게 해야 하나요?
그렇고 setstoploss를 data2 기준으로 적용하는 방법도 궁금합니다.
늘 감사합니다.
다음글
이전글