内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

VNPY基于SAR和肯特納的交易策略是怎樣的-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),中方企業(yè)網(wǎng)站建設(shè),中方品牌網(wǎng)站建設(shè),網(wǎng)站定制,中方網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,中方網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

VNPY基于SAR和肯特納的交易策略是怎樣的,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

一個(gè)比較簡(jiǎn)單策略,主要是為了驗(yàn)證SAR出場(chǎng)指標(biāo)的;然后和可以結(jié)合其他下單值,做的一個(gè)簡(jiǎn)單組合。只是用來測(cè)試。

入場(chǎng)指標(biāo),cci,如果cci大于0,多頭,cci小于0空頭。下阻止單,金額就是Kelter上下軌。多頭買入價(jià)格是通道上軌??疹^買入價(jià)格是通道下軌。
出場(chǎng)指標(biāo),這里出場(chǎng)和入場(chǎng)適用不同周期的k線,因?yàn)檫@樣可以更靈活跑回測(cè)。SAR價(jià)格作為賣出價(jià)格,開阻止單,如果觸及SAR價(jià)格賣出。
先在class ArrayManager() 加入sar方法。當(dāng)然最好還是繼承新增。

點(diǎn)擊(此處)折疊或打開

  1. def sar(self, acceleration = 0.02, maximum = 0.2, array =False):

  2.         """sar"""

  3.         real = talib.SAR(self.high,self.low, acceleration= acceleration,maximum = maximum)

  4.         if array:

  5.             return real

  6.         return real[-1]


然后創(chuàng)建策略。

