正文

網格交易策略--動蕩的股市下的穩定交易策略之一

(2021-06-03 11:14:23) 下一個

?股市交易的策略和農作物生長一樣:需要在合適的股票,合適的時間,選擇合適的策略,然後獲取最大收益。

1.什麽是網格交易策略

什麽網格交易策略,我們來看一張圖片,如下圖:

下圖是加密幣的FIL/BTC交易

網格交易策略,簡單來講,就是我們將價格設定一個區間,然後分成很多個網格,然後根據網格進行買賣獲利。

2.什麽時候適合使用網格交易策略
前麵講了,合適的股票在合適的時機使用合適的策略,就能獲取最大利潤。那麽網格策略在什麽時候可以使用呢?

網格策略最合適的使用時機在股價盤整的時候,也適合大盤動蕩不停的洗盤的時候。如下圖所示:

3.什麽時候不適合使用網格交易策略

對於單邊走勢股票,不適合使用此策略,單邊走勢,也是該策略失效的時候。

比如股價如下走勢,不停的下跌趨勢,不適合使用網格策略。

如下圖股價往上走勢,不停的向上趨勢,不適合使用網格策略。

4.如何設置股票的網格交易策略

明白了上述網格交易策略的使用時機,那就是對於網格交易的設置使用了。網格的設置主要有兩種方法:

  1. 均價網格,比如AAPL今天股價是125,動蕩區間是110-140之間,我們希望每格利潤為2美金,那麽一共就有15個網格,每2美金進行一次交易。

  2. 支撐位和壓力位網格

    對於這個,首先得明白支撐位和壓力位分別是多少?比如AAPL今天股價是125,動蕩區間是110-140,之間分別有114,118,122,126,128,133,138作為壓力位,112,116,120,122,124,130,132作為支撐位,我們可以設置為支撐位買入,壓力位賣出。

可能大家會說,股票不能做到自動交易,為了在股票中實現網格交易策略,可以進行限價交易就可以了。

第一步:建倉,合適的價位建倉

第二步:建立網格

第三步:設置限價單

然後就隻等盈利了。

5.如何實現網格交易的機器交易

如果你懂一點python語言,而且你能注冊給你自己交易權限的賬戶,那麽你可以自己寫一個網格交易的策略,比如Robinhood就可以獲得交易權限。

下麵的例子是一個關於加密幣交易的網格策略,可以修改後用在股票交易,並進行回測。

pip install backtraderimport backtrader as bt?import pandas as pdimport numpy as np?class GridStrategy(bt.Strategy):?    def __init__(self):        self.highest = bt.indicators.Highest(self.data.high, period=1440, subplot=False)        self.lowest = bt.indicators.Lowest(self.data.low, period=1440, subplot=False)        mid = (self.highest + self.lowest)/2        perc_levels = [x for x in np.arange(            1 + 0.005 * 5, 1 - 0.005 * 5 - 0.005/2, -0.005)]        self.price_levels = [mid * x for x in perc_levels]        self.last_price_index = None?    def next(self):        if self.last_price_index == None:            for i in range(len(self.price_levels)):                if self.data.close > self.price_levels[i]:                    self.last_price_index = i                    self.order_target_percent(                        target=i/(len(self.price_levels) - 1))                    return        else:            signal = False            while True:                upper = None                lower = None                if self.last_price_index > 0:                    upper = self.price_levels[self.last_price_index - 1]                if self.last_price_index < len(self.price_levels) - 1:                    lower = self.price_levels[self.last_price_index + 1]                # 還不是最輕倉,繼續漲,就再賣一檔                if upper != None and self.data.close > upper:                    self.last_price_index = self.last_price_index - 1                    signal = True                    continue                # 還不是最重倉,繼續跌,再買一檔                if lower != None and self.data.close < lower:                    self.last_price_index = self.last_price_index + 1                    signal = True                    continue                break            if signal:                self.long_short = None                self.order_target_percent(                    target=self.last_price_index/(len(self.price_levels) - 1))?if __name__ == '__main__':    # 創建引擎    cerebro = bt.Cerebro()?    # 加入網格策略    cerebro.addstrategy(GridStrategy)?    # 導入數據    df = pd.read_csv('./binance-segment.csv', parse_dates=['time'])    data = bt.feeds.PandasData(dataname=df,        timeframe=bt.TimeFrame.Minutes,        datetime='time',        open='open',        high='high',        low='low',        close='close',        volume='volume',        openinterest=-1)?    cerebro.adddata(data)?    # 設置起始資金    cerebro.broker.setcash(100000.0)?    # 設定對比指數    cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframe=bt.TimeFrame.Years,        data=data, _name='benchmark')?    # 策略收益    cerebro.addanalyzer(bt.analyzers.TimeReturn, timeframe=bt.TimeFrame.Years, _name='portfolio')?    start_value = cerebro.broker.getvalue()    print('Starting Portfolio Value: %.2f' % start_value)?    # Run over everything    results = cerebro.run()?    strat0 = results[0]    tret_analyzer = strat0.analyzers.getbyname('portfolio')    print('Portfolio Return:', tret_analyzer.get_analysis())    tdata_analyzer = strat0.analyzers.getbyname('benchmark')    print('Benchmark Return:', tdata_analyzer.get_analysis())?    # 畫圖    cerebro.plot(style='candle', barup='green')?

 

希望以上策略能對你的股票交易有所啟示,更多美股交易資訊,請關注我的微信公眾號!

 

 

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.