葛兰碧八法是根据移动平均线和股价之间的关系,来判断买入,卖出
葛兰碧八法并没有明确指明要用哪个指标当移动平均线,短期价位,
长期价位,以下的设定是我自己设的,大家可以视自己的需求去修改,主要精神还是那八点
,突破,支撑,假跌破,反弹,跌破,阻力,假突破,反转
简单好用
讯号落後,急涨急跌不容易获利,盘整多空双巴
import backtrader as bt
import backtrader.Indicaters as btind
class RuleOfEight(bt.Strategy):
params = (
('defaultSize', 1000),
('printLog', False),
)
def log(self, txt, dt = None, doPrint = False):
if self.p.printLog or doPrint:
dt = dt or self.data.datetime.date(0)
print("%s %s" % (dt.isoformat(), txt))
def __init__(self):
self.sizer.setsizing(self.p.defaultSize)
self.sma_half = btind.SimpleMovingAverage(self.data, period = 120)
self.sma_long = btind.SimpleMovingAverage(self.data, period = 20)
self.sma_short = btind.SimpleMovingAverage(self.data, period = 5)
self.order = None
def notify_order(self, order):
if order.status in [order.Submitted, order.Accepted]:
return
if order.status in [order.Completed]:
if order.isbuy():
self.log("买入 价格: %.2f 成本: %.2f 手续费: %.2f" % (order.executed.price, order.executed.value, order.executed.comm))
elif order.issell():
self.log("卖出 价格: %.2f 成本: %.2f 手续费: %.2f" % (order.executed.price, order.executed.value, order.executed.comm))
elif order.status in [order.Canceled, order.Margin, order.Rejected]:
self.log("交易取消/余额不足/拒绝交易")
self.order = None
def notify_trade(self, trade):
if not trade.isclosed:
return
self.log("交易收益: 毛利 %.2f 净利: %.2f" % (trade.pnl, trade.pnlcomm), doPrint = True)
def next(self):
if self.order:
return
# 半年线趋势向上 (5日内的半年线比较)
halfUp = self.sma_half[-5] < self.sma_half[0]
# 突破
breakThrough = (self.sma_short[-1] < self.sma_long[-1]) and (self.sma_short[0] > self.sma_long[0])
if not self.position:
if halfUp and breakThrough:
self.order = self.buy()
if self.order is not None:
self.log("买入: %.2f 股数: %d" % (self.dataclose[0], self.order.size), doPrint = True)
else:
if not breakThrough and not halfUp:
self.order = self.sell()
if self.order is not None:
self.log("卖出: %.2f 股数: %d" % (self.dataclose[0], self.order.size), doPrint = True)
def stop(self):
self.log("结束收益 %.2f" % self.broker.getvalue(), doPrint = True)
永丰金证券(2890) 2018-01-01 ~ 2020-12-31
可以看到在中间有一段急跌,这个策略就没有办法反应过来
永丰金证券(2890) 2019-01-01 ~ 2021-10-10
这种比较平稳的就很合适,不过 2021 台股大涨,基本上要获利应该很简单
今天就大致介绍一下一个简单的交易策略,因为只有使用移动平均线,所以使用起来相对简单,但是因为参数简单,所以很难判断遇到的状况到底是不是合用,赔钱的机会也是蛮高的。不过有这个简单的策略来热身,之後可以找一些相对报酬率高的策略来使用
Hi all 谢谢KK那边认识到大家,可以一起组读书会、一起参加铁人赛. 铁人赛很烦,因为我去年第一...
composer 安装法 composer global require laravel/insta...
Maven简介 Day08_Maven简介 ...
传送 ref 是一种自动把 ref 从一个 component 传递到它底下的其中一个 child...
前文提到页是Innodb的基本存取单位,一般为16kb,Innodb为了实现功能其实设计了许多不同类...