點(diǎn)擊(此處)折疊或打開

  1. # encoding: UTF-8

  2. from __future__ import division

  3. from vnpy.trader.vtObject import VtBarData

  4. from vnpy.trader.vtConstant import EMPTY_STRING

  5. from vnpy.trader.app.ctaStrategy.ctaTemplate import (CtaTemplate,

  6.                                                      BarGenerator,

  7.                                                      ArrayManager)

  8. ########################################################################

  9. class SARKELStrategy(CtaTemplate):

  10.     """基于sar and Keltner 交易策略"""

  11.     className = 'SARKELStrategy'

  12.     author = u'BillyZhang'

  13.     # 策略參數(shù)

  14.     sarAcceleration = 0.02 #加速線

  15.     sarMaximum = 0.2    #

  16.     cciWindow = 20  # CCI窗口數(shù)

  17.     keltnerWindow = 25  # keltner窗口數(shù)

  18.     keltnerlMultiplier = 6.0  # 乘數(shù)

  19.     initDays = 10  # 初始化數(shù)據(jù)所用的天數(shù)

  20.     fixedSize = 1  # 每次交易的數(shù)量

  21.     barMins = 15

  22.     barMinsClose = 10

  23.     # 策略變量

  24.     sarValue = 0  # sar指標(biāo)數(shù)值

  25.     cciValue = 0  # CCI指標(biāo)數(shù)值

  26.     keltnerup = 0

  27.     keltnerdown = 0

  28.     longStop = 0  # 多頭止損

  29.     shortStop = 0  # 空頭止損

  30.     # 參數(shù)列表,保存了參數(shù)的名稱

  31.     paramList = ['name',

  32.                  'className',

  33.                  'author',

  34.                  'vtSymbol',

  35.                  'sarAcceleration',

  36.                  'sarMaximum',

  37.                  'cciWindow',

  38.                  'keltnerWindow',

  39.                  'keltnerlMultiplier',

  40.                  'initDays',

  41.                  'fixedSize',

  42.                  'barMinsClose',

  43.                  'barMins']

  44.     # 變量列表,保存了變量的名稱

  45.     varList = ['inited',

  46.                'trading',

  47.                'pos',

  48.                'sarValue',

  49.                'cciValue',

  50.                'atrValue',

  51.                'intraBarHigh',

  52.                'intraBarLow',

  53.                'longStop',

  54.                'shortStop']

  55.     # 同步列表,保存了需要保存到數(shù)據(jù)庫(kù)的變量名稱

  56.     syncList = ['pos',

  57.                 'intraTradeHigh',

  58.                 'intraTradeLow']

  59.     # ----------------------------------------------------------------------

  60.     def __init__(self, ctaEngine, setting):

  61.         """Constructor"""

  62.         super(SARKELStrategy, self).__init__(ctaEngine, setting)

  63.         self.bg = BarGenerator(self.onBar, self.barMins, self.onXminBar) # 創(chuàng)建K線合成器對(duì)象

  64.         self.am = ArrayManager()

  65.         self.bgclose = BarGenerator(self.onBar, self.barMinsClose, self.onminBarClose)

  66.         self.amClose = ArrayManager()

  67.     # ----------------------------------------------------------------------

  68.     def onminBarClose(self, bar):

  69.         """分鐘作為清倉(cāng)周期"""

  70.         # 如果沒有倉(cāng)位,那么不用care,直接skip

  71.         # 保存K線數(shù)據(jù)

  72.         amClose = self.amClose

  73.         amClose.updateBar(bar)

  74.         if not amClose.inited:

  75.             return

  76.         # 計(jì)算指標(biāo)數(shù)值

  77.         self.sarValue = amClose.sar(self.sarAcceleration,self.sarMaximum)

  78.         # 判斷是否要進(jìn)行交易

  79.         if self.pos == 0:

  80.             return

  81.         # 當(dāng)前無倉(cāng)位,發(fā)送開倉(cāng)委托

  82.         # 持有多頭倉(cāng)位

  83.         elif self.pos > 0:

  84.             self.cancelAll()

  85.             self.sell(self.sarValue, abs(self.pos), True)

  86.         # 持有空頭倉(cāng)位

  87.         elif self.pos < 0:

  88.             self.cancelAll()

  89.             self.cover(self.sarValue, abs(self.pos), True)

  90.         # 同步數(shù)據(jù)到數(shù)據(jù)庫(kù)

  91.         self.saveSyncData()

  92.         # 發(fā)出狀態(tài)更新事件

  93.         self.putEvent()

  94.         # ----------------------------------------------------------------------

  95.     def onInit(self):

  96.         """初始化策略(必須由用戶繼承實(shí)現(xiàn))"""

  97.         self.writeCtaLog(u'%s策略初始化' % self.name)

  98.         # 載入歷史數(shù)據(jù),并采用回放計(jì)算的方式初始化策略數(shù)值

  99.         initData = self.loadBar(self.initDays)

  100.         for bar in initData:

  101.             self.onBar(bar)

  102.         self.putEvent()

  103.     # ----------------------------------------------------------------------

  104.     def onStart(self):

  105.         """啟動(dòng)策略(必須由用戶繼承實(shí)現(xiàn))"""

  106.         self.writeCtaLog(u'%s策略啟動(dòng)' % self.name)

  107.         self.putEvent()

  108.     # ----------------------------------------------------------------------

  109.     def onStop(self):

  110.         """停止策略(必須由用戶繼承實(shí)現(xiàn))"""

  111.         self.writeCtaLog(u'%s策略停止' % self.name)

  112.         self.putEvent()

  113.     # ----------------------------------------------------------------------

  114.     def onTick(self, tick):

  115.         """收到行情TICK推送(必須由用戶繼承實(shí)現(xiàn))"""

  116.         self.bg.updateTick(tick)

  117.     # ----------------------------------------------------------------------

  118.     def onBar(self, bar):

  119.         """收到Bar推送(必須由用戶繼承實(shí)現(xiàn))"""

  120.         self.bg.updateBar(bar)

  121.         self.bgclose.updateBar(bar)

  122.     # ----------------------------------------------------------------------

  123.     def onXminBar(self, bar):

  124.         """收到X分鐘K線"""

  125.         # 全撤之前發(fā)出的委托

  126.         self.cancelAll()

  127.         # 保存K線數(shù)據(jù)

  128.         am = self.am

  129.         am.updateBar(bar)

  130.         if not am.inited:

  131.             return

  132.         # 計(jì)算指標(biāo)數(shù)值

  133.         self.cciValue = am.cci(self.cciWindow)

  134.         self.keltnerup, self.keltnerdown = am.keltner(self.keltnerWindow,self.keltnerlMultiplier)

  135.         # 判斷是否要進(jìn)行交易

  136.         # 當(dāng)前無倉(cāng)位,發(fā)送開倉(cāng)委托

  137.         if self.pos == 0:

  138.             if self.cciValue > 0:

  139.                 # ru

  140.                 self.buy(self.keltnerup,self.fixedSize, True)

  141.             elif self.cciValue < 0:

  142.                 self.short(self.keltnerdown, self.fixedSize, True)

  143.         # 同步數(shù)據(jù)到數(shù)據(jù)庫(kù)

  144.         self.saveSyncData()

  145.         # 發(fā)出狀態(tài)更新事件

  146.         self.putEvent()

  147.     # ----------------------------------------------------------------------

  148.     def onOrder(self, order):

  149.         """收到委托變化推送(必須由用戶繼承實(shí)現(xiàn))"""

  150.         pass

  151.     # ----------------------------------------------------------------------

  152.     def onTrade(self, trade):

  153.         # 發(fā)出狀態(tài)更新事件

  154.         self.putEvent()

  155.     # ----------------------------------------------------------------------

  156.     def onStopOrder(self, so):

  157.         """停止單推送"""

  158.         pass

關(guān)于VNPY基于SAR和肯特納的交易策略是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

本文名稱:VNPY基于SAR和肯特納的交易策略是怎樣的-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)地址:http://www.rwnh.cn/article14/cejdge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷企業(yè)建站、電子商務(wù)、微信小程序、靜態(tài)網(wǎng)站定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
涟水县| 蛟河市| 方山县| 天柱县| 邳州市| 天台县| 宜川县| 辽阳县| 岐山县| 广平县| 华蓥市| 霍林郭勒市| 阳江市| 静乐县| 盘山县| 九江市| 石狮市| 萝北县| 长乐市| 奈曼旗| 高唐县| 手游| 太和县| 鄯善县| 连城县| 长岭县| 富裕县| 朝阳区| 镇赉县| 教育| 石棉县| 镇雄县| 永靖县| 沙坪坝区| 仙游县| 崇明县| 南充市| 深水埗区| 万载县| 新和县| 鹤庆县|