Dzień dobry,
Mam następujący problem. Mam opracowany system wskazań do portfela działający w trybie Rotational Trading.
Teraz chciałbym wprowadzić warunek, aby do scoringu opartego o inne wskaźniki AT uwzględniano 20 spółek o najwyższych obrotach na dany dzień. Mój pomysł był aby korzystając z funkcji: StaticVarGenerateRanks znaleźć każdego dnia tą 20 spółkę, obliczyć dla niej wartość obrotu i dostawić do indeksu (np.~obrot_min) na dany dzień funkcją AddtoComposite. Wówczas do Positionscoring byłby użyty dodatkowy warunek , że C*V >= obrot_min. Napisałem do tego kod jak poniżej, ale nie działa prawidłowo:
symlist = CategoryGetSymbols( categoryMarket, 1);
StaticVarRemove("SortFund*");
for( i = 0; ( sym_fund = StrExtract( symlist, i ) ) != ""; i++ )
{
SetForeign(sym_fund);
Value_f = V*C;
RestorePriceArrays();
StaticVarSet( "SortFund" + sym_fund, Value_f);
}
StaticVarGenerateRanks( "top", "SortFund", 20, 1224 );
sdt = SelectedValue( DateTime() );
Sorto = StaticVarGetRankedSymbols( "top", "SortFund", sdt);
Nazwa = StrExtract(sorto,19);
cena = Foreign(Nazwa,"Close");
wolumen = Foreign(Nazwa,"Volume");
obrot_min = cena * wolumen / 1000;
AddToComposite(obrot_min,"~obrot_min","Close",atcFlagResetValues|atcFlagEnableInExplore);
Prośba o jak zwykle nieocenioną pomoc z Państwa strony,
Marcin Brendota