|
Abstract of FETS 'C' Programming Code
/*
* Authors : Francis
Lim
* Course : Master of Science in
Information Studies
* System : Financial Trading
Expert System
* Progamming Language
: Metrowerks IDE v 4.0, Macintosh Platform OS
9.1
* Description : Data Flow
Diagrams
* FileName :
stocks_finmkt_model.cpp
* Created : 01 September 2000
* Last Modified : 31 June 2001
*/
class
MovingAverage{
public:
double MA1;
double MA2;
double MA3;
};
class
MovAvgSpread{
public:
double S1;
double S2;
double S3;};
class
TrendMover{
public:
int
UpTrend;
int
DownTrend;
double
Lowest;
double
Highest;
double
ChgInPrice;
};
class
StopLossProfit{
public:
double
StopLoss;
double
StopProfit;};
class
NetworkWeights{
public:
bool MAvgEntry;
bool
MAvgExit;
bool
UpTrend;
bool
DownTrend;
bool
StopProfit;
bool
StopLoss;
bool
EntrySignal;
bool
ExitSignal;
bool
HoldSignal;
char
BuySignal;
char
SellSignal;
double
BuyPrice;
double
SellPrice;
double
Profit;};
class
NetWorkBuySellSignal{
public:
bool
BSSignal;
long
BSRec;};
class
FinModelndicators{
public:
MovingAverage MAvg;
MovAvgSpread
MASpread;
TrendMover
TMov;
StopLossProfit SLP;
NetworkWeights NW;
TimeSeriesData Eq;};
class
EquitySummaryRpt{
public:
char
StockSymbol[32];
char
Market[25];
char
Sector[25];
long
TDFromDate;
long
TDToDate;
long
ContractSize;
double PLPosition; // Profit and
Loss Account
double NetPL;
double
GrossProfit;
double
GrossLoss;
double PercProfitTD; // Percent Profitable
Trade
long TotalTD;
// Total Trades Invested
long WinTD; // Number of Winning
Trades
long LossTD; // Number of Losing
Trades
double LWinTD; // Largest Winning
Trade
double LLossTD; // Largest Losing
Trade
double AvgWinTD; // Average Winning
Trade
double AvgLossTD; // Average Losing
Trade
double RAvgWinLossTD; // Ratio
Average Winning and Losing Trade
double PercReturnAcc; // Percent
Return On Account;
double InitMktCapital; // Initial
Market Capital;};
class
SimulateEquityTrading{
public:
char
StockSymbol[31];
long EqRec,
BufferLen;
char
DataBuffer[DATABUFFER];
char
EqTradeDir[CHRSTR256];
char
EqTradeRptDir[CHRSTR256];
char
EqSimuFName[CHRSTR256];
char
EqFName[CHRSTR256];
EquitySummaryRpt ESR;
FinModelndicators
FMI[10000];
NetWorkBuySellSignal
NBS;};
SimulateEquityTrading
SEQT;
FinModelndicators
init_FinModelndicators (FinModelndicators
FMI);
double
normalize_MovingAverage (int maPeriod, long
rec);
double
normalize_MA_Spread (int maPeriod, long rec, double maValA, double
maValB);
double
percentage_Change_In_lastprice (long rec, double prValA, double
prValB);
double
normalize_HighestHigh (int hiPeriod, long
rec);
double
normalize_LowestLow (int loPeriod, long rec);
bool
moving_Average_UpSignal (int maPeriod, long rec, MovingAverage
MAvg);
bool
moving_Average_DownSignal (int maPeriod, long rec, MovingAverage
MAvg);
bool train_BuySignal
(int maPeriod, long rec, int hiPeriod, int tmovUp, bool
maEntryState, NetWorkBuySellSignal NBS);
bool
train_StopProfitSignal (int maPeriod, long rec, double
stopProfitPerc, NetWorkBuySellSignal NBS, TimeSeriesData T1,
TimeSeriesData T2);
bool
train_StopLossSignal (int maPeriod, long rec, double stopLossPerc,
NetWorkBuySellSignal NBS, TimeSeriesData T1, TimeSeriesData
T2);
bool train_SellSignal
(int maPeriod, long rec, int tmovDown, bool maExitState,
NetWorkBuySellSignal NBS);
bool train_HoldSignal
(int maPeriod, long rec, TimeSeriesData Eq, TrendMover TMov,
NetWorkBuySellSignal NBS);
bool
train_HoldSignal_Ext (int maPeriod, long rec, TimeSeriesData Eq,
TrendMover TMov1, TrendMover TMov2, NetWorkBuySellSignal
NBS);
bool
train_HoldSignal_Ext1 (int maPeriod, long rec, TrendMover TMov1,
TrendMover TMov2, NetWorkBuySellSignal NBS);
bool
train_HoldSignal_Ext2 (int maPeriod, long rec, TimeSeriesData Eq,
TrendMover TMov1, TrendMover TMov2, NetWorkBuySellSignal
NBS);
NetWorkBuySellSignal
rec_Network_EntrySignal (int maPeriod, long rec, double avgPrice,
double priceRatio, bool sigEntryState, NetWorkBuySellSignal
NBS);
NetWorkBuySellSignal
rec_Network_ExitSignal (int maPeriod, long rec, bool sigExitState,
NetWorkBuySellSignal NBS);
void
write_simu_equity_stats (char *filename);
EquitySummaryRpt
init_Equity_Performance_Report (EquitySummaryRpt
ESR);
EquitySummaryRpt
equity_Performance_Report (char *filename, bool initStatus,
EquitySummaryRpt ESR);
|