├── 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 |
--------------------------------------------------------------------------------