首先,您需要选择一种编程语言和交易平台。常见的编程语言包括Python、C++、Java等,常见的交易平台包括MT4、MT5、Zerodha等。在选择编程语言和交易平台时,请确保您对其有一定的了解,并且能够熟练使用它们。
接下来,您需要确定交易策略并编写相应的代码。交易策略可以是基于技术指标、基本面分析、机器学习等,也可以是根据自己的经验和直觉编写。编写代码时,您需要使用交易平台提供的API接口,以便能够与市场进行交互并执行交易。
最后,您需要对自动交易系统进行测试和优化。测试可以使用模拟交易账户或真实交易账户,以验证系统的有效性和可靠性。优化则包括改进交易策略、减少风险等。
以下是该系统开发设计源码demo示例:
class AbuFactorBuyPairBreak(AbuFactorBuyXD, BuyCallMixin):
"""跨市场低频统计套利策略示例"""
def _init_self(self, **kwargs):
# 根据做为低敏感的交易目标从字典中获取做为趋势风标的高敏感目标
pair_symbol = pair_dict[self.kl_pd.name]
# 获取做为趋势风标的高敏感交易目标金融时间序列
self.pair_kl_pd = ABuSymbolPd.make_kl_df(
pair_symbol, data_mode=EMarketDataSplitMode.E_DATA_SPLIT_UNDO,
benchmark=self.benchmark)
# 是否今天就买入,还是再降低频率明天买
self.td_buy = kwargs.pop('buy_today', True)
# 下面和趋势突破策略编码一样,设置突破周期参数,eg:21,42...
self.xd = kwargs['xd']
def fit_day(self, today):
# 获取做为趋势风标的高敏感目标今天交易数据
pair_today = self.pair_kl_pd.iloc[self.today_ind]
# 做为趋势风标的高敏感目标今天突破了,则买入的是低敏感的交易目标
if pair_today.close == self.pair_kl_pd.close[self.today_ind -
self.xd + 1:self.today_ind + 1].max():
# 生成买入订单, 纯低频,明天买,也可以今天买,因为本来就是跨市场的
return self.buy_today() if self.td_buy else self.buy_tomorrow()
return None
read_cash = 10000000
卖出因子继续使用上一节使用的因子
sell_factors = [
{'stop_loss_n': 1.0, 'stop_win_n': 3.0,
'class': AbuFactorAtrNStop},
{'class': AbuFactorPreAtrNStop, 'pre_atr_n': 1.5},
{'class': AbuFactorCloseAtrNStop, 'close_atr_n': 1.5}
]
买入策略使用AbuFactorBuyPairBreak
buy_factors = [{'xd': 5, 'class': AbuFactorBuyPairBreak},
{'xd': 10, 'class': AbuFactorBuyPairBreak}]
abu_result_tuple, kl_pd_manger = abu.run_loop_back(read_cash,
buy_factors,
sell_factors,
start='2016-07-26',
end='2017-07-26',
choice_symbols=pair_dict.keys(),
n_process_pick=1)
AbuMetricsBase.show_general(*abu_result_tuple, only_show_returns=True)