рдпрд╣ рдЖрд▓реЗрдЦ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди ( part1 , part3 ), рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ рдкрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА MSX DLL рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд╛ рд░реВрдк рд╣реИ:
DLL_EXPORT BOOL __stdcall Price(const MSXDataRec *a_psBasic, const MSXDataInfoRecArgsArray *a_psArrayArgs, const MSXNumericArgsArray *a_psNumericArgs, const MSXStringArgsArray *a_psStringArgs, const MSXCustomArgsArray *a_psCustomArgs, MSXResultRec *a_psResult)
рдЬрд╣рд╛рдБ
* a_psBasic - MSXDataRec рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ (рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдкрд░ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛);
* a_psArray - рд╕реВрдЪрдХ MSXDataInfoRecArgsArray рд╕рдВрд░рдЪрдирд╛ (рд╕рд░рдгреА рддрд░реНрдХ) рдХреЗ рд▓рд┐рдП;
* a_psNumeric - MSXNumericArgsArray рд╕рдВрд░рдЪрдирд╛ (рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ) рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
* a_psString - MSXStringArgsArray рд╕рдВрд░рдЪрдирд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрд░реНрдХ) рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
* a_psCustom - MSXCustomArgsArray рд╕рдВрд░рдЪрдирд╛ (рдХрд╕реНрдЯрдо рддрд░реНрдХ) рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ;
* a_psResult - MSXResultRec рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ (рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ рдкрд░ рд▓реМрдЯ рдЖрдпрд╛);
* a_psValue - MSXDataInfoRec рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕реВрдЪрдХ (рдЧрдгрдирд╛ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛)ред
рд╕рднреА рд╕рдВрд░рдЪрдирд╛ MSXStruc.h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдФрд░ рдЧрдгрдирд╛
рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓реНрдп рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрди, рдЙрдЪреНрдЪ, рдирд┐рдореНрди, рдЖрджрд┐), рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╕рдВрдХреЗрддрдХ рдЧрдгрдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ MSX DLL рдлрд╝рдВрдХреНрд╢рди рдХреА рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдФрд░ рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм MSX DLL рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдлрд╝рдВрдХреНрд╢рди рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ рдореЗрдВ рд╕рдВрдХреЗрддрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
MSXDataInfoRec рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рддреАрди рдореБрдЦреНрдп рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ:
тАв рдбреЗрдЯрд╛ рддрддреНрд╡ - рдбреЗрдЯрд╛ рддрддреНрд╡ред
тАв рдкрд╣рд▓рд╛ рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ - рд╕рдВрджрд░реНрдн рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ (Fvi)ред
тАв рдЕрдВрддрд┐рдо рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ - рд╕рдВрджрд░реНрдн рдХрд╛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ (Lvi)ред
рдбреЗрдЯрд╛ рдЖрдЗрдЯрдо рдбреЗрдЯрд╛ рд╕рд░рдгреА рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╣реИрдВред рдпреЗ рдорд╛рди рд╕рд░рдгреА рдореЗрдВ рдлреНрд▓реЛрдЯ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдбреЗрдЯрд╛ рдЖрдЗрдЯрдо рдореЗрдВ рдорд╛рдиреНрдп рдореВрд▓реНрдп рд╣реИрдВред рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ (рд╕рдорд╛рд╡реЗрд╢реА) рдХреЗ рдмреАрдЪ рд╕рднреА рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдореЗрдВ рд╡реИрдз рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп рд╣реИрдВ рдФрд░ рд╕рднреА рдЧрдгрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ Fvi <Lvi рд╣реИ рддреЛ рдбреЗрдЯрд╛ рдРрд░реЗ рдХреЛ " рдЦрд╛рд▓реА " рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЦрд╛рд▓реА рдбреЗрдЯрд╛рд╕реЗрдЯ рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ Fvi = 0 рдФрд░ Lvi = -1 рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ Fvi <Lvi рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рдВрдпреЛрдЬрди рдХреЛ рдЦрд╛рд▓реА рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛ рд╕рд░рдгреА рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ 'рдУрдкрди рдЗрдВрдЯрд░реЗрд╕реНрдЯ' рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд╛ (рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреАрдЬ) рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдУрдкрди рдЗрдВрдЯрд░реЗрд╕реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╛, рдпрджрд┐ 100-рдЕрд╡рдзрд┐ рдХреА рдЪрд▓рддреА рдФрд╕рдд рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХреА рдХреАрдорддреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╕рд░рдгреА рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 100 рд╕реЗ рдХрдо рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдбреЗрдЯрд╛ рд╕рд░рдгреА рдорд┐рд▓рддреА рд╣реИред
рд╕реВрдЪрдХ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЧрдгрдирд╛ рд╣рдореЗрд╢рд╛ рдЙрдирдХреЗ рдмреАрдЪ рдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд▓реМрдЯреЗ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП Fvi рдФрд░ Lvi рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ:
тАв рд╣рдореЗрд╢рд╛ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╕реАрдорд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВред
тАв рдЧрдгрдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк Fvi рдФрд░ Lvi рдХреЛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдкрдиреЗ рдкрджреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
MSXDataRec рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рд╛рдд рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реИрдВ:
тАв sOpen , sHigh , sLow , sClose , sVol , sOI , sInd ,
MSXDataInfoRec рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ред рдпреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╕реЗрдВрдЯреНрд░рд▓ рдмреИрдВрдХ рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдп рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдХреЗрдВрджреНрд░реАрдп рдмреИрдВрдХ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдореВрд▓реНрдп рдХреНрд╖реЗрддреНрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрди рдЗрдВрдЯрд░реЗрд╕реНрдЯ) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рд░рдгрд┐рдпрд╛рдБ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
тАв рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, MSXDataRec рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ MSXDateTime рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрджрд┐ рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд╛рдзрди рдХреЗ Nth рдмрд╛рд░ рдХреЗ рд▓рд┐рдП рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ psDate рд╕рд░рдгреА рдХреЗ Nth рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рд░рдгреА рдбреЗрдЯрд╛ рд╕рд░рдгреА рдЬреИрд╕реЗ sHigh, sLow, рдЖрджрд┐ рд╕реЗ рдЕрд▓рдЧ рд╣реИред
тАв sInd data array рдореЗрдВ рдпреВрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдХрд╕реНрдЯрдо рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рдбреЗрдЯрд╛ рдРрд░реЗ рдореЗрдВ рдЪрд╛рд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡реИрд▓реНрдпреВ рд╣реЛрдЧреА рдЬрд┐рд╕ рдкрд░ рдЗрдВрдбрд┐рдХреЗрдЯрд░ рдЕрдЯреИрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ sInd рднрд╛рдЧ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдРрд░реЗ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
тАв рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрди рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрдерд╛рди рд╕рдордпрд╛рд╡рдзрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ Nth рддрддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
тАв sClose рдбреЗрдЯрд╛ рд╕рд░рдгреА рдореЗрдВ рд╣рдореЗрд╢рд╛ рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред рдЕрдиреНрдп рд╕рднреА рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ <= sClose.iLastValidред
тАв sClose рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ iFirstValid рдФрд░ iLastValid рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдиреНрдп рдореВрд▓реНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рддрддреНрд╡реЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ PsDate рд╕рд░рдгреА рдореЗрдВ рдирд┐рд╣рд┐рдд рд╡реИрдз рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ sClose.iFirstValid = 100 рдлрд╝реАрд▓реНрдб рдФрд░ sClose.iLastValid = 200 рдлрд╝реАрд▓реНрдб, рддреЛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ psDate рд╕рд░рдгреА рдореЗрдВ psDate [100] рдФрд░ psDate [200] рдХреЗ рдмреАрдЪ рд╡реИрдз рдбреЗрдЯрд╛ рд╣реИред
тАв рдЧрдгрдирд╛ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, i_astResalid_psResult -> psResultArray рдореЗрдВ sClose рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЗ iLastValid рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рдХрднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
тАв рд╕рднреА рд╕рд░рдгреА рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдорд╛рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sClose рд╕реЗ iFirstValid рдФрд░ iLastValid рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдХреЗрд╡рд▓ sClose.iLastValid рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдкрд░ред рдбреЗрдЯрд╛ a_psResult -> psResultArray рд╕реЗ MSX DLL рд╕реЗ рд╡рд╛рдкрд╕ рдЙрд╕реА рд╕реНрдЯреЛрд░реЗрдЬ рдкреНрд░рддрд┐рдмрдВрдз рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
тАв a_psResult-> psResultArray рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рд╢реБрд░реБрдЖрдд MSX DLL рд╕реЗ рд▓реМрдЯрдХрд░ рдХрднреА рднреА sClose.iFirstValid рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдбреЗрдЯрд╛ рдХрд╛ рдЕрдВрдд рд╕реЗрдЯ a_psResult -> psResultArray рдХрднреА рднреА sClose.iLastValid рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
тАв рдЧрдгрдирд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрднреА рднреА рдЖрдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд░рд┐рдХреЙрд░реНрдб (a_psResult) рдХреЛ рдЫреЛрдбрд╝рдХрд░ред рдЗрдирдХрдорд┐рдВрдЧ рддрд░реНрдХреЛрдВ рдХреЛ ' рдХреЙрдиреНрд╕реНрдЯ ' рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рднреА рдЕрд╡реИрдз рдкрд░рд┐рд╡рд░реНрддрди рди рд╣реЛред
тАв рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рд╕реЗ рд▓реМрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ a_psResult -> psResultArray -> iFirstValid рдФрд░ a_psResult -> psResultArray -> iLastValid рд╕реЗрдЯ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
тАв рдпрджрд┐ рдЖрдкрдХрд╛ рдлрд╝рдВрдХреНрд╢рди MSX_ERROR рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреЛ a_psResult -> pszExtendedError рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рддреНрд░реБрдЯрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
тАв a_psResult -> psResultArray -> iFirstValid рдХреЛ sClose.iFirstValid рд╕реЗ рдХрдо рд╕реЗрдЯ рди рдХрд░реЗрдВред
тАв a_psResult -> psResultArray -> iLastValid рдХреЛ sClose.iLastValid рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗрдЯ рди рдХрд░реЗрдВред A_psResult -> psResultArray -> pfValue рдХреЛ рдорд╛рди sClose.iLastValid рдкрд░ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдореЗрдореЛрд░реА MetaStock рдореЗрдВ рдореИрдк рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
тАв рдХрд┐рд╕реА рднреА MSXDataInfoRec рдпрд╛ a_psBasic рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП iFirstValid рдФрд░ iLastValid рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХрднреА рди рд╕реЛрдЪреЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдРрд░реЗ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдпрджрд┐ рдбреЗрдЯрд╛ рдЖрдкрдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕реЗрдЯ рдХрд░реЗрдВ
a_psResult -> psResultArray -> iFirstValid = 0 рдФрд░
a_psResult -> psResultArray -> iLastValid = -1 ,
рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдореЗрдЯрд╛рд╕реНрдЯреЙрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рд╕реЗ рдмрдЪрддреА рд╣реИред
рдХреЛрдб рдмрджрд▓реЗрдВ
рдЙрдкрд░реЛрдХреНрдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ Fvi рдФрд░ Lvi, рд╕рд╛рде рд╣реА рдПрдХ рдЕрдкрд╡рд╛рдж рдЬреЛрдбрд╝реЗрдВред
DLL_EXPORT BOOL __stdcall Price(const MSXDataRec *a_psBasic, const MSXDataInfoRecArgsArray *a_psArrayArgs, const MSXNumericArgsArray *a_psNumericArgs, const MSXStringArgsArray *a_psStringArgs, const MSXCustomArgsArray *a_psCustomArgs, MSXResultRec *a_psResult) { BOOL l_bRtrn = MSX_SUCCESS; for (int i= a_psBasic ->sClose.iFirstValid; i<= a_psBasic ->sClose.iLastValid; i++) a_psResult->psResultArray->pfValue[ i ] = a_psBasic ->sClose.pfValue[ i ]; // . a_psResult->psResultArray->iFirstValid = a_psBasic->sClose.iFirstValid; a_psResult->psResultArray->iLastValid = a_psBasic->sClose.iLastValid; // if (a_psResult->psResultArray->iFirstValid < 0 || a_psResult->psResultArray->iLastValid < 0 || a_psResult->psResultArray->iLastValid < a_psResult->psResultArray->iFirstValid || a_psResult->psResultArray->iFirstValid < a_psBasic->sClose.iFirstValid || a_psResult->psResultArray->iLastValid > a_psBasic->sClose.iLastValid) l_bRtrn = MSX_ERROR; // , . if (l_bRtrn != MSX_SUCCESS) { strncpy (a_psResult->szExtendedError, "Error: Corrupted Result Array.", sizeof(a_psResult->szExtendedError)-1); a_psResult->psResultArray->iFirstValid = 0; a_psResult->psResultArray->iLastValid = -1; } return l_bRtrn; }
рдлрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ
рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, stdio.h рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ред
тАв <ainclude <stdio.h>
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдлрд╝рд╛рдЗрд▓ рдкреЙрдЗрдВрдЯрд░ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рдХрд╛ рдПрдХ рдСрдкрд░реЗрдЯрд░: рдлрд╛рдЗрд▓ * рдлрд╛рдЗрд▓ (рд╕реНрдЯреНрд░реАрдо рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝реЛрдкреЗрди () рдлрд╝рдВрдХреНрд╢рди рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░реАрдо рдЦреЛрд▓рддрд╛ рд╣реИ, рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкреЙрдЗрдВрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рдореНрди рд░реВрдк рд╣реИ:
тАв рдлрд╝рд╛рдЗрд▓ = рдлрд╝реЛрдкреЗрди ("рдлрд╝рд╛рдЗрд▓ рдкрде", "рдлрд╝рд╛рдЗрд▓ рдСрдкрд░реЗрд╢рди рдореЛрдб")ред
W рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Fprintf () рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ:
тАв fprintf (рдлрд╝рд╛рдЗрд▓, [рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ], [рдЪрд░ рдХреА рд╕реВрдЪреА, рд╕реНрдерд┐рд░рд╛рдВрдХ])ред
Fclose () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрдкреЗрди () рдХреЗ рд╕рд╛рде рдЦреЛрд▓реЗ рдЧрдП рд╕реНрдЯреНрд░реАрдо рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
тАв fclose (рдлрд╝рд╛рдЗрд▓)
рдлреЗрдХрд▓реЙрдЬрд╝ () рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЬреБрдбрд╝реЗ рдлрд╝рд╛рдЗрд▓ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдмрдирд╛рддрд╛ рд╣реИред
тАв рдлрд╝рд╛рдЗрд▓ = рдлрд╝реЛрдкреЗрди ("рдлрд╝рд╛рдЗрд▓ рдкрде", "рдлрд╝рд╛рдЗрд▓ рдСрдкрд░реЗрд╢рди рдореЛрдб")ред
W рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Fprintf () рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ:
тАв fprintf (рдлрд╝рд╛рдЗрд▓, [рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ], [рдЪрд░ рдХреА рд╕реВрдЪреА, рд╕реНрдерд┐рд░рд╛рдВрдХ])ред
Fclose () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрдкреЗрди () рдХреЗ рд╕рд╛рде рдЦреЛрд▓реЗ рдЧрдП рд╕реНрдЯреНрд░реАрдо рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
тАв fclose (рдлрд╝рд╛рдЗрд▓)
рдлреЗрдХрд▓реЙрдЬрд╝ () рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЬреБрдбрд╝реЗ рдлрд╝рд╛рдЗрд▓ рдирд┐рдпрдВрддреНрд░рдг рдмреНрд▓реЙрдХ рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдмрдирд╛рддрд╛ рд╣реИред
рдЪрд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ: рд╕реЗрдВрдЯреНрд░рд▓ рдмреИрдВрдХ рдХрд╛ рдирд╛рдо, рдЕрд╡рдзрд┐ ('рдбреА', 'W'eekly,' M'onthly, 'Q'uarterly,' llntraday), рдЗрдВрдбреЗрдХреНрд╕, рд╣рдорд╛рд░реЗ рд╕рдВрдХреЗрддрдХ, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдордп рдФрд░ рджрд┐рдирд╛рдВрдХред
DLL_EXPORT BOOL __stdcall Price(const MSXDataRec *a_psBasic, const MSXDataInfoRecArgsArray *a_psArrayArgs, const MSXNumericArgsArray *a_psNumericArgs, const MSXStringArgsArray *a_psStringArgs, const MSXCustomArgsArray *a_psCustomArgs, MSXResultRec *a_psResult) { BOOL l_bRtrn = MSX_SUCCESS; FILE *file; file = fopen("D:\\example.txt", "w"); for (int i= a_psBasic ->sClose.iFirstValid; i<= a_psBasic ->sClose.iLastValid; i++) { a_psResult->psResultArray->pfValue[ i ] = a_psBasic ->sClose.pfValue[ i ]; if (file) fprintf(file, "%-10s %2c %5u %12.4f %5u %10u\n", a_psBasic ->pszSecurityName, a_psBasic ->iPeriod, i, double (a_psResult->psResultArray->pfValue[i]), a_psBasic ->psDate[i].lTime/1000, a_psBasic ->psDate[i].lDate); } fclose(file); // . a_psResult->psResultArray->iFirstValid = a_psBasic->sClose.iFirstValid; a_psResult->psResultArray->iLastValid = a_psBasic->sClose.iLastValid; // if (a_psResult->psResultArray->iFirstValid < 0 || a_psResult->psResultArray->iLastValid < 0 || a_psResult->psResultArray->iLastValid < a_psResult->psResultArray->iFirstValid || a_psResult->psResultArray->iFirstValid < a_psBasic->sClose.iFirstValid || a_psResult->psResultArray->iLastValid > a_psBasic->sClose.iLastValid) l_bRtrn = MSX_ERROR; // , . if (l_bRtrn != MSX_SUCCESS) { strncpy (a_psResult->szExtendedError, "Error: Corrupted Result Array.", sizeof(a_psResult->szExtendedError)-1); a_psResult->psResultArray->iFirstValid = 0; a_psResult->psResultArray->iLastValid = -1; } return l_bRtrn; }
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдЖрд░рдЯреАрдПрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рд╡рд╛рдпрджрд╛ рдХреЗ рдПрдХ рдорд┐рдирдЯ рдХреЗ рдЪрд╛рд░реНрдЯ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рд╛:
example.txt
SP_RTS_1m I 1 112310.0000 1725 20140417 SP_RTS_1m I 2 112320.0000 1726 20140417 SP_RTS_1m I 3 112130.0000 1727 20140417 ... SP_RTS_1m I 497 117150.0000 1336 20140418 SP_RTS_1m I 498 117170.0000 1337 20140418 SP_RTS_1m I 499 117200.0000 1338 20140418 SP_RTS_1m I 500 117190.0000 1339 20140418
рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред