I'm converting an indicator from AFL to DLL by C++ but having difficulty converting function ValueWhen().
AmiVar avd = gSite.AllocArrayResult(); avd.type = VAR_ARRAY;
AmiVar avdTrue = gSite.AllocArrayResult(); avdTrue.type = VAR_ARRAY;
AmiVar avnTrue = gSite.AllocArrayResult(); avnTrue.type = VAR_ARRAY;
for (i = 0; i < sa2->Size; i++)
{
avd.array[i] = 0;
avdTrue.array[i] = 0;
if (i > 0)
{
if (Close[i] > res.array[i - 1])
{
avd.array[i] = 1;
avdTrue.array[i] = 1;
}
else if (Close[i] < sup.array[i - 1])
{
avd.array[i] = -1;
avdTrue.array[i] = 1;
}
}
}
arg5[0].type = VAR_ARRAY; arg5[0].array = avdTrue.array;
arg5[1].type = VAR_ARRAY; arg5[1].array = avd.array;
arg5[2].type = VAR_FLOAT; arg5[2].val = 1;
AmiVar avn = gSite.CallFunction("ValueWhen", 3, arg5);
result.type = VAR_ARRAY;
result.array = avn .array;
The result from the DLL is different from those in AFL.
Please help me how to use the function ValueWhen () in C++.