예스스탁
예스스탁 답변
2021-02-19 14:20:57
안녕하세요
예스스탁입니다.
1
input: morningTime(901);
var: temp_high(0), temp_value(0), count(0);
if (stime == MorningTime * 100) then
{
temp_high = high;
}
Plot1(temp_high);
위 내용을 지표식으로 작성해서 차트에 적용해 부시면
temp_high에 9시1분봉 고가가 저장되면 그 이후 장종료까지 모두 같은 값입니다.
temp_high[0]
temp_high[1]
temp_high[2]
temp_high[0]은 현재봉에서 temp_high에 저장된값,
temp_high[1]은 전봉에서 temp_high에 저장된값,
temp_high[2]는 전전봉에서 temp_high에 저장된값입니다.
즉 변수뒤의 [0],[1]은 단지 봉기준으로 한봉전 두봉전입니다.
조건만족시점을 기준으로 직전, 전전,전전전으로 값이 넘겨지는 것은 아닙니ㅏㄷ.
지표에서 현재봉기준 1봉전,2봉전값 확인하시기 바랍니다.
2
구현하고자 하시는 내용이
9시1분의 고가를 저장하는데 [0]은 당일, [1]은 전일, [2]는 전전일 값을
순으로 저장하기를 원하시면 일반변수가 아니라 배열변수를 이용해 값을 저장하셔야 합니다.
input: morningTime(901);
var: temp_value(0), count(0);
Array : temp_high[100](0);
#조건충족
if (stime == MorningTime * 100) then
{
#temp_high[99]에 temp_high[98]에 저장된 값을 가져와 저장
#temp_high[98]에 temp_high[97]에 저장된 값을 가져와 저장
#...
#temp_high[3]에 temp_high[2]에 저장된 값을 가져와 저장
#temp_high[2]에 temp_high[1]에 저장된 값을 가져와 저장
#temp_high[1]에 temp_high[0]에 저장된 값을 가져와 저장
For count = 99 to 1
{
temp_high[count] = temp_high[count-1];
}
#[0]번방에 당일값 새로 저장
temp_high[0] = high;
}
if LastBarOnChart == 1 Then
{
For count = 0 to 50 {
MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]);
}
}
즐거운 하루되세요
> 찰리03 님이 쓴 글입니다.
> 제목 : 변수의 과거봉 참조 문의
> 기본적인 과거봉 참조인거 같은데 헷갈려서 문의 드립니다.
1. 아래 시스템식을 60분봉으로 예를 들어 4일 동안 시뮬레이션하면
과거봉이 모두 정상적으로 출력됩니다.
var: temp_high(0), temp_value(0), count(0);
temp_high = high;
MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f", stime, temp_high[0], temp_high[1], temp_high[2]);
if LastBarOnChart == 1 Then
{
For count = 0 to 150 {
MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]);
}
if close < 0 Then
Buy();
}
2. 아래 시스템식은 매일 9시 1분의 고가를 저장했다가, 마지막 봉에서 모두
출력하는 수식입니다.
그런데 [0]값과 [1]값 까지만 저장되고, 그 이전의 과거값은 저장이 안 되는 데요.
위의 시스템식과의 과거값 표시가 왜 다른지 문의 드립니다.
input: morningTime(901);
var: temp_high(0), temp_value(0), count(0);
if (stime == MorningTime * 100) then
{
temp_high = high;
MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f",
stime, temp_high[0], temp_high[1], temp_high[2]);
if close < 0 Then
Buy();
}
if LastBarOnChart == 1 Then
{
For count = 0 to 50 {
MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]);
}
}