日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

布林带止盈止损策略改进

發布時間:2023/12/8 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 布林带止盈止损策略改进 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

布林帶止盈止損策略改進

萬維鋼的《高手》里提到了《算法之美 指導工作與生活的算法》這本書,里面提到了諸如“什么時候開始談女朋友”、“看房看到什么時候才開始決定買”等擇時策略問題,數學家經過嚴密的推理計算得到了37%這個數字,也就是在給定的時間段內,以37%作為分隔點,前37%的時間作為觀察,過了這個時間點就該做決策了。

那么聯想到量化策略,我們什么時候止盈止損不也是同樣的問題嗎?
顯然我們不能簡單把37%作為止盈止損點,我的想法是把每次開倉后最大利潤的37%(或者1-37%)作為止盈點,止損仍然是布林帶的中軌。
核心代碼如下:

info_dict = {'pre_signal': 0, 'open_price': 0, 'profit': 0}# 計算當前利潤 df.at[i, 'profit'] = df.at[i, 'close'] - info_dict['open_price'] # 找到利潤最大值并替換字典值 if df.at[i, 'profit'] > info_dict['profit']:info_dict['profit'] = df.at[i, 'profit']# 當本周期有平多倉信號,或者需要止盈止損 # 止盈點為當前收盤價小于最大利潤的37%點位 condition1 = df.at[i, 'profit'] > 0 condition2 = df.at[i, 'profit'] < info_dict['profit'] condition3 = df.at[i, 'close'] < (info_dict['profit'] * 0.37 + info_dict['open_price']) condition = condition1 & condition2 & condition3if (df.at[i, 'signal_long'] == 0) or condition:df.at[i, 'signal'] = 0 # 將真實信號設置為0# 重置相關信息info_dict = {'pre_signal': 0, 'open_price': 0, 'profit': 0}

對比簡單布林帶策略的回測結果,發現只有XRP的表現最好,回測數據為Bitfinex從2017年5月20日至2019年7月31日的XRP/USD交易對:
簡單布林帶30分鐘K線回測結果:"[550, 2.0]",1.0,13.020978994861938
此策略回測結果:"[650, 4.5]",1.0,15.271091957919307

簡單布林帶1小時K線回測結果:"[250, 4.0]",1.0,11.86845895898633
此策略回測結果:"[250, 3.5]",1.0,20.528533025681803

對其它幣種來說,BCH和BSV的回測結果略有提高,回測數據為Bitfinex從2018年11月13日至2019年7月31日的BCH/USD、BSV/USD交易對,剩下的幣種回測結果基本比簡單布林帶策略還要差得多,這引出兩個問題:

  • 是不是在追求單筆交易收益后,大行情抓不住?
  • 是不是止盈止損策略適合震蕩行情或者震蕩多的幣種?
  • 先不考慮上述問題,將37%改成(20%,80%)范圍遍歷,結果如下:
    BCH 15分鐘:"[450, 3.0, 0.3]”,1.0,0.3,7.8139314738945815
    BSV 1小時:"[800, 1.5, 0.4]",1.0,0.4,3.3144425021985353
    BTC 1小時:"[700, 1.5, 0.2]",1.0,0.2,19.07141784696794
    DASH 1小時:"[550, 1.5, 0.4]",1.0,0.4,6.313149688177662
    EOS 1小時:"[950, 0.5, 0.2]",1.0,0.2,71.07926848532772
    ETC 1小時:"[950, 1.5, 0.4]",1.0,0.4,11.392449813728463
    ETH 30分鐘:"[450, 1.5, 0.2]",1.0,0.2,12.198778802528139
    LTC 1小時:"[600, 3.0, 0.4]",1.0,0.4,22.30675663309639
    NEO 15分鐘:"[450, 3.5, 0.8]",1.0,0.8,3.045600675225343
    OMG 15分鐘:"[800, 2.5, 0.2]",1.0,0.2,7.118352066554033
    QTUM 1小時:"[350, 1.5, 0.2]",1.0,0.2,7.355790185437384
    XMR 1小時:"[850, 2.0, 0.2]",1.0,0.2,5.754729568997898
    XRP 1小時:"[250, 3.5, 0.4]",1.0,0.4,21.670168180676765
    ZEC 1小時:"[700, 1.5, 0.2]",1.0,0.2,5.86152947574348

    簡單布林帶回測結果:
    BCH 15分鐘:"[950, 2.0]",1.0,4.548056980493423
    BSV 1小時:"[750, 1.0]",1.0,2.4428266310284905
    BTC 1小時:"[500, 0.5]",1.0,19.19686781323508
    DASH 1小時:"[150, 2.5]",1.0,30.51202416576995
    EOS 1小時:"[750, 2.0]",1.0,104.33355263999118
    ETC 1小時:"[700, 4.5]",1.0,17.230519477228864
    ETH 30分鐘:"[300, 1.5]",1.0,16.251101335487025
    LTC 1小時:"[650, 3.0]",1.0,41.994913026010295
    NEO 15分鐘:"[950, 2.0]",1.0,7.509372549944163
    OMG 15分鐘:"[700, 2.5]",1.0,19.02156117250065
    QTUM 1小時:"[650, 1.0]",1.0,9.577289343702825
    XMR 1小時:"[150, 2.5]",1.0,13.031009898772105
    XRP 1小時:"[250, 4.0]",1.0,11.86845895898633
    ZEC 1小時:"[300, 1.0]",1.0,37.88666173129326

    總結

    以上是生活随笔為你收集整理的布林带止盈止损策略改进的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。