2019年7月24日

[Practice] 使用澳门金沙指数的算法交易策略

1. 算法买东西

我在读物时修了一门算法买东西全部课程,讲的执意健康状况如何应用各式各样的算法举行股因此未婚妻(指)的封锁。有各式各样的封锁算法,在实践买东西中,应选择一种或多种封锁谋略。只,这很不敷,我调回工厂那门课的传授说 Chinese stock market, monkey would earn more than a professional trader(在奇纳河股在市场上销售某物,猴能够比专业的商人的赚得更多。,因而说,冠词仅供文娱之用,无封锁求教于重要性。
在本文章,我应用搜狐的接合获取思索到工夫量子的库存最高纪录,API地址,源法典地址: 。

2. 澳门金沙例子

澳门金沙例子(Relative Strength Index,RSI全盛时期是由经济专家J.Welles剥削的。 怀尔德在20世纪70年头眼前的的。作为鉴定人超买和超卖使适应的正告指示,RSI在安全的封锁接防很罕见,这是RSI的引见。
RSI鉴定人股近期进项与浪费的比率。,其计算表达式列举如下:

RSI = 100 - 100/(1+RS)
穿着,RS = 近n天结尾辞贵例子卖平均的数/例子卖平均的数

因例子卖平均的值的计算很故障,而采取简略卖平均的(SMA)办法的卡特勒澳门金沙例子(Culter”s rsi)计算卒与t无明显性差额。,因而笔者用后者来做剖析,即 RS = SMA(up_trend)/SMA(down_trend)

给我一颗栗树。,一只股在14天内的价钱走势列举如下:

1.率先,把继承的最高纪录附加,除号14天。,成为16/14=;
2.秒步。将减幅除号14天。,成为23/14=;
三。因而,RS=/1.1643=,
4.RSI = 100 – 100/(1+)=。

因而这14天的澳门金沙例子执意。

上法典(price_list为所选区间内的结尾辞价集中):

rise_sum, down_sum = 0, 0
for i in range(len(price_list) - 1):
    balance = price_list[i + 1] - price_list[i]
    if balance > 0:
        rise_sum += balance
    else:
        down_sum -= balance
if (rise_sum + down_sum) != 0:
    rsi = 100 * rise_sum / (rise_sum + down_sum)
else:
    rsi = 50    # 阻止除数为零
3. 买东西谋略

J.Welles Wilder采取14天RSI眼前的以下买东西谋略:当RSI在表面之下30时,该股做“超卖房地产”,此刻是买进的好机遇;而当RSI高于70时,该股做“超买房地产”,此刻该当酌情排水渠。
争辩这一买东西谋略,我立即的将沪指()这只股作为试验情郎,买东西跨度为2018年2月23日的前100个买东西日至2018年2月23日,当其14日RSI高于70时排水渠100股,在表面之下30时买进100股(均以结尾辞价为准),在不思索经纪业因此平仓的使适应下,我的进项是1498元。

我计划改良一下我的买东西谋略,率先在行情看涨的在市场上销售某物和空头在市场上销售某物中,理所当然应用明显的的买东西谋略;其次,70和30的结果太过单一,我觉得可以争辩RSI的值一定要买因此排水渠的量,譬如30买进100股,20买进150股,40买进50股…

率先,该健康状况如何决定是行情看涨的在市场上销售某物否则空头在市场上销售某物呢,网上众说纷纭,而我的谋略是到达14日因此200日沪指的简略卖平均的(SMA),若SMA(5)>SMA(200)则是行情看涨的在市场上销售某物,反而则是空头在市场上销售某物,能够有些不太精准,就这样的事物吧。。

其次,决定销售额(紧握)薪水和RSI表
volume = 利钱((RSI-50)/20) * basic_volume * alpha
穿着basic_volume是用户输出的根本买东西单位(在这一点上我输出100),α是在市场上销售某物要素,眼前,它将在空头在市场上销售某物上销售。,在行情看涨的在市场上销售某物买一买,邮递区号(在市场上销售某物房地产是行情看涨的在市场上销售某物和空头在市场上销售某物:

def rsi_strategy_executor(date, 成团卷起)
    market_status = (日期)
    rsi = (日期)
    grades = 利钱((RSI - 50) / 10)/2
    if market_status == MarketStatus.BEAR:
        if grades >= 0:
            (成团卷起 * grades * , 日期)
        else:
            (成团卷起 * grades, 日期)
    elif market_status == MarketStatus.BULL:
        if grades >= 0:
            (成团卷起 * grades, 日期)
        else:
            (成团卷起 * grades * , 日期)

经重行计算,收益率为252,我真的赚了一笔。,我真不敢相信。。

4. 翻开挂起RSI 2

2008年11月,这与危机同时发作,现时拉里 康纳斯眼前的了RSI的运动,经过历史最高纪录认可,RSI2比RSI更无效,更适宜高频买东西。Larry 康纳斯的买东西谋略包含以下四的过程:

  1. 决定牛熊邮票
    在在这一点上,Larry 当价钱高于SMA(200)时,康纳斯判别行情看涨的在市场上销售某物,在表面之下SMA(200)的力矩被判定为空头在市场上销售某物。,这如同做错行情看涨的在市场上销售某物,但据我看来不出更合适的的词了。

  2. 一定要买、销售额时机
    康纳斯以为RSI在[0],10]摆放餐具是单独健康的的紧握时机,支出越低,支出越大;和[90],区间100理所当然是空的,兑现越高,风险越大。

  3. 结尾辞价 or 以开盘价?
    股在市场上销售某物算法买东西,一般而言,有两种核算方式,结尾辞前买东西,或生效后买东西,这两种办法有更多的优点和错误,在在这一点上我选择第一种核算方式,不思索买东西使巩固工夫。

  4. 设置去世点
    股市有风险,谨慎进入邮票。设置去世点才干无效把控风险,因而终止浪费。康纳斯以为,当股价高于SMA时,多头弱。,理所当然终止即时紧握,当股价在表面之下SMA(5)时,空头在市场上销售某物,终止即时销售额。

争辩康纳斯的秒买东西谋略,我尝试着对100天的沪指举行了模仿买东西,穿着我否则争辩RSI2的值因此在市场上销售某物叙事诗定了紧握量。行情看涨的在市场上销售某物alpha为1,空头在市场上销售某物alpha为。
volume = ((RSI2 - 90) / 10 + 1)* basic_volume * alpha

贴法典,穿着MarketCondition即为是你这么说的嘛!‘自由的点’:

def rsi2_strategy_executor(date, 成团卷起)
    market_status = (日期)
    exit_point = (日期)
    rsi_2 = _2(日期)

    if rsi_2 > 90 and exit_point != MarketCondition.LONG:
        alpha =  if market_status == MarketStatus.BULL else 1
        grade = (rsi_2 - 90) / 10 + 1
        (成团卷起 * grade * alpha, 日期)
    elif rsi_2 < 10 and exit_point != MarketCondition.SHORT:
        alpha = 1 if market_status == MarketStatus.BULL else 
        grade = (10 - rsi_2) / 10 + 1
        (成团卷起 * grade * alpha, 日期)

很不管怎样地见,竟然缺勤赚。不了解是做错因结果设的太高,核算了一下法典持续核算,当RSI2在[80,90)因此(10,买进/排水渠量与蒂姆呈线形的增长,RSI2高于90或在表面之下10时则呈例子增长:

def rsi2_strategy_executor(date, 成团卷起)
    market_status = (日期)
    exit_point = (日期)
    rsi_2 = _2(日期)

    if rsi_2 > 80 and exit_point != MarketCondition.LONG:
        alpha = 0.8 if market_status == MarketStatus.BULL else 1
        grade = (rsi_2 - 80) / 10 if rsi_2 < 90 else pow((rsi_2 - 80) / 10, 2)
        (成团卷起 * grade * alpha, 日期)
    elif rsi_2 < 20 and exit_point != MarketCondition.SHORT:
        alpha = 1 if market_status == MarketStatus.BULL else 0.8
        grade = (20 - rsi_2) / 10 if rsi_2 > 10 else pow((20 - rsi_2) / 10, 2)
        (成团卷起 * grade * alpha, 日期)

赚了,但比银行贴现率还少,成绩出在哪里,我都不的了解。

求教于资料
  1. How I Trade With Only 2-Period RSI, by Galen Woods
  2. RSI2, from www.stockcharts.com
  3. Testing the RSI 2 Trading Strategy On US Stocks, by JB Marwood
  4. Connors 2-Period RSI Update For 2014, by Jeff Swanson

发表评论

电子邮件地址不会被公开。 必填项已用*标注