目录
「马丁交易策略」是从18世纪开始流行的赌博方式,主要方法为当每次亏损时,下次的下注就加倍,如果下次赢的话,不仅能收回先前的损失,还会获得第一次下注总额的报酬,听起来是一个稳赚不赔的策略,但其背后隐含著巨大的风险。
本文章使用 Mac OS 并以 Jupyter Notebook 作为编辑器
import tejapi import pandas as pd import numpy as np
Note: tejapi 安装以命令提示字元 (Windows)/终端机 (Mac),输入 pip install tejapi
tejapi.ApiConfig.api_key = 'Your Key' tejapi.ApiConfig.ignoretz = True
fx = tejapi.get('GLOBAL/GCURR', coid = 'EUR', mdate={'gte': '2019-01-01', 'lte':'2020-12-31'}, opts = {'columns':['mdate','tuse2']}, chinese_column_name = True, paginate = True)
累积获利为正时,执行平仓,并买进初始0.01手;若为负,则持续加码(变成2倍手)买进
account = 100000 # 10万美金 lot = 0.01 # 0.01手 lev = 1/500 # 杠杆比例 lot_record = []. # 仓位纪录 account_record = [] # 总价值纪录 cum_profit = 0
for i in range(len(fx)): # 第一笔买入 if i < 1: cum_profit -= (100000*lot*lev*fx.loc[i, '原币兑美元 (美元)']) # 初始买0.01手需要的保证金为欧元,所以按照当时汇率换成美元 account += cum_profit account_record.append(account) lot_record.append(lot) else: # 累计损益,乘以100000是为了换成布数 cum_profit += (fx.loc[i, '原币兑美元 (美元)'] - fx.loc[i-1, '原币兑美元 (美元)'])*100000*lot
# 帐户余额 account += (fx.loc[i, '原币兑美元 (美元)'] - fx.loc[i-1, '原币 兑美元 (美元)'])*100000*lot
#如果累计损益获利,平仓后买入0.01手 if cum_profit >= 0: #买入0.01手,故重置lot & cum_profit lot = 0.01 cum_profit = -(100000*lot*lev*fx.loc[i, '原币兑美元 (美 元)']) account += cum_profit account_record.append(account) lot_record.append(lot)
#若累计损益为负,则加码买进 else: lot = lot *2 cum_profit -= (100000*(lot-lot/2)*lev*fx.loc[i, '原币兑美 元 (美元)']) account -= (100000*(lot-lot/2)*lev*fx.loc[i, '原币兑美元 (美元)']) account_record.append(account) lot_record.append(lot)
fx['价值'] = account_record
我们可以看到收益的曲线,中间都会有一根往下非常大的回撤,此时为线图下降时的加码状态,亏损时也会加倍放大,这就是马丁策略的风险所在,一2持续亏损并加码直至见底,则会宣告破产,风险控制一直都是马丁策略使用者一直在改善的部分!
若读者有兴趣制作更多交易策略,可以前往我们的官方网站,里面有提供更多财务、交易等财金资料,来帮助您制作更好的选股策略!
本文仅供参考之用,并不构成要约、招揽或邀请、诱使、任何不论种类或形式之申述或订立任何建议及推荐,读者务请运用个人独立思考能力,自行作出投资决定,如因相关建议招致损失,概与作者无涉。