input : Dwdate(20210107);
Array :ARs[99](0), AIdx[99](0), MxRs[99](0), MxIdx[99](0);
var :MxV(0), MxId(0), DwRsi(0);
DwRsi = Highest(h, 10);
if DwRsi <> DwRsi[1] && Sdate >= DwDate then{
ARs[0] = DwRsi[1];
AIdx[0] = Barindex;
for i = 1 to 99{
ARs[i] = ARs[i-1][1];
AIdx[i] = AIdx[i-1][1];
}
}
위의 결과에서 Array내의 99개중에서 가장큰값과 해당 Barindex를 0번방, 2번째 큰값과 Barindex를 2번방 등으로 순차적 99개를 정리하고 싶는데 여러가지로 시도해봐도 어렵습니다. 도와주시면 감사하겠습니다.
답변 1
예스스탁
예스스탁 답변
2021-02-09 15:58:29
안녕하세요
예스스탁입니다.
ARs에 높은값 순으로
MxRs 배열변수와 MxIdx 배열변수에 순차적으로 값저장되게 작성해 드립니다.
input : Dwdate(20210107);
var : DwRsi(0),i(0),count(0);
var : Tempi1(0),Tempi2(0),tempmax(0),tempIndex(0);
Array : ARs[100](0), AIdx[100](0),Temp[100](0), MxRs[100](0), MxIdx[100](0);
DwRsi = Highest(h, 10);
if DwRsi <> DwRsi[1] && Sdate >= DwDate then
{
count = count+1;
ARs[0] = DwRsi[1];
AIdx[0] = Barindex;
for i = 0 to min(count-1,99)
{
if i >= 1 Then
{
ARs[i] = ARs[i-1][1];
AIdx[i] = AIdx[i-1][1];
}
Temp[i] = ARs[i];
}
For tempi2 = 0 to min(count-1,99)
{
tempmax = 0;
For tempi1 = 0 to min(count-1,99)
{
if (Temp[tempi1] >= tempmax) then
{
tempmax = Temp[tempi1];
tempIndex = tempi1;
}
}
MxRs[tempi2] = tempmax;
MxIdx[tempi2] = AIdx[tempIndex];
Temp[tempIndex] = 0;
}
}
즐거운 하루되세요
> 짱짱해야지 님이 쓴 글입니다.
> 제목 : Array
> input : Dwdate(20210107);
Array :ARs[99](0), AIdx[99](0), MxRs[99](0), MxIdx[99](0);
var :MxV(0), MxId(0), DwRsi(0);
DwRsi = Highest(h, 10);
if DwRsi <> DwRsi[1] && Sdate >= DwDate then{
ARs[0] = DwRsi[1];
AIdx[0] = Barindex;
for i = 1 to 99{
ARs[i] = ARs[i-1][1];
AIdx[i] = AIdx[i-1][1];
}
}
위의 결과에서 Array내의 99개중에서 가장큰값과 해당 Barindex를 0번방, 2번째 큰값과 Barindex를 2번방 등으로 순차적 99개를 정리하고 싶는데 여러가지로 시도해봐도 어렵습니다. 도와주시면 감사하겠습니다.