完全なエラー メッセージは次のとおりです。
??? Undefined function or variable "Indicator".
Error in ==> vidya at 44
Indicator(i)=k*sc*Index(i)+(1-k*sc)*Indicator(i+1);
Error in ==> PnL at 22
[Fast] = vidya(Indicator,Shorter_Fast,Longer_Fast);
Error in ==> DEVolSys at 139
Ftemp=OF(data.Indicator,data.Daily_PnL,Pu(1,ii),Pu(4,ii),Pu(2,ii),Pu(5,ii),Pu(3,ii),Pu(6,ii),MinVol);
Error in ==> Optimser at 15
MA_lengths=DEVolSys(de,dataList,@PnL);
以下の関数が呼び出されると、非常にまれに、???Undefined Function or variable Indicator というエラーが表示されます。
matlabコンパイラによると、この行が問題を引き起こしています
Indicator(i)=k*sc*Index(i)+(1-k*sc)*Indicator(i+1);
通常、これらの問題は関数ファイルが間違った場所に保存されているか、変数が初期化されずに使用されていることに関連しているため、奇妙です。
ただし、この関数は最適化スキームの一部として繰り返し呼び出され、ほとんどの場合は完全に機能しているように見えますが、上記のエラーが発生することがありますか?
問題のあるパラメーター セットが問題を引き起こしている可能性がありますが、問題のあるパラメーター セットがどのようにこのような問題を引き起こすのか理解できません。また、文字通り何千ものパラメーターをテストする必要があり、それぞれをテストするために何百もの手順を実行する必要があります。問題の原因を突き止めたいと思います。他に何もなければ、何を探すべきかがわかります。
したがって、誰かがこの種の問題を引き起こしている可能性のあるもの、またはそのような問題をデバッグするための良い方法を説明できれば、それは素晴らしいことです.
function [Indicator] = vidya(Index,Short,Long)
End_Index=1;
Start_Index=size(Index);
if Short>Long
TestVal=Short;
else
TestVal=Long;
end
for i=Start_Index:-1:End_Index
if(i>Start_Index-(TestVal+2))
Indicator(i)=Index(i);
else
Slow=std(Index(i:i+Long-1));
Fast=std(Index(i:i+Short-1));
k=Fast/Slow;
sc=2/(Short+1);
Indicator(i)=k*sc*Index(i)+(1-k*sc)*Indicator(i+1);
end
end
終わり