├── divergeIndex ├── divergeIndex.m ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat │ └── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat ├── backtestDemo_divergeIndex.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_divergeIndex.xml ├── UserContinousContractCfg.xml └── BackTestCfg_divergeIndex.xml ├── MACDHist ├── backtestDemo_MACDHist.m ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── LCP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── LCP_DAY01_1.mat │ ├── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat │ ├── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat │ └── mainContinousContract_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── mainContinousContract_DAY01_1.mat ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_MACDHist.xml ├── UserContinousContractCfg.xml ├── Archive - Default Function ├── MACDHist.m └── BackTestCfg_MACDHist.xml ├── NEIStrat ├── backtestDemo_NEIStrat.m ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_NEIStrat.xml ├── UserContinousContractCfg.xml ├── NEIStrat.m └── BackTestCfg_NEIStrat.xml ├── saittaStrat ├── saittaStrat20130704T090036.mat ├── saittaStrat20130704T090110.mat ├── saittaStrat20130704T090237.mat ├── cacheData │ ├── CP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CP_DAY01_1.mat │ ├── CQ_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CQ_DAY01_1.mat │ ├── HIP_DAY01 │ │ ├── HIP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── LOP_DAY01 │ │ ├── LOP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat │ └── Rtn_DAY01 │ │ ├── Rtn_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat ├── backtestDemo_saittaStrat.m ├── report_abccab3d-c10a-4e4f-a091-607e416b6ccf.xlsx ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_saittaStrat.xml ├── saittaStrat.m └── BackTestCfg_saittaStrat.xml ├── simpleMACO ├── simpleMACO20130704T085549.mat ├── backtestDemo_simpleMACO.m ├── report_dce703b7-6d74-48d2-ac62-43a54a8399fb.xlsx ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_simpleMACO.xml ├── UserContinousContractCfg.xml ├── simpleMACO.m └── BackTestCfg_simpleMACO.xml ├── bollingerBands ├── cacheData │ ├── CP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CP_DAY01_1.mat │ ├── HIP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── HIP_DAY01_1.mat │ ├── LOP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── LOP_DAY01_1.mat │ ├── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat │ └── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat ├── backtestDemo_bollingerBands.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_bollingerBands.xml ├── UserContinousContractCfg.xml ├── bollingerBands.m └── BackTestCfg_bollingerBands.xml ├── ichimokuCloud ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── backtestDemo_ichimokuCloud.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_ichimokuCloud.xml ├── ichimokuCloud.m └── BackTestCfg_ichimokuCloud.xml ├── keltnerChannel ├── cacheData │ ├── CP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CP_DAY01_1.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── backtestDemo_keltnerChannel.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_keltnerChannel.xml ├── keltnerChannel.m └── BackTestCfg_keltnerChannel.xml ├── timeFilterMACO ├── cacheData │ ├── CP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CP_DAY01_1.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── backtestDemo_timeFilterMACO.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_timeFilterMACO.xml ├── UserContinousContractCfg.xml ├── timeFilterMACO.m └── BackTestCfg_timeFilterMACO.xml ├── volumeReversal ├── cacheData │ ├── CP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CP_DAY01_1.mat │ ├── CQ_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── CQ_DAY01_1.mat │ ├── HIP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── HIP_DAY01_1.mat │ ├── LOP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── LOP_DAY01_1.mat │ ├── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat │ └── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat ├── backtestDemo_volumeReversal.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_volumeReversal.xml ├── volumeReversal.m └── BackTestCfg_volumeReversal.xml ├── fastStochastics ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── CQ_DAY01 │ │ ├── CQ_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── HIP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── HIP_DAY01_1.mat │ ├── LOP_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── LOP_DAY01_1.mat │ ├── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── backtestDemo_fastStochastics.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_fastStochastics.xml ├── fastStochastics.m └── BackTestCfg_fastStochastics.xml ├── slowStochastics ├── cacheData │ ├── CP_DAY01 │ │ ├── CP_DAY01_1.mat │ │ ├── changeNum.mat │ │ └── manageVar.mat │ ├── Rtn_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── Rtn_DAY01_1.mat │ └── OBPD_DAY01 │ │ ├── changeNum.mat │ │ ├── manageVar.mat │ │ └── OBPD_DAY01_1.mat ├── backtestDemo_slowStochastics.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_slowStochastics.xml ├── slowStochastics.m └── BackTestCfg_slowStochastics.xml ├── augmentedMACO ├── backtestDemo_augmentedMACO.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_augmentedMACO.xml ├── augmentedMACO.m └── BackTestCfg_augmentedMACO.xml ├── exponentialMACO ├── backtestDemo_exponentialMACO.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── StrategyCfg_exponentialMACO.xml ├── UserContinousContractCfg.xml ├── exponentialMACO.m └── BackTestCfg_exponentialMACO.xml ├── adjustedStochastic ├── backtestDemo_adjustedStochastic.m ├── CustomTradingPeriod.xml ├── Stkcd.xml ├── UserContinousContractCfg.xml ├── StrategyCfg_adjustedStochastic.xml ├── adjustedStochastic.m └── BackTestCfg_adjustedStochastic.xml ├── .gitattributes ├── README.md └── .gitignore /divergeIndex/divergeIndex.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/divergeIndex.m -------------------------------------------------------------------------------- /MACDHist/backtestDemo_MACDHist.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_MACDHist.xml', 'BackTestCfg_MACDHist.xml', '2009-06-06', '2012-06-06') 2 | 3 | -------------------------------------------------------------------------------- /MACDHist/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/LCP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/LCP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/LCP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/LCP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /NEIStrat/backtestDemo_NEIStrat.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_NEIStrat.xml', 'BackTestCfg_NEIStrat.xml', '2010-06-07', '2013-06-25') 2 | 3 | -------------------------------------------------------------------------------- /NEIStrat/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/saittaStrat20130704T090036.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/saittaStrat20130704T090036.mat -------------------------------------------------------------------------------- /saittaStrat/saittaStrat20130704T090110.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/saittaStrat20130704T090110.mat -------------------------------------------------------------------------------- /saittaStrat/saittaStrat20130704T090237.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/saittaStrat20130704T090237.mat -------------------------------------------------------------------------------- /simpleMACO/simpleMACO20130704T085549.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/simpleMACO/simpleMACO20130704T085549.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/LCP_DAY01/LCP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/LCP_DAY01/LCP_DAY01_1.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CQ_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CQ_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CQ_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CQ_DAY01/manageVar.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /NEIStrat/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/NEIStrat/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/CQ_DAY01/CQ_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/CQ_DAY01/CQ_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/HIP_DAY01/HIP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/HIP_DAY01/HIP_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/HIP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/HIP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/HIP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/HIP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/LOP_DAY01/LOP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/LOP_DAY01/LOP_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/LOP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/LOP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/LOP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/LOP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /saittaStrat/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /simpleMACO/backtestDemo_simpleMACO.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_simpleMACO.xml', 'BackTestCfg_simpleMACO.xml', '2013-06-07', '2013-06-25') 2 | 3 | -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CQ_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CQ_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CQ_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CQ_DAY01/manageVar.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/HIP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/HIP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/HIP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/HIP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/LOP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/LOP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/LOP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/LOP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /divergeIndex/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CQ_DAY01/CQ_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CQ_DAY01/CQ_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CQ_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CQ_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/CQ_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/CQ_DAY01/manageVar.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/HIP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/HIP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/HIP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/HIP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/LOP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/LOP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/LOP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/LOP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /saittaStrat/backtestDemo_saittaStrat.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_saittaStrat.xml', 'BackTestCfg_saittaStrat.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /saittaStrat/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/CP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/CP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/CP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/CP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CP_DAY01/CP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CP_DAY01/CP_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/CQ_DAY01/CQ_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/CQ_DAY01/CQ_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/HIP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/HIP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/HIP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/HIP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/LOP_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/LOP_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/LOP_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/LOP_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/Rtn_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/Rtn_DAY01/changeNum.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/Rtn_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/Rtn_DAY01/manageVar.mat -------------------------------------------------------------------------------- /augmentedMACO/backtestDemo_augmentedMACO.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_augmentedMACO.xml', 'BackTestCfg_augmentedMACO.xml', '2009-06-07', '2012-06-25') 2 | 3 | -------------------------------------------------------------------------------- /bollingerBands/cacheData/HIP_DAY01/HIP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/HIP_DAY01/HIP_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/LOP_DAY01/LOP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/LOP_DAY01/LOP_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/bollingerBands/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /divergeIndex/backtestDemo_divergeIndex.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_divergeIndex.xml', 'BackTestCfg_divergeIndex.xml', '2009-06-06', '2012-06-24') 2 | 3 | -------------------------------------------------------------------------------- /divergeIndex/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/divergeIndex/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/HIP_DAY01/HIP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/HIP_DAY01/HIP_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/LOP_DAY01/LOP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/LOP_DAY01/LOP_DAY01_1.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /fastStochastics/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /ichimokuCloud/backtestDemo_ichimokuCloud.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_ichimokuCloud.xml', 'BackTestCfg_ichimokuCloud.xml', '2009-06-12', '2012-06-30') 2 | 3 | -------------------------------------------------------------------------------- /ichimokuCloud/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/ichimokuCloud/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /keltnerChannel/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/keltnerChannel/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/OBPD_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/OBPD_DAY01/changeNum.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/OBPD_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/OBPD_DAY01/manageVar.mat -------------------------------------------------------------------------------- /slowStochastics/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /timeFilterMACO/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/timeFilterMACO/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/HIP_DAY01/HIP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/HIP_DAY01/HIP_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/LOP_DAY01/LOP_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/LOP_DAY01/LOP_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /volumeReversal/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/volumeReversal/cacheData/Rtn_DAY01/Rtn_DAY01_1.mat -------------------------------------------------------------------------------- /bollingerBands/backtestDemo_bollingerBands.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_bollingerBands.xml', 'BackTestCfg_bollingerBands.xml', '2009-06-07', '2012-06-25') 2 | 3 | -------------------------------------------------------------------------------- /fastStochastics/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/fastStochastics/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /keltnerChannel/backtestDemo_keltnerChannel.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_keltnerChannel.xml', 'BackTestCfg_keltnerChannel.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /slowStochastics/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/slowStochastics/cacheData/OBPD_DAY01/OBPD_DAY01_1.mat -------------------------------------------------------------------------------- /timeFilterMACO/backtestDemo_timeFilterMACO.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_timeFilterMACO.xml', 'BackTestCfg_timeFilterMACO.xml', '2013-06-07', '2013-06-25') 2 | 3 | -------------------------------------------------------------------------------- /volumeReversal/backtestDemo_volumeReversal.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_volumeReversal.xml', 'BackTestCfg_volumeReversal.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /exponentialMACO/backtestDemo_exponentialMACO.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_exponentialMACO.xml', 'BackTestCfg_exponentialMACO.xml', '2013-06-07', '2013-06-25') 2 | 3 | -------------------------------------------------------------------------------- /fastStochastics/backtestDemo_fastStochastics.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_fastStochastics.xml', 'BackTestCfg_fastStochastics.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /slowStochastics/backtestDemo_slowStochastics.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_slowStochastics.xml', 'BackTestCfg_slowStochastics.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /simpleMACO/report_dce703b7-6d74-48d2-ac62-43a54a8399fb.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/simpleMACO/report_dce703b7-6d74-48d2-ac62-43a54a8399fb.xlsx -------------------------------------------------------------------------------- /MACDHist/cacheData/mainContinousContract_DAY01/changeNum.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/mainContinousContract_DAY01/changeNum.mat -------------------------------------------------------------------------------- /MACDHist/cacheData/mainContinousContract_DAY01/manageVar.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/mainContinousContract_DAY01/manageVar.mat -------------------------------------------------------------------------------- /adjustedStochastic/backtestDemo_adjustedStochastic.m: -------------------------------------------------------------------------------- 1 | obj = StrategyBackTest('StrategyCfg_adjustedStochastic.xml', 'BackTestCfg_adjustedStochastic.xml', '2009-06-11', '2012-06-29') 2 | 3 | -------------------------------------------------------------------------------- /saittaStrat/report_abccab3d-c10a-4e4f-a091-607e416b6ccf.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/saittaStrat/report_abccab3d-c10a-4e4f-a091-607e416b6ccf.xlsx -------------------------------------------------------------------------------- /MACDHist/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MACDHist/cacheData/mainContinousContract_DAY01/mainContinousContract_DAY01_1.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sup/QIA-trading-strategies/master/MACDHist/cacheData/mainContinousContract_DAY01/mainContinousContract_DAY01_1.mat -------------------------------------------------------------------------------- /NEIStrat/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /saittaStrat/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /simpleMACO/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MACDHist/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /NEIStrat/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /augmentedMACO/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /bollingerBands/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /divergeIndex/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /divergeIndex/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /exponentialMACO/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /fastStochastics/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /ichimokuCloud/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /keltnerChannel/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /saittaStrat/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /simpleMACO/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /slowStochastics/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /timeFilterMACO/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /volumeReversal/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /adjustedStochastic/CustomTradingPeriod.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /augmentedMACO/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /bollingerBands/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /exponentialMACO/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /fastStochastics/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ichimokuCloud/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /keltnerChannel/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /slowStochastics/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /timeFilterMACO/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /volumeReversal/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /adjustedStochastic/Stkcd.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /MACDHist/StrategyCfg_MACDHist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /NEIStrat/StrategyCfg_NEIStrat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /simpleMACO/StrategyCfg_simpleMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /divergeIndex/StrategyCfg_divergeIndex.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /bollingerBands/StrategyCfg_bollingerBands.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /timeFilterMACO/StrategyCfg_timeFilterMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /exponentialMACO/StrategyCfg_exponentialMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MACDHist/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NEIStrat/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /augmentedMACO/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /bollingerBands/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /divergeIndex/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ichimokuCloud/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /keltnerChannel/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /saittaStrat/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /simpleMACO/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /timeFilterMACO/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /volumeReversal/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /adjustedStochastic/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exponentialMACO/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /fastStochastics/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /slowStochastics/UserContinousContractCfg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /augmentedMACO/StrategyCfg_augmentedMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /volumeReversal/StrategyCfg_volumeReversal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /ichimokuCloud/StrategyCfg_ichimokuCloud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /keltnerChannel/StrategyCfg_keltnerChannel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /slowStochastics/StrategyCfg_slowStochastics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /adjustedStochastic/StrategyCfg_adjustedStochastic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fastStochastics/StrategyCfg_fastStochastics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /saittaStrat/StrategyCfg_saittaStrat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | QIATrading 2 | ========== 3 | 4 | This is a collection of trading strategies to be used with GTA Finance and Education's 5 | QIA and iQuant products. These include indicators, channel breakouts, and trend-following strategies and have been backtested on historical Shenzhen Stock Exchange and Shanghai Stock Exchange time series data. 6 | 7 | Strategies 8 | ---------- 9 | 10 | * Fast Stochastics 11 | * Slow Stochastics 12 | * Adjusted Stochastics 13 | * Simple Moving Average Cross-over 14 | * Exponential Moving Average Cross-over 15 | * Time-Filtered Moving Average Cross-over 16 | * Augmented Moving Average Cross-over 17 | * Bollinger Bands 18 | * Divergence Index 19 | * Normalized Envelope Indicator 20 | * Keltner Channels 21 | * MACD Histogram Retracement 22 | * Volume Reversal 23 | * Saitta Support and Resistance 24 | * Ichimoku Clouds (Strong Signal Filtered) 25 | -------------------------------------------------------------------------------- /MACDHist/Archive - Default Function: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = MACDHist( decisionData, stateMatrix ) 2 | 3 | %²ßÂÔ¾ö²ßËùÐèÒªµÄÊý¾Ý£¬Æä×Ö¶ÎÄÚÈÝÓɲßÂÔÊý¾ÝÅäÖÃÎļþStrategyCfg_simpleDemo.xml¾ö¶¨ 4 | decisionData; 5 | 6 | %²ßÂÔ¾ö²ßÊý¾ÝµÄ²É¼¯Ê±¼ä 7 | decisionData.time; 8 | 9 | %²ßÂÔ¾ö²ßÊý¾ÝµÄÒò×Ó×Ö¶ÎÁбí 10 | decisionData.varList; 11 | 12 | %²ßÂÔ¾ö²ßÊý¾ÝµÄµÚÒ»¸öÒò×Ó×ֶεĹ«Ë¾´úÂëÁбí 13 | decisionData.(decisionData.varList{1}).tickerList; 14 | 15 | %²ßÂÔ¾ö²ßÊý¾ÝµÄµÚÒ»¸öÒò×Ó×ֶεÄʱ¼äÖáÁбí 16 | decisionData.(decisionData.varList{1}).timeList 17 | 18 | %²ßÂÔ¾ö²ßÊý¾ÝµÄµÚÒ»¸öÒò×Ó×ֶεÄÊý¾Ý¾ØÕó£¬ÐÐË÷ÒýΪ¹«Ë¾´úÂëÁÐ±í£¬ÁÐË÷ÒýΪʱ¼äÖáÁбí 19 | decisionData.(decisionData.varList{1}).data; 20 | 21 | %²ßÂÔ¾ö²ßÊý¾ÝµÄµÚÒ»¸öÒò×Ó×ֶεÄ×Ö¶ÎÃû 22 | decisionData.(decisionData.varList{1}).fieldName; 23 | 24 | %²ßÂÔ¾ö²ßÊý¾ÝµÄµÚÒ»¸öÒò×Ó×ֶεÄʱ¼äÖáµÄ²ÉÑùƵÂÊ 25 | decisionData.(decisionData.varList{1}).frequency; 26 | 27 | %²ßÂÔ¾ö²ßÊý¾ÝµÄ¹«Ë¾Áбí 28 | tickerList = decisionData.(decisionData.varList{1}).tickerList; 29 | 30 | %·µ»Ø²ßÂÔµÄÄ¿±êͶ×飬´Ë²ßÂÔ½«½¨Á¢Ò»¸öƽ¾ù·ÖÅä×ʽðµÄͶ×Ê×éºÏ£¬ÆäÖÐportfolioµÄά¶È±ØÐëºÍ²ßÂÔ¾ö²ßÊý¾ÝµÄ¹«Ë¾ÁбíÒ»Ñù 31 | portfolio = ones(size( tickerList ))/length( tickerList ); 32 | 33 | %±£´æ×´Ì¬¾ØÕó 34 | newStateMatrix = stateMatrix; 35 | end 36 | 37 | %<-------------------------------END DEFAULT FUNCTION------------------------------------> -------------------------------------------------------------------------------- /exponentialMACO/exponentialMACO.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = exponentialMACO( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % exponentialMACO - An Exponential Moving Average Crossover Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: leadMA - the leading moving average line 7 | % lagMA - the lagging moving average line 8 | 9 | % Description: The Simple Moving Average Crossover Strategy is a basic, yet effective 10 | % trading strategy in trending markets. Simply buy when the lead>lag and 11 | % short/sell if the lead lagMA(end)) 31 | portfolio = 1; 32 | elseif (leadMA(end) < lagMA(end)) 33 | portfolio = -1; 34 | %Else our portfolio remains the same 35 | else 36 | portfolio = stateMatrix.portfolio; 37 | end 38 | % Update the stateMatrix/Portfolio postions 39 | newStateMatrix = stateMatrix; 40 | newStateMatrix.portfolio = portfolio; 41 | end -------------------------------------------------------------------------------- /simpleMACO/simpleMACO.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = simpleMACO( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % simpleMACO - Simple Moving Average Crossover Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: leadMA - the leading moving average line 7 | % lagMA - the lagging moving average line 8 | 9 | % Description: The Simple Moving Average Crossover Strategy is a basic, yet effective 10 | % trading strategy in trending markets. Simply buy when the lead>lag and 11 | % short/sell if the lead lagMA(end)) 33 | portfolio = 1; 34 | elseif (leadMA(end) < lagMA(end)) 35 | portfolio = -1; 36 | %Else our portfolio remains the same 37 | else 38 | portfolio = stateMatrix.portfolio; 39 | end 40 | % Update the stateMatrix/Portfolio postions 41 | newStateMatrix = stateMatrix; 42 | newStateMatrix.portfolio = portfolio; 43 | end -------------------------------------------------------------------------------- /bollingerBands/bollingerBands.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = bollingerBands( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % bollingerBands - A Bollinger Band Strategy 5 | % Type: Trend Following - Channel Breakout Strategy 6 | % Parameters: 7 | % Description: The Bollinger Band strategy is a type of channel breakout trading 8 | % strategy using a volatility indicator similar to a Keltner Channel. 9 | % 10 | % Specifiically, this is a simple Bollinger Band strategy that works 11 | % well for securities that never trend. The theory is that the stock 12 | % valuation is fair and that the price shouldn't deviate much from a 13 | % historical moving average. If the price does deviate from that MA, 14 | % we bet in the opposite direction, i.e., that the stock should return 15 | % to its fair valuation. This is similar to a contrarian moving average 16 | % crossover strategy, but utilizing volatility as a channel for arbitrage. 17 | % 18 | % NOTE: I've noticed that Chinese stocks seems to behave contrary to some traditional strategies 19 | % In that it is very profitable to use a contrarian trading strategy. Adjust as needed. 20 | 21 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 22 | if isempty(stateMatrix) 23 | portfolio = zeros(1,1); 24 | stateMatrix.portfolio = portfolio; 25 | end 26 | % Calculate the required variables: Price Vector 27 | portfolio = stateMatrix.portfolio; 28 | cp = decisionData.CP_DAY01.data; 29 | % Calculate the Bollinger Bands and the Moving Average. 30 | [~, upperBand, lowerBand] = bollinger(cp); 31 | % Using these variables, recalulate the appropriate postion for our portfolio 32 | % In this case, we bet in the opposite direction of the trend 33 | if (cp(end) < lowerBand(end)) 34 | portfolio = 1; 35 | elseif (cp(end) > upperBand(end)) 36 | portfolio = -1; 37 | %Else our portfolio remains the same as the las position. 38 | else 39 | portfolio = stateMatrix.portfolio; 40 | end 41 | % Update the stateMatrix/Portfolio postions 42 | newStateMatrix = stateMatrix; 43 | newStateMatrix.portfolio = portfolio; 44 | end 45 | -------------------------------------------------------------------------------- /fastStochastics/fastStochastics.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = fastStochastics( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % fastStochastics - Fast Stochastics %K Trading Strategy 5 | % Type: Price Oscillator 6 | % Parameters: kStoch - %k Stochastic = (Today's Close - Lowest Low)/(Highest High - Lowest Low) 7 | % dStoch - %D Stochastic = 3-Day SMA of the %K vector 8 | % 9 | % Description: The Fast %K Stochastics trading strategy is a price oscillator trading strategy 10 | % that compares current prices to the high and low range over a look-back period 11 | % (default = 2 week look-back period). If the fast %K rises above 30 with a cross 12 | % above the fast %D stochastic, we buy. Else if the fast %K dips below 80 with a cross 13 | % below the fast %D stochastic, we sell/short. 14 | % NOTE: I've noticed that a low of strategies are more profitable when created in a contrarian way 15 | % I have no idea why. 16 | 17 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 18 | if isempty(stateMatrix) 19 | portfolio = zeros(1,1); 20 | stateMatrix.portfolio = portfolio; 21 | end 22 | % Calculate the required variables: Price Vectors for closing, highs, and lows. 23 | portfolio = stateMatrix.portfolio; 24 | cp = decisionData.CP_DAY01.data; 25 | hip = decisionData.HIP_DAY01.data; 26 | lop = decisionData.LOP_DAY01.data; 27 | % Calculate the raw %K Stochastic 28 | counter = 0; 29 | kStoch = zeros(1, 100); 30 | dStoch = zeros(1, 100); %Initialize the raw %D Stochastic 31 | while (counter < 100) 32 | periodLow = min(lop(end-counter-14:end-counter)); 33 | periodHigh = max(hip(end-counter-14:end-counter)); 34 | counter = counter + 1; 35 | kStoch(1, counter) = ((cp(end) - periodLow)/(periodHigh-periodLow))*100; 36 | end 37 | % Reverse the %K Stochastic Vector in order to do have the most recent value at the end 38 | % Calculate the %D Stochastic Vector 39 | kStoch = fliplr(kStoch); 40 | [dStoch] = movavg(kStoch, 3, 3); 41 | % Recalculate our portfolio positions 42 | if (kStoch(end) > 30 && kStoch(end) > dStoch(end)) 43 | portfolio = 1; 44 | elseif (kStoch(end) < 80 && kStoch(end) < dStoch(end)) 45 | portfolio = -1; 46 | % Else our portfolio remains the same 47 | else 48 | portfolio = stateMatrix.portfolio; 49 | end 50 | % Update the stateMatrix/Portfolio postions 51 | newStateMatrix = stateMatrix; 52 | newStateMatrix.portfolio = portfolio; 53 | end -------------------------------------------------------------------------------- /augmentedMACO/augmentedMACO.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = augmentedMACO( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % augmentedMACO - Augmented Moving Average Crossover Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: leadMA - the leading moving average line 7 | % lagMA - the lagging moving average line 8 | % 9 | % Description: The Simple Moving Average Crossover Strategy is a basic, yet effective 10 | % trading strategy in trending markets. However, if there aren't measures 11 | % in place to prevent rapid buy/sell signals in a stagnant market, the basic Simple 12 | % Moving Average Crossover will cause a significant loss of capital. 13 | % 14 | % This strategy will attempt to augment the basic dual MACO strategy with stop-loss 15 | % measures to prevent whipsawing using my own unique filters. 16 | 17 | % NOTE: I've noticed that Chinese stocks seems to behave contrary to the traditional MACO strategy 18 | % In that it is very profitable to short uptrends and long downtrends. I have no clue why. 19 | 20 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 21 | if isempty(stateMatrix) 22 | portfolio = zeros(1,1); 23 | stateMatrix.portfolio = portfolio; 24 | end 25 | % Calculate the required variables: Price Vector 26 | portfolio = stateMatrix.portfolio; 27 | cp = decisionData.CP_DAY01.data; 28 | volume = decisionData.CQ_DAY01.data; 29 | % Calculate the dual simple moving averages: In this case with a lead of 21 days 30 | % and a lag of 55 days. 31 | [leadMA, lagMA] = movavg(cp, 21, 55); 32 | [volumeLead, volumeLag] = movavg(volume, 21, 55); 33 | % Using these variables, recalulate the appropraite postion for our portfolio 34 | % If the cross over occurs without volume taken into account, take a half position in the security 35 | if (leadMA(end) > lagMA(end)) 36 | portfolio = .5; 37 | elseif (leadMA(end) < lagMA(end) 38 | portfolio = -.5; 39 | end 40 | % If our volume condition is valid, take a full position in the security 41 | if (leadMA(end) > lagMA(end) && volumeLead(end) > volumeLag(end)) 42 | portfolio = 1; 43 | elseif (leadMA(end) < lagMA(end) && volumeLead(end) < volumeLag(end)) 44 | portfolio = -1; 45 | %Else our portfolio remains the same 46 | else 47 | portfolio = stateMatrix.portfolio; 48 | end 49 | % Update the stateMatrix/Portfolio postions 50 | newStateMatrix = stateMatrix; 51 | newStateMatrix.portfolio = portfolio; 52 | end -------------------------------------------------------------------------------- /MACDHist/MACDHist.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = MACDHist( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % MACDHist - MACD Histogram Retracement Strategy 5 | % Type: Oscillator Strategy 6 | % Parameters: MACDVec - 12-Day EMA of close - 26-Day EMA of close 7 | % MACDSignal - 9-Day EMA of MACDVec 8 | % hist - MACDVec - MACDSignal 9 | 10 | % Description: This is a technique based on the widely used Moving Average 11 | % Convergence/Divergence indicator that creates buy and sell 12 | % signals from cross-overs. This is a varaition of the MACD strat: 13 | % we create a histogram based off prior min and max spreads between 14 | % the MACD line and the signal line to predict retracement and thus 15 | % enter the market on a trend faster. This specific strategy generates 16 | % a buy signal if the histogram retraces 45% of its prior trough when 17 | % below zero and generates a sell signal if the histogram retraces 45% 18 | % of its prior peak above zero. 19 | % 20 | % NOTE: Add a threshold histogram level to prevent whipsawing back and forth 21 | 22 | % Initialize the starting varaibles and potfolio if not initialized 23 | global histMax histMin 24 | if isempty(stateMatrix) 25 | portfolio = zeros(1,1); 26 | histMax = 0; % Set the min/aax values as 0 to start 27 | histMin = 0; 28 | stateMatrix.portfolio = portfolio; 29 | end 30 | % Calculate the the required variables: Price Vector 31 | portfolio = stateMatrix.portfolio; 32 | cp = decisionData.CP_DAY01.data; 33 | % Calculate the MACD/Signal Line/Histogram 34 | [MACDVec, MACDSignal] = macd(cp(:)); 35 | hist = MACDVec(end) - MACDSignal(end); 36 | % Update the histogram minimums and maximums: 37 | % If we are negative, set peak to 0 and update the histogram minimum 38 | if (hist < 0 && hist < histMin) 39 | histMax = 0; 40 | histMin = hist; 41 | % If we are positive set minimum to 0 and update the histogram maximum 42 | elseif (hist > 0 && hist > histMax) 43 | histMax = hist; 44 | histMin = 0; 45 | % Calculate if we generate a buy signal or not based on our retracement parameters 46 | elseif (hist < 0 && hist > histMin+.45*(-histMin)) 47 | portfolio = 1; 48 | elseif(hist > 0 && hist < histMax+.45*(-histMin)) 49 | portfolio = -1; 50 | % Else, keep our portfolio position the same 51 | else 52 | portfolio = stateMatrix.portfolio; 53 | end 54 | % Update the stateMatrix/Portfolio Positions 55 | newStateMatrix = stateMatrix; 56 | newStateMatrix.portfolio = portfolio; 57 | %End iterative calculations 58 | end -------------------------------------------------------------------------------- /slowStochastics/slowStochastics.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = slowStochastics( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % fastStochastics - Slow Stochastics %K Trading Strategy 5 | % Type: Price Oscillator 6 | % Parameters: kStoch - %K Stochastic = (Today's Close - Lowest Low)/(Highest High - Lowest Low) 7 | % dStoch - %D Stochastic = 3-Day SMA of the %K vector 8 | % 9 | % Description: The Fast %K Stochastics trading strategy is a price oscillator trading strategy 10 | % that compares current prices to the high and low range over a look-back period 11 | % (default = 2 week look-back period). If the fast %K rises above 30 with a cross 12 | % above the fast %D stochastic, we buy. Else if the fast %K dips below 80 with a cross 13 | % below the fast %D stochastic, we sell/short. 14 | % 15 | % This is the smoothed/slow version of the Fast %K Strategy. We simply take a 3-day 16 | % simple moving average of the fast %K to create a slow %K, and then we take another 17 | % 3-day simple moving average of the slow %K to yield a slow %D. 18 | % 19 | % NOTE: I've noticed that a low of strategies are more profitable when created in a contrarian way 20 | % I have no idea why. 21 | 22 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 23 | if isempty(stateMatrix) 24 | portfolio = zeros(1,1); 25 | stateMatrix.portfolio = portfolio; 26 | end 27 | % Calculate the required variables: Price Vectors for closing, highs, and lows. 28 | portfolio = stateMatrix.portfolio; 29 | cp = decisionData.CP_DAY01.data; 30 | hip = decisionData.HIP_DAY01.data; 31 | lop = decisionData.LOP_DAY01.data; 32 | % Calculate the raw %K Stochastic 33 | counter = 0; 34 | kStoch = zeros(1, 100); 35 | dStoch = zeros(1, 100); %Initialize the raw %D Stochastic 36 | while (counter < 100) 37 | periodLow = min(lop(end-counter-14:end-counter)); 38 | periodHigh = max(hip(end-counter-14:end-counter)); 39 | counter = counter + 1; 40 | kStoch(1, counter) = ((cp(end) - periodLow)/(periodHigh-periodLow))*100; 41 | end 42 | % Reverse the %K Stochastic Vector in order to do have the most recent value at the end 43 | % Smooth the raw %K Stochastic with a 3-day moving average and then calculate the slow %D 44 | kStoch = fliplr(kStoch); 45 | [kStoch] = movavg(kStoch, 3, 3); 46 | [dStoch] = movavg(kStoch, 3, 3); 47 | % Recalculate our portfolio positions 48 | if (kStoch(end) > 30 && kStoch(end) > dStoch(end)) 49 | portfolio = 1; 50 | elseif (kStoch(end) < 80 && kStoch(end) < dStoch(end)) 51 | portfolio = -1; 52 | % Else our portfolio remains the same 53 | else 54 | portfolio = stateMatrix.portfolio; 55 | end 56 | % Update the stateMatrix/Portfolio postions 57 | newStateMatrix = stateMatrix; 58 | newStateMatrix.portfolio = portfolio; 59 | end -------------------------------------------------------------------------------- /timeFilterMACO/timeFilterMACO.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = timeFilterMACO( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % timeFilterMACO - Time Filtered Moving Average Crossover Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: leadMA - the leading moving average line 7 | % lagMA - the lagging moving average line 8 | % count - the number of days required for a trend to last before buying 9 | 10 | % Description: The Simple Moving Average Crossover Strategy is a basic, yet effective 11 | % trading strategy in trending markets. However, if there aren't measures 12 | % in place to prevent rapid buy/sell signals in a stagnant market, the basic Simple 13 | % Moving Average Crossover will cause a significant loss of capital. 14 | % 15 | % This strategy will attempt to augment the basic dual MACO strategy using a time filter 16 | % in an attempt to prevent whipsawing. Specifically, we wait for an uptrend to last x 17 | % amount of days before changing our portfolio positions. This is a delay time filter. 18 | % 19 | % NOTE: I've noticed that Chinese stocks seems to behave contrary to the traditional MACO strategy 20 | % In that it is very profitable to short uptrends and long downtrends. I have no clue why. 21 | 22 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 23 | if isempty(stateMatrix) 24 | portfolio = zeros(1,1); 25 | stateMatrix.portfolio = portfolio; 26 | stateMatrix.count = 0; 27 | end 28 | % Calculate the required variables: Price Vector 29 | count = stateMatrix.count; 30 | portfolio = stateMatrix.portfolio; 31 | cp = decisionData.CP_DAY01.data; 32 | % Calculate the dual simple moving averages: In this case with a lead of 21 days 33 | % and a lag of 55 days. 34 | [leadMA, lagMA] = movavg(cp, 21, 55); 35 | % Using these variables, recalulate the appropraite postion for our portfolio 36 | if (leadMA(end) > lagMA(end)) 37 | if (count < 0) 38 | count = 0; %Reset the count on a crossover 39 | end 40 | count = count + 1; 41 | % If and only if count is at least 3, change our position in the portfolio. 42 | % This filter should make rapid whipsaw less likely. 43 | if (count >= 3) 44 | portfolio = 1; 45 | end 46 | elseif (leadMA(end) < lagMA(end)) 47 | if (count > 0) 48 | count = 0; %Reset the count on a crossover 49 | end 50 | count = count - 1; 51 | % If and only if count is at least 3, change our position in the portfolio. 52 | % This filter should make rapid whipsaw less likely. 53 | if (count <= -3) 54 | portfolio = -1; 55 | end 56 | %Else our portfolio remains the same 57 | else 58 | portfolio = stateMatrix.portfolio; 59 | end 60 | % Update the stateMatrix/Portfolio postions 61 | newStateMatrix = stateMatrix; 62 | newStateMatrix.portfolio = portfolio; 63 | newStateMatrix.count = count; 64 | end -------------------------------------------------------------------------------- /keltnerChannel/keltnerChannel.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = keltnerChannel( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % keltnerChannel - Baseline Keltner Channel Trading Strategy 5 | % Type: Trend Following - Channel Breakout Strategy 6 | % Parameters: typicalPrice - 10 day simple moving average of typical price = (high+low+close)/3 7 | % tradingRange - 10 day simple moving average of the past 10 days' trading ranges. 8 | % 9 | % Description: The basic Keltner channel trading strategy is a trend-following, channel breakout 10 | % trading strategy that utilizes a typicalRange 10-day moving average as the center 11 | % line with an upper band and lower band generated from the basic trading range 12 | % derived from the difference between the high price of the day and the low price 13 | % of the day. A buy signal is generated when 14 | % 15 | % NOTE: I've noticed that a low of strategies are more profitable when created in a contrarian way 16 | % I have no idea why. 17 | 18 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 19 | if isempty(stateMatrix) 20 | portfolio = zeros(1,1); 21 | stateMatrix.portfolio = portfolio; 22 | end 23 | % Calculate the required variables: Price Vectors for closing, highs, and lows. 24 | portfolio = stateMatrix.portfolio; 25 | cp = decisionData.CP_DAY01.data; 26 | hip = decisionData.HIP_DAY01.data; 27 | lop = decisionData.LOP_DAY01.data; 28 | % Calculate the typicalPrice and tradingRange moving averages. 29 | counter = 0; 30 | typicalPrice = zeros(1, 1000); 31 | tradingRange = zeros(1, 1000); 32 | % Find each point for the moving averages 33 | while (counter < 1000) 34 | counter = counter + 1; 35 | typicalPricePoint = ((hip(counter)+lop(counter)+cp(counter))/3); 36 | tradingRangePoint = (hip(counter)-lop(counter)); 37 | typicalPrice(1,counter) = typicalPricePoint; 38 | tradingRange(1,counter) = tradingRangePoint; 39 | end 40 | % Reverse the vectors so that the most recent price is at the end of the vector 41 | typicalPrice = fliplr(typicalPrice); 42 | tradingRange = fliplr(tradingRange); 43 | % Calculate the moving averages 44 | [typicalPrice] = movavg(typicalPrice, 10, 10); 45 | [tradingRange] = movavg(tradingRange, 10, 10); 46 | % Calculate the upper and lower bands 47 | upperBand = typicalPrice(end) + tradingRange(end); 48 | lowerBand = typicalPrice(end) - tradingRange(end); 49 | % Using these variables, recalulate the appropriate postion for our portfolio 50 | if (cp(end) > upperBand) 51 | portfolio = 1; 52 | elseif (cp(end) < lowerBand) 53 | portfolio = -1; 54 | %Else our portfolio remains the same 55 | else 56 | portfolio = stateMatrix.portfolio; 57 | end 58 | % Update the stateMatrix/Portfolio postions 59 | newStateMatrix = stateMatrix; 60 | newStateMatrix.portfolio = portfolio; 61 | end -------------------------------------------------------------------------------- /volumeReversal/volumeReversal.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = volumeReversal( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % volumeReversal - Volume Reversal Trading Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: fiveDayRange - Five-Day absolute price change of the security 7 | % fiveDayVolume - Five-Day Average Volume of the security 8 | % oldFiveDayVolume - 10 Day Old, Five-Day Average Volume of the security 9 | % hundredDaySTD - 100 Day Standard Deviation of Price Changes 10 | % 11 | % Description: A volume reversal trading strategy inspired by much of the work done by Michael Cooper 12 | % at Purdue. For entries, we require that the five-day absolute price change be greater 13 | % than the 100-day standard deviation of price changes and the five-day average volume 14 | % be less than 75 percent of the five-day average volume beginning 10 days prior. 15 | % 16 | % We enter long if the most recent five-day prive change is negative and we enter short 17 | % if the most recent five-day price change is positive. 18 | % 19 | % All entries exited on the 5th day of the trade. 20 | % 21 | % NOTE: I've noticed that Chinese stocks seems to behave contrary to the traditional MACO strategy 22 | % In that it is very profitable to short uptrends and long downtrends. I have no clue why. 23 | 24 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 25 | if isempty(stateMatrix) 26 | portfolio = zeros(1,1); 27 | stateMatrix.portfolio = portfolio; 28 | stateMatrix.count = 1; 29 | stateMatrix.inTrade = 0; 30 | end 31 | % Calculate the required variables: Price Vector and Volume Vector 32 | count = stateMatrix.count; 33 | portfolio = stateMatrix.portfolio; 34 | inTrade = stateMatrix.inTrade; 35 | cp = decisionData.CP_DAY01.data; 36 | volume = decisionData.CQ_DAY01.data; 37 | % Calculate 5 Day absolute price change/5 day Average Volume/10 day old 5 Day Average Volume/100 day STD 38 | fiveDayRange = cp(end) - cp(end-5); 39 | fiveDayVolume = volume(end) - volume(end-5); 40 | oldFiveDayVolume = volume(end-10) - volume(end-15); 41 | hundredDaySTD = std(cp(end-100:end)); 42 | % Using these variables, recalulate the appropraite postion for our portfolio 43 | if (fiveDayRange < 0 && fiveDayRange > hundredDaySTD && fiveDayVolume < .75*oldFiveDayVolume && ~inTrade) 44 | portfolio = 1; 45 | inTrade = 1; 46 | elseif (fiveDayRange > 0 && fiveDayRange > hundredDaySTD && fiveDayVolume < .75*oldFiveDayVolume && ~inTrade) 47 | portfolio = -1; 48 | inTrade = 1; 49 | % If we are in the middle of a trade, stay in the trade and don't change 50 | elseif (inTrade == 1) 51 | portfolio = stateMatrix.portfolio; 52 | count = count + 1; 53 | % On the fifth day of the trade, we exit all entries and reset the count and inTrade 54 | elseif (count == 5) 55 | portfolio = 0; 56 | count = 0; 57 | inTrade = 0; 58 | end 59 | % Update the stateMatrix/Portfolio postions 60 | newStateMatrix = stateMatrix; 61 | newStateMatrix.portfolio = portfolio; 62 | newStateMatrix.inTrade = inTrade; 63 | newStateMatrix.count = count; 64 | end 65 | -------------------------------------------------------------------------------- /saittaStrat/saittaStrat.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = saittaStrat( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % saittaStrat - Saitta's Support and Resistance Strategy 5 | % Type: Trend Following Strategy 6 | % Parameters: highMA = 20-Day Moving Average of Highs 7 | % lowMA = 20-Day Moving Average of Lows 8 | % 9 | % Description: The strategy begins with a 20-day simple moving average of highs and lows. When prices 10 | % rise above the average of highs, the market has ended a negative phase and entered a 11 | % positive phase. When the market falls below the average of lows, a positve trend has 12 | % ended and a negative trend has started. This is combined with determining previous 13 | % tops and bottoms. At the time of a new uptrend, the method looks for the lowest closing 14 | % price over the prior downtrend for the market bottom, and at the time of a new downtrend, 15 | % the method looks for the highest closing price over the prior uptrend for the market top. 16 | % These tops and bottoms define support and resistance points. Long positions for the strategy 17 | % are entered when prices rise above a previous market top, while short positions are entered when 18 | % prices fall below a previous market bottom. 19 | % 20 | % NOTE: I've noticed that a low of strategies are more profitable when created in a contrarian way 21 | % I have no idea why. 22 | 23 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 24 | if isempty(stateMatrix) 25 | portfolio = zeros(1,1); 26 | stateMatrix.portfolio = portfolio; 27 | stateMatrix.bottom = 0; 28 | stateMatrix.top = 10000; 29 | stateMatrix.count = 0; 30 | stateMatrix.isUpTrend = 0; 31 | stateMatrix.isDownTrend = 0; 32 | end 33 | % Calculate the required variables: Price Vectors for closing, highs, and lows. 34 | portfolio = stateMatrix.portfolio; 35 | bottom = stateMatrix.bottom; 36 | top = stateMatrix.top; 37 | count = stateMatrix.count; 38 | isUpTrend = stateMatrix.isUpTrend; 39 | isDownTrend = stateMatrix.isDownTrend; 40 | cp = decisionData.CP_DAY01.data; 41 | hip = decisionData.HIP_DAY01.data; 42 | lop = decisionData.LOP_DAY01.data; 43 | volume = decisionData.CQ_DAY01.data; 44 | % Calculate the 20-moving averages for highs and lows. 45 | highMA = movavg(hip, 20, 20); 46 | lowMA = movavg(lop, 20, 20); 47 | % Using these variables dynamically find the Saitta Support and Resistance Points according 48 | % to the above description given. 49 | % New Uptrend 50 | if (cp(end) > highMA(end) && ~isUpTrend) 51 | bottom = min(cp(end-count:end)'); 52 | count = 0; 53 | isUpTrend = 1; % Update our uptrend/downtrend status 54 | isDownTrend = 0; 55 | % New Downtrend 56 | elseif (cp(end) < lowMA(end) && ~isDownTrend) 57 | top = max(cp(end-count:end)'); 58 | count = 0; 59 | isDownTrend = 1; % Update our uptrend/downtrend status 60 | isUpTrend = 0; 61 | end 62 | % Using the support and resistance points, recalculate our portfolio positions 63 | if (cp(end) > top) 64 | portfolio = 1; 65 | elseif (cp(end) < bottom) 66 | portfolio = -1; 67 | % Else our portfolio remains the same 68 | else 69 | portfolio = stateMatrix.portfolio; 70 | end 71 | % Update the stateMatrix/Portfolio postions 72 | newStateMatrix = stateMatrix; 73 | newStateMatrix.portfolio = portfolio; 74 | count = count + 1; 75 | newStateMatrix.count = count; 76 | newStateMatrix.top = top; 77 | newStateMatrix.bottom = bottom; 78 | newStateMatrix.isUpTrend = isUpTrend; 79 | newStateMatrix.isDownTrend = isDownTrend; 80 | end -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | -------------------------------------------------------------------------------- /ichimokuCloud/ichimokuCloud.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = ichimokuCloud( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % ichimokuCloud - Ichimoku Kinko Hyo - (One Glance Equilibrium Chart) 5 | % Type: Trend Following Strategy 6 | % Parameters: tenkanSen - (Conversion Line) - (9-period high + 9 period low)/2)) 7 | % kijunSen - (Base Line) - (26-period high + 26-period low)/2 8 | % senkouSpanA - (Leading Span A) - (Conversion Line + Base Line)/2 9 | % senkouSpanB - (Leading Span B) - (52-period high + 52-period low)/2 10 | % chikouSpan - (Lagging Span) - Close plotted 26 periods in the past 11 | % kumoMax - (cloud Max) - The highest point in the cloud = max(senkouSpanA, senkouSpanB) 12 | % kumoMin - (cloud Min) - The lowest point in the cloud = min(senkouSpanA,senkouSpanB) 13 | % 14 | % Description: This version of an Ichimoku Cloud automated trading strategy will only respond to 15 | % strong bearish or bullish signals. Medium or weak signals will be ignored. A strong 16 | % buy signal is generated if: the tenkan-sen is crossing above the kijun-sen, the price 17 | % action is above the kumo (cloud), chikouSpan is above the cloud, and the cross-over is 18 | % above the cloud. A strong sell signal is generated if: the tenkan-sen is crossing below 19 | % the kinjun-sen, the price action is below the cloud, the chikouSpan is below the cloud and 20 | % the cross-over is below the cloud. Or if we have started on a strong bullish/bearish trend and 21 | % the first three conditions are met, we stay in the trade. Else we exit all trades and reset. 22 | % 23 | % Yes, there is a possibility that no positions will be taken. 24 | % 25 | % 26 | % NOTE: I've noticed that Chinese stocks seems to behave contrary to the traditional MACO strategy 27 | % In that it is very profitable to short uptrends and long downtrends. I have no clue why. 28 | 29 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 30 | if isempty(stateMatrix) 31 | portfolio = zeros(1,1); 32 | stateMatrix.portfolio = portfolio; 33 | stateMatrix.isBullish = 0; 34 | stateMatrix.isBearish = 0; 35 | end 36 | % Calculate the required variables: Price Vectors of Close, Low, and High 37 | portfolio = stateMatrix.portfolio; 38 | isBullish = stateMatrix.isBullish; 39 | isBearish = stateMatrix.isBearish; 40 | cp = decisionData.CP_DAY01.data; 41 | hip = decisionData.HIP_DAY01.data; 42 | lop = decisionData.LOP_DAY01.data; 43 | % Calculate the tenkanSen, kijunSen, senkouSpanA, senkouSpanB, chikouSpan, and kumo values 44 | tenkanSen = (max(hip(end-9:end)')+min(lop(end-9:end)'))/2; 45 | kijunSen = (max(hip(end-26:end)')+min(lop(end-26:end)'))/2; 46 | senkouSpanA = (tenkanSen+kijunSen)/2; 47 | senkouSpanB = (max(hip(end-52:end)')+min(lop(end-52:end)'))/2; 48 | chikouSpan = cp(end-26); 49 | kumoMax = max(senkouSpanA, senkouSpanB); 50 | kumoMin = min(senkouSpanA, senkouSpanB); 51 | % Recalculate our portfolio positions according to the rules in the description 52 | if (tenkanSen > kijunSen && cp(end) > kumoMax && chikouSpan > kumoMax && kijunSen > kumoMax && tenkanSen > kumoMax) 53 | portfolio = 1; 54 | isBullish = 1; 55 | isBearish = 0; 56 | elseif (tenkanSen < kijunSen && cp(end) < kumoMin && chikouSpan < kumoMin && kijunSen < kumoMin && tenkanSen < kumoMin) 57 | portfolio = -1; 58 | isBearish = 1; 59 | isBullish = 0; 60 | end 61 | if (isBullish && tenkanSen > kijunSen && cp(end) > kumoMax && chikouSpan > kumoMax) 62 | portfolio = 1; 63 | elseif (isBearish && tenkanSen < kijunSen && cp(end) < kumoMax && chikouSpan < kumoMax) 64 | portfolio = -1; 65 | % Else we exit all of our trades and reset for the next iterations 66 | else 67 | portfolio = 0; 68 | isBullish = 0; 69 | isBearish = 0; 70 | end 71 | % Update the stateMatrix/Portfolio postions 72 | newStateMatrix = stateMatrix; 73 | newStateMatrix.portfolio = portfolio; 74 | newStateMatrix.isBullish = isBullish; 75 | newStateMatrix.isBearish = isBearish; 76 | end -------------------------------------------------------------------------------- /adjustedStochastic/adjustedStochastic.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = adjustedStochastic( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % adjustedStochastic - Kestner's Adjusted CounterTrend Stochastics Strategy 5 | % Type: Price Oscillator 6 | % Parameters: kStoch - slow %K Stochastic = a 3-Day SMA of the fast %K stochastic 7 | % newStoch - (14-day Slow %K stochastic - 50)*(highest high of the past 14 8 | % days - lowest low of past 14 days)/(highest high of past 100 days - lowest 9 | % low of past 100 days) +50 10 | % 11 | % Description: Unlike the %K stochastic strategies included, Kestner's adjusted strategy does not utilize 12 | % a %D stochastic cross-over. In this strategy, if the new Stochastic value rises above 65 13 | % and then falls below 65, we take counter trend short positions. Vice versa for a new stoch 14 | % value of 35. 15 | % 16 | % NOTE: I've noticed that a low of strategies are more profitable when created in a contrarian way 17 | % I have no idea why. 18 | 19 | % Initialize the stateMatrix/Portfolio with zero postions and any starting global variables 20 | if isempty(stateMatrix) 21 | portfolio = zeros(1,1); 22 | stateMatrix.portfolio = portfolio; 23 | stateMatrix.isAbove65 = 0; 24 | stateMatrix.isBelow35 = 0; 25 | stateMatrix.isFirstRun = 1; 26 | end 27 | % Calculate the required variables: Price Vectors for closing, highs, and lows. 28 | cp = decisionData.CP_DAY01.data; 29 | hip = decisionData.HIP_DAY01.data; 30 | lop = decisionData.LOP_DAY01.data; 31 | isAbove65 = stateMatrix.isAbove65; 32 | isBelow35 = stateMatrix.isBelow35; 33 | % Calculate the raw %K Stochastic 34 | counter = 0; 35 | kStoch = zeros(1, 100); 36 | dStoch = zeros(1,100); %Initialize the raw %D Stochastic 37 | while (counter < 100) 38 | fourteenLow = min(lop(end-counter-14:end-counter)'); 39 | fourteenHigh = max(hip(end-counter-14:end-counter)'); 40 | counter = counter + 1; 41 | kStoch(1, counter) = ((cp(end) - fourteenLow)/(fourteenHigh-fourteenLow))*100; 42 | end 43 | % Reverse the %K Stochastic Vector in order to do have the most recent value at the end 44 | % Smooth the raw %K Stochastic with a 3-day moving average and then calculate the adjusted stoch 45 | % as per the above description. 46 | kStoch = fliplr(kStoch); 47 | [kStoch] = movavg(kStoch, 3, 3); 48 | fourteenLow = min(lop(end-14:end)'); 49 | fourteenHigh = max(hip(end-14:end)'); 50 | hundredLow = min(lop(end-100:end)'); 51 | hundredHigh = max(hip(end-100:end)'); 52 | newStoch = ((kStoch(end)-50)*(fourteenHigh-fourteenLow))/(hundredHigh-hundredLow) + 50; 53 | 54 | % Initialize default isAbove65 and isBelow35 boolean values 55 | if (stateMatrix.isFirstRun) 56 | if(newStoch(end) > 65) 57 | isAbove65 = 1; 58 | elseif(newStoch(end) < 35) 59 | isBelow35 = 1; 60 | end 61 | stateMatrix.isFirstRun = 0; %Finally, set isFirstRun to 1 to stop first run initializations on the next iteration. 62 | end 63 | % Recalculate our portfolio positions as per the description above 64 | portfolio = stateMatrix.portfolio; 65 | if (isBelow35 == 1) 66 | if (newStoch(end) > 35) 67 | portfolio = 1; 68 | isBelow35 = 0; 69 | end 70 | elseif (isAbove65 == 1) 71 | if (newStoch(end) < 65) 72 | portfolio = -1; 73 | isAbove65 = 0; 74 | end 75 | % Then reset and update the isAbove65 or isBelow35 boolean values 76 | elseif(isBelow35 == 0) 77 | if (newStoch(end) < 35) 78 | isBelow35 = 1; 79 | end 80 | elseif(isAbove65 == 0) 81 | if (newStoch(end) > 65) 82 | isAbove65 =1; 83 | end 84 | % Else, keep everything the same for the next iteration. 85 | else 86 | portfolio = stateMatrix.portfolio; 87 | end 88 | % Update the stateMatrix/Portfolio Positions 89 | newStateMatrix = stateMatrix; 90 | newStateMatrix.portfolio = portfolio; 91 | newStateMatrix.isAbove65 = isAbove65; 92 | newStateMatrix.isBelow35 = isBelow35; 93 | end 94 | -------------------------------------------------------------------------------- /NEIStrat/NEIStrat.m: -------------------------------------------------------------------------------- 1 | function [ portfolio, newStateMatrix ] = NEIStrat( decisionData, stateMatrix ) 2 | 3 | % @Author = Charles Lai 4 | % NEIStrat - Normalized Envelope Indicator Strategy 5 | % Type: Trend Following strategy 6 | % Parameters: NEI - (Close - Mean of Past 50 Closes)/STD of Past 50 Price Changes 7 | % Upper NEI Band - Today's 50 Day MA + Value of 10th Ranked NEI (DESC) 8 | % Lower NEI Band - Today's 50 Day MA + Value of 40th Ranked NEI (DESC) 9 | % 10 | % Description: Envelopes are formed by plotting two bands around the moving average—one above 11 | % and one below. Historically this had been accomplished by multiplying the 12 | % average by two constants. Typically, the moving average is multiplied by 105 13 | % percent to arrive at the upper band and 95 percent to calculate the lower band. 14 | % Then traders would create a profitable oppurtunity - buy when prices touched the 15 | % lower band and sell when prices touched the upper band. 16 | % 17 | % This NEI or Normalized Envelope Strategy seeks to automatically draw two envelopes 18 | % based on recent optimal displacement. After the noted calculations, we enter 19 | % short when prices rise above and then fall below the upper NEI band and enter 20 | % long when prices fall below and then rise above the lower NEI band. 21 | % 22 | % NOTE: Still need slight fixing. For some reason no positions are taken. Check if it is function 23 | % fault or if we need to backtest the strategy on a different security 24 | 25 | % Calculate the the required variables: Price Vector/50 Day MA/NEI Array/Upper NEI Band/Lower NEI Band 26 | global isFirstRun 27 | cp = decisionData.CP_DAY01.data; 28 | % Initialize the starting state matrix and portfolio. Set the logical variable indicating first run to 1. 29 | if (isempty(stateMatrix)) 30 | portfolio = zeros(1, 1); 31 | stateMatrix.portfolio = portfolio; 32 | stateMatrix.isAboveUNEI = 0; 33 | stateMatrix.isBelowLNEI = 0; 34 | stateMatrix.counter = 0; 35 | isFirstRun = 1; 36 | end 37 | counter = stateMatrix.counter; 38 | isAboveUNEI = stateMatrix.isAboveUNEI; 39 | isBelowLNEI = stateMatrix.isBelowLNEI; 40 | % Calculate the fifty day mean and moving average 41 | fiftyDayMean = sum(cp(end-50:end))/50; 42 | fiftyDayMA = movavg(cp,50,50); 43 | % Calculate the array of NEI values iteratively and sort them 44 | NEIArray = zeros(1, 50); 45 | while (counter < 50) 46 | NEI = (cp(end-counter) - fiftyDayMean)/(std(cp(end-50:end))); 47 | counter = counter + 1; 48 | NEIArray(1,counter) = NEI; 49 | end 50 | NEIArray = sort(NEIArray, 'descend'); 51 | % Calculate the Upper NEI Band and the Lower NEI Band 52 | upperNEIBand = fiftyDayMA(end) + NEIArray(1, 10); 53 | lowerNEIBand = fiftyDayMA(end) + NEIArray(1, 40); 54 | % Initialize default isAboveUNEI and isBelowLNEI boolean values 55 | if (isFirstRun) 56 | if(cp(end) > upperNEIBand) 57 | isAboveUNEI = 1; 58 | elseif(cp(end) < lowerNEIBand) 59 | isBelowLNEI = 1; 60 | end 61 | isFirstRun = 0; %Finally, set isFirstRun to 1 to stop first run initializations on the next iteration. 62 | end 63 | % Iterative calculation of our portfolio positions 64 | portfolio = stateMatrix.portfolio; 65 | % If the CP has crossed over a band again after crossing over it once, recalculate portfolio positions. 66 | if (isBelowLNEI == 1) 67 | if (cp(end) > lowerNEIBand) 68 | portfolio = 1; 69 | isBelowLNEI = 0; 70 | end 71 | elseif (isAboveUNEI == 1) 72 | if (cp(end) < upperNEIBand) 73 | portfolio = -1; 74 | isAboveUNEI = 0; 75 | end 76 | end 77 | % Then reset and update the isAboveUNEI or isBelowLNEI boolean values 78 | if(isBelowLNEI == 0) 79 | if (cp(end) < lowerNEIBand) 80 | isBelowLNEI = 1; 81 | end 82 | elseif(isAboveUNEI == 0) 83 | if (cp(end) > upperNEIBand) 84 | isAboveUNEI = 1; 85 | end 86 | % Else, keep everything the same for the next iteration. 87 | else 88 | portfolio = stateMatrix.portfolio; 89 | end 90 | % Update the stateMatrix/Portfolio Positions 91 | newStateMatrix = stateMatrix; 92 | newStateMatrix.portfolio = portfolio; 93 | newStateMatrix.isAboveUNEI = isAboveUNEI; 94 | newStateMatrix.isBelowLNEI = isBelowLNEI; 95 | end 96 | -------------------------------------------------------------------------------- /MACDHist/BackTestCfg_MACDHist.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /NEIStrat/BackTestCfg_NEIStrat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /simpleMACO/BackTestCfg_simpleMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /augmentedMACO/BackTestCfg_augmentedMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /divergeIndex/BackTestCfg_divergeIndex.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /ichimokuCloud/BackTestCfg_ichimokuCloud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /saittaStrat/BackTestCfg_saittaStrat.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /bollingerBands/BackTestCfg_bollingerBands.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /exponentialMACO/BackTestCfg_exponentialMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /fastStochastics/BackTestCfg_fastStochastics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /keltnerChannel/BackTestCfg_keltnerChannel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /slowStochastics/BackTestCfg_slowStochastics.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /timeFilterMACO/BackTestCfg_timeFilterMACO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /volumeReversal/BackTestCfg_volumeReversal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /adjustedStochastic/BackTestCfg_adjustedStochastic.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | --------------------------------------------------------------------------------