커뮤니티
문의드립니다.
2013-02-26 00:22:00
416
글번호 59955
해당 내용은 늦게 나오는것이 아닙니다.
지표식으로 보실때는
M5H[1]은 직전 5분봉의 고가입니다.
참조데이터의 5분봉에서는 data2(H[1])과 같은 값입니다.
그러므로 1분봉 차트에서 6분,11분,16분에 값이 변경이 되는 것입니다.
PLOT1(M5H[1]);
PLOT2(DATA2(H[1]));
지표에서 data2(H[0])과 비교하시려면 M5H[0]과 같이 보셔야 합니다.
PLOT1(M5H[0]);
PLOT2(DATA2(H[0]));
수식의 if문은 완성된 봉값만 사용하므로
지표에서는 현재미완성인 봉의 값을 그리지만 시스템등에서 if 조건문에서는
최근 완성된 값만을 사용합니다.
PLOT2(DATA2(H[0]));
실제 위 지표를 그리시면 봉미완성시에 data2의 현재봉의 고가를 그리지만
봉이 완성되면 최근 완성봉의 고가를 그리는 것을 보실 수 있습니다.
즐거운 하루되세요.
1분봉차트에서 5분봉의 시고저종가를 만들어서 사용하는데요.
참조데이터에서 인식하는 5분봉의 시고저종가와 1분봉에서 만들어서 사용하는 5분봉의
시고저종가의 값이 인식되는 시기가 1분느립니다.
참조데이터의 값과 동일한 시기에 같은 값이 인식되게 수정부탁드립니다.
5분봉차트의 시고저종가를 1분봉차트에서 6분11분16분에 H[0]에서 H[1],L[0]에서 L[1]
,C[0]에서 C[1],O[0]에서 O[1]으로 인식
참조데이터2(5분봉데이터)의 시고저종가는 1분봉차트에서 5분10분15분에
H[0],L[0],C[0],O[0]으로 인식
var : cnt1(0);
Array :M5H[50](0),M5L[50](0),M5O[50](0),M5C[50](0);
//5분봉
var1 = TimeToMinutes(stime)%5;
if dayindex ==0 or (var1 < var1[1] and stime > stime[1] and time < 144900) then{
M5O[0] = O;
M5H[0] = H;
M5L[0] = L;
for cnt1 = 1 to 49{
M5O[cnt1] = M5O[cnt1-1][1];
M5H[cnt1] = M5H[cnt1-1][1];
M5L[cnt1] = M5L[cnt1-1][1];
M5C[cnt1] = M5C[cnt1-1][1];
}
}
if stime < 150000 Then{
if H > M5H[0] Then
M5H[0] = H;
if L < M5L[0] Then
M5L[0] = L;
M5C[0] = C;
}
차트의 생성원리가
1분봉차트에서
9시 시작 9시1분종료 ==1분봉 1봉완성
9시 1분 시작 9시2분종료 ==1분봉 2봉완성
9시 2분 시작 9시3분종료 ==1분봉 3봉완성
9시 3분 시작 9시4분종료 ==1분봉 4봉완성
9시 4분 시작 9시5분종료 ==1분봉 5봉완성
9시1분봉의 시가 == 5분봉의 시가
9시5분봉의 종가 == 5분봉의 종가
9시1분봉과 5분봉 사이의 최고가 == 5분봉의 고가
9시1분봉과 5분봉 사이의 최저가 == 5분봉의 저가
1분봉의 5봉완성시 5분봉의 시고저종가가 완성됩니다.
1분봉차트의 DATA2(H[0]);에서도 5번째봉에 5분봉H[0]의 값이 저장됩니다.
위의 식은 1분봉차트에서
처음1분봉의 시고저종가를 M5H[0],M5L[0],M5C[0],M5O[0]으로 저장후
1분봉의 H[0] > M5H[0] THEN M5H[0] == H ;
1분봉의 L[0] < M5L[0] THEN M5L[0] == L ;
값을 저장해 오다가 M5H[0]과 M5L[0]은 계속 값을 그리는 값
1분봉의 5봉완성시에 M5H[1],M5L[1],M5C[1],M5O[1]에 저장되므로
DATA2(H[1]) == M5H[1]는 성립이 되지 않습니다.
1분봉의 5봉완성시에 저장되어야할 값이 6분이 되어서야 저장이 되므로 수식 오류같은데
무엇을 어떻게 수정해야 할지 모르겠습니다.
테스트로
밑의 식은 1분봉차트의 6번째봉에서 5분봉의 고가와 저가를 상향혹은 하향돌파시
신호가 1분봉의 5분정각에 6번째봉에서 신호가 발생하면 정상적으로 매수 매도신호가
발생하지만
M5H[0],M5L[0]은 완성된 5분봉의 고가와 저가가 아니기 때문에 값이 계속 바뀌어
엉뚱한 곳에서 매수신호매도 신호가 발생합니다.
#매수
If 조건 then
Buy("매수",AtStop,M5H[0]+PriceScale);
#매도
If 조건 Then
ExitLong("매도",AtStop,M5L[0]-PriceScale);
밑의 식은 1분봉차트의 5번째봉에서 5분봉고가와 저가가 완성
1분봉 6번째이후 감시 도중 돌파시 매수 매도 신호가 정상적으로 발생
신호가 발생.
#매수
If 조건 then
Buy("매수",AtStop,DATA2(H[0])+PriceScale);
#매도
If 조건 Then
ExitLong("매도",AtStop,DATA2(L[0])-PriceScale);
수정부탁드립니다.
수고하세요^^
답변 1
예스스탁 예스스탁 답변
2013-02-26 15:04:52
안녕하세요
예스스탁입니다.
var : cnt1(0);
Array :M5H[50](0),M5L[50](0),M5O[50](0),M5C[50](0);
//5분봉
var1 = TimeToMinutes(stime)%5;
if dayindex ==0 or (var1 < var1[1] and stime > stime[1] and time < 144900) then{
M5O[0] = O;
M5H[0] = H;
M5L[0] = L;
for cnt1 = 1 to 49{
M5O[cnt1] = M5O[cnt1-1][1];
M5H[cnt1] = M5H[cnt1-1][1];
M5L[cnt1] = M5L[cnt1-1][1];
M5C[cnt1] = M5C[cnt1-1][1];
}
}
if stime < 150000 Then{
if H > M5H[0] Then
M5H[0] = H;
if L < M5L[0] Then
M5L[0] = L;
M5C[0] = C;
}
If 조건 then{
if var1 == 4 then
Buy("매수0",AtStop,M5H[0]+PriceScale);
Else
Buy("매수1",AtStop,M5H[1]+PriceScale);
}
If 조건 Then{
if var1 == 4 Then
ExitLong("매도0",AtStop,M5L[0]-PriceScale);
Else
ExitLong("매도1",AtStop,M5L[1]-PriceScale);
}
즐거운 하루되세요
> 아싸가오리 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 해당 내용은 늦게 나오는것이 아닙니다.
지표식으로 보실때는
M5H[1]은 직전 5분봉의 고가입니다.
참조데이터의 5분봉에서는 data2(H[1])과 같은 값입니다.
그러므로 1분봉 차트에서 6분,11분,16분에 값이 변경이 되는 것입니다.
PLOT1(M5H[1]);
PLOT2(DATA2(H[1]));
지표에서 data2(H[0])과 비교하시려면 M5H[0]과 같이 보셔야 합니다.
PLOT1(M5H[0]);
PLOT2(DATA2(H[0]));
수식의 if문은 완성된 봉값만 사용하므로
지표에서는 현재미완성인 봉의 값을 그리지만 시스템등에서 if 조건문에서는
최근 완성된 값만을 사용합니다.
PLOT2(DATA2(H[0]));
실제 위 지표를 그리시면 봉미완성시에 data2의 현재봉의 고가를 그리지만
봉이 완성되면 최근 완성봉의 고가를 그리는 것을 보실 수 있습니다.
즐거운 하루되세요.
1분봉차트에서 5분봉의 시고저종가를 만들어서 사용하는데요.
참조데이터에서 인식하는 5분봉의 시고저종가와 1분봉에서 만들어서 사용하는 5분봉의
시고저종가의 값이 인식되는 시기가 1분느립니다.
참조데이터의 값과 동일한 시기에 같은 값이 인식되게 수정부탁드립니다.
5분봉차트의 시고저종가를 1분봉차트에서 6분11분16분에 H[0]에서 H[1],L[0]에서 L[1]
,C[0]에서 C[1],O[0]에서 O[1]으로 인식
참조데이터2(5분봉데이터)의 시고저종가는 1분봉차트에서 5분10분15분에
H[0],L[0],C[0],O[0]으로 인식
var : cnt1(0);
Array :M5H[50](0),M5L[50](0),M5O[50](0),M5C[50](0);
//5분봉
var1 = TimeToMinutes(stime)%5;
if dayindex ==0 or (var1 < var1[1] and stime > stime[1] and time < 144900) then{
M5O[0] = O;
M5H[0] = H;
M5L[0] = L;
for cnt1 = 1 to 49{
M5O[cnt1] = M5O[cnt1-1][1];
M5H[cnt1] = M5H[cnt1-1][1];
M5L[cnt1] = M5L[cnt1-1][1];
M5C[cnt1] = M5C[cnt1-1][1];
}
}
if stime < 150000 Then{
if H > M5H[0] Then
M5H[0] = H;
if L < M5L[0] Then
M5L[0] = L;
M5C[0] = C;
}
차트의 생성원리가
1분봉차트에서
9시 시작 9시1분종료 ==1분봉 1봉완성
9시 1분 시작 9시2분종료 ==1분봉 2봉완성
9시 2분 시작 9시3분종료 ==1분봉 3봉완성
9시 3분 시작 9시4분종료 ==1분봉 4봉완성
9시 4분 시작 9시5분종료 ==1분봉 5봉완성
9시1분봉의 시가 == 5분봉의 시가
9시5분봉의 종가 == 5분봉의 종가
9시1분봉과 5분봉 사이의 최고가 == 5분봉의 고가
9시1분봉과 5분봉 사이의 최저가 == 5분봉의 저가
1분봉의 5봉완성시 5분봉의 시고저종가가 완성됩니다.
1분봉차트의 DATA2(H[0]);에서도 5번째봉에 5분봉H[0]의 값이 저장됩니다.
위의 식은 1분봉차트에서
처음1분봉의 시고저종가를 M5H[0],M5L[0],M5C[0],M5O[0]으로 저장후
1분봉의 H[0] > M5H[0] THEN M5H[0] == H ;
1분봉의 L[0] < M5L[0] THEN M5L[0] == L ;
값을 저장해 오다가 M5H[0]과 M5L[0]은 계속 값을 그리는 값
1분봉의 5봉완성시에 M5H[1],M5L[1],M5C[1],M5O[1]에 저장되므로
DATA2(H[1]) == M5H[1]는 성립이 되지 않습니다.
1분봉의 5봉완성시에 저장되어야할 값이 6분이 되어서야 저장이 되므로 수식 오류같은데
무엇을 어떻게 수정해야 할지 모르겠습니다.
테스트로
밑의 식은 1분봉차트의 6번째봉에서 5분봉의 고가와 저가를 상향혹은 하향돌파시
신호가 1분봉의 5분정각에 6번째봉에서 신호가 발생하면 정상적으로 매수 매도신호가
발생하지만
M5H[0],M5L[0]은 완성된 5분봉의 고가와 저가가 아니기 때문에 값이 계속 바뀌어
엉뚱한 곳에서 매수신호매도 신호가 발생합니다.
#매수
If 조건 then
Buy("매수",AtStop,M5H[0]+PriceScale);
#매도
If 조건 Then
ExitLong("매도",AtStop,M5L[0]-PriceScale);
밑의 식은 1분봉차트의 5번째봉에서 5분봉고가와 저가가 완성
1분봉 6번째이후 감시 도중 돌파시 매수 매도 신호가 정상적으로 발생
신호가 발생.
#매수
If 조건 then
Buy("매수",AtStop,DATA2(H[0])+PriceScale);
#매도
If 조건 Then
ExitLong("매도",AtStop,DATA2(L[0])-PriceScale);
수정부탁드립니다.
수고하세요^^
다음글
이전글