赌场线仙 - K棒与移动平均线的华尔滋

最近研究K棒,跟着某知名投顾分析师看盘後解析,「站上五日线买,跌破五日线卖,投信看十日」各种台词朗朗上口,真的要真金白银进去真的是被割韭菜

我们来研究一下一种策略

短均线向上穿越长均线是买点

长均线向下穿越短均线是卖点

今天边看着K棒边研究看看这个策略是否有搞头,再看看怎麽调整这个策略

contracts = [api.Contracts.Futures.TXF['TXF202110']]

minute_close = pd.Series()
stock = 0
price = 0
reward = 0
sig = []

# 纪录前5个close
for i in range(0,5):
  snapshots = api.snapshots(contracts)
  minute_close = minute_close.append(pd.Series(
      [snapshots[0].close], 
      index=[pd.to_datetime(snapshots[0].ts, unit='ns')]
  ))
  time.sleep(60)

# 开始跑
for i in range(0,300):
  # 抓snapshot
  snapshots = api.snapshots(contracts)
  
  # 存到分k收盘价的series
  minute_close = minute_close.append(pd.Series(
      [snapshots[0].close], 
      index=[pd.to_datetime(snapshots[0].ts, unit='ns')]
  ))
  
  # 计算ma
  ma5 = talib.SMA(minute_close, timeperiod=5)
  ma10 = talib.SMA(minute_close, timeperiod=10)

  ma_dif = ma5 - ma10

  now = datetime.now()
  current_time = now.strftime("%H:%M:%S")

  # 5MA往上穿越10MA
  if ma_dif[i-1] < 0 and ma_dif[i] > 0 and stock == 0:
    stock += 1
    price = snapshots[0].close
    sig.append(1)
    print("Current Time =", current_time, "buy :", price)
    
  # 5MA往下穿越10MA
  elif ma_dif[i-1] > 0 and ma_dif[i] < 0 and stock == 1:
    stock -= 1
    reward = price - snapshots[0].close
    sig.append(-1)
    print("Current Time =", current_time, "sell :", price, "reward :", reward)
  else:
    sig.append(0)

  time.sleep(60)

结果是

Current Time = 03:41:23 buy : 16870.0
Current Time = 03:57:27 sell : 16870.0 reward : -8.0
Current Time = 04:02:28 buy : 16883.0
Current Time = 04:05:28 sell : 16883.0 reward : 9.0
Current Time = 04:20:31 buy : 16871.0
Current Time = 04:20:31 buy : 16871.0
Current Time = 04:32:34 buy : 16905.0
Current Time = 04:58:39 sell : 16905.0 reward : -35.0
Current Time = 05:00:40 buy : 16936.0
Current Time = 05:01:40 sell : 16936.0 reward : -12.0
Current Time = 05:06:41 buy : 16942.0
Current Time = 05:13:43 sell : 16942.0 reward : -11.0
Current Time = 05:15:43 buy : 16953.0
Current Time = 05:26:46 sell : 16953.0 reward : 1.0
Current Time = 05:42:49 buy : 16920.0
Current Time = 05:46:50 sell : 16920.0 reward : 3.0

结果 -53 点,1点200台票的话,亏损 -10,600

其中还有手续费跟交易税

看起来似乎可以,但要设定停损机制


<<:  Day 15 conda 介绍与使用

>>:  Day 15 - 函数与物件互动2

JavaScript入门 Day10_有关数字的语法2

昨天讲了 Math.abs( ),今天来讲Math.max( ) 那他是什麽呢,来看看下面的 cod...

研究程序考古题

嗯..疫情关系,公司OFFER延後了 这阵子也不想浪费时间,所以打算上网找一些考古题来做顺便练习 小...

Cobol 语言和你 SAY HELLO!!

第六天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知道...

wordpress更新出现Briefly unavailable for scheduled maintenance. Check back in a minute.

今天在更新wordpress插件时出现了Briefly unavailable for schedu...

[Day1] - 开赛!

The lone wolf dies but the pack survives. ---- Ga...