期權數據計算

判斷是否為調倉日

ef is_adjust_day(self, dom=1):'''判斷是否是每月的調倉日。        :params int dom: 每月第幾個交易日進行調倉,缺省是第1個交易日。:return: 如果是調倉日,返回True,否則返回False。'''ret = Falsetoday = self.datetime.date()if self.month is None or self.month != today.month:self.month = today.monthself.num_of_days = 1else:self.num_of_days += 1if self.num_of_days == dom:ret = Truereturn ret

獲取指定檔位期權

 def get_opt(self, otype='call', pos=1, when=1):'''根據ETF當前價格獲取期權。:params str otype: 期權類型,call或者put。:params int pos: 期權的位置,正數表示比當前標的價格高幾檔,負數表示比當前期權價格低幾檔。:params int when: 期權的到期日期,0/1/2/3分別表示當月/下月/當季/下季。:return: 期權代碼,如果沒有找到則返回None。'''etf_price = self.datas[0].close[0]# 獲取期權的到期日期m = self.get_maturity(when=when)# 篩選這個到日期的期權并按照行權價由低到高排序d = self.params.optsd = d[ (d['maturity'] == m) & (d['type'] == otype) ]d = d.sort_values(by=['strike'])# 建立一個按照行權價由低到高排列的期權代碼列表option_codes = []pos_etf = 0for _, row in d.iterrows():if row['strike'] >= etf_price :if pos_etf == 0 :option_codes.append(None)pos_etf = len(option_codes) - 1option_codes.append(row['code'])# 返回需要的期權代碼idx = pos_etf + posif idx >=0 and idx < len(option_codes) :return option_codes[idx]else:return None

計算結束日期

def get_maturity(self, when=1):'''獲取期權的結束日期:param int when: 哪一個到期日期。0/1/2/3分別表示當月/下月/當季/下季的到期日期。:return: 期權的到期日期'''# 獲取所有已經開始交易的期權代碼trading_codes = []for d in self.datas:if len(d) > 0:trading_codes.append(d._name)#print(trading_codes)
# 選出到期日期大于等于今天的期權合約df = self.params.opts#print(df)df = df[ df['maturity'] >= pd.to_datetime(self.datetime.date()) ]#print(df)
# 現在可以交易的期權的到期日期列表,按照從小到大排序m_list = sorted(list(set(df[df['code'].isin(trading_codes)]['maturity'])))#today = self.datetime.date()#print(today)#print(m_list)
# 如果給的參數不符合要求,返回最后一個日期if when > len(m_list):when = len(m_list) - 1#return m_list[when]if len(m_list)!=0:print(m_list)return m_list[0]else:pass

添加期權數據到backtrader

# 添加ETF日線數據到回測引擎。ETF是159919。日線數據在策略中通過self.datas[0]來引用,
df2['date'] = df2['date'].astype('datetime64[ns]')
data = PandasData(dataname=df2, datetime='date')cerebro.adddata(data, name='159919') # 添加期權數據到回測引擎
for opt in list(set(hs300['code'])):d = hs300[hs300['code']==opt].iloc[:,1:]d['trade_date'] = d['trade_date'].astype('datetime64[ns]')d.index = pd.to_datetime(d['trade_date'])data = PandasData(dataname=d)cerebro.adddata(data, name=opt)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449552.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449552.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449552.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

由Docker的MySQL官方鏡像配置的容器無法啟動問題解決辦法(修改配置后無法啟動)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 為了方便閱讀&#xff0c;我在原文基礎上加了一些批注&#xff0c;說明我自己的情況&#xff0c;用紅色標示。 這篇文章記錄了我在使用…

HEVC/H265 主要設計者談HEVC/H265

Overview of the High Ef?ciency Video Coding (HEVC) Standard Gary J. Sullivan, Fellow, IEEE, Jens-Rainer Ohm, Member, IEEE, Woo-Jin Han, Member, IEEE, and Thomas Wiegand, Fellow, IEEE Gary J. Sullivan是H263&#xff…

阿里云 Aliplayer高級功能介紹(九):自動播放體驗

基本介紹經常會碰到客戶詢問&#xff0c;為什么我設置了autoplay為true&#xff0c;但是沒有自動播放&#xff0c;每次都要向客戶解釋這個是瀏覽器從用戶體驗角度考慮做的限制&#xff0c;客戶會繼續詢問那我要怎么做&#xff1f; 針對這個問題Aliplayer也專們做過優化&#xf…

指數定投(行不行學習)

import tushare as ts import pandas as pd import numpy as np from scipy import stats import tushare as ts import matplotlib.pyplot as plt %matplotlib inline #正常顯示畫圖時出現的中文和負號 from pylab import mpl mpl.rcParams[font.sans-serif][SimHei] mpl…

centOS安裝python3.7.2

1.查看centos中自帶的Python地址&#xff1a;which python&#xff08;一般在 /usr/bin/python&#xff09; 2.切換到python安裝目錄&#xff1a;cd /usr/bin 3.查看對應的Python版本指向&#xff1a;ls -l python* 4.創建一個空目錄&#xff1a;mkdir /usr/local/python3 5.…

有進度條圓周率Π計算

圓周率π的計算 一、圓周率π的簡介 圓周率的介紹圓周率用希臘字母 π&#xff08;讀作pi&#xff09;表示&#xff0c;是一個常數&#xff08;約等于3.141592654&#xff09;&#xff0c;是代表圓周長和直徑的比值。它是一個即無限不循環小數&#xff0c;在日常生活中&#xf…

期權制作回測數據

將指定的檔位的期權&#xff0c;指定階段剩余到期日的期權數據合并&#xff0c;用于回測 import pandas as pd import numpy as np import akshare as ak pd.set_option("display.max_rows",None) pd.set_option("display.max_columns",None)nh_price ak…

HEVC/H265 HM10.0 分析(一)NALread.cpp

下面分析 NALread.cpp 函數和代碼。 void read(InputNALUnit& nalu, vector<uint8_t>& nalUnitBuf) {/* perform anti-emulation prevention */TComInputBitstream *pcBitstream new TComInputBitstream(NULL);convertPayloadToRBSP(nalUnitBuf, (nalUnitBuf[0]…

Docker run 命令 參數說明

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 docker run &#xff1a;創建一個新的容器并運行一個命令 語法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...][OPTIONS] IMAGE [COM…

【云周刊】第205期:阿里云重磅開源實時計算平臺Blink,挑戰計算領域的“珠峰”...

本期頭條 阿里云重磅開源實時計算平臺Blink&#xff0c;挑戰計算領域的“珠峰” 信息爆炸的時代&#xff0c;智能推薦已經被應用到各類互聯網產品中&#xff0c;但為千萬級甚至億級規模的用戶實時做精準的推薦難度極高。這一難題已經被阿里攻克了&#xff1a;雙11的第1分鐘&…

凱特勒通道(backtrader)

import backtrader as bt import datetime import pandas as pd import matplotlib.pyplot as plt import backtrader.analyzers as btanalyzers#定義指標 class Ketler(bt.Indicator):params dict(ema20,atr 17)lines (expo,atr,upper,lower)plotinfo dict(subplot False)p…

MYSQL安裝報錯 -- 出現Failed to find valid data directory.

運行環境&#xff1a;windows10數據庫版本&#xff1a;mysql.8.0.12安裝方式&#xff1a;rpm包直接安裝 問題描述&#xff1a;mysql初始化的時候找不到對應的數據庫存儲目錄 報錯代碼&#xff1a; 2018-10-13T03:29:24.179826Z 0 [System] [MY-010116] [Server] D:\Program Fil…

Mysql 取用逗號分隔的字串的子串的方法:SUBSTRING_INDEX

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 有一張部門表&#xff1a;appbricks_department &#xff0c;有 id 字段和 rank_tree 字段。 rank_tree&#xff1a;記錄的是當前部門的…

UCloud首爾機房整體熱遷移是這樣煉成的

2019獨角獸企業重金招聘Python工程師標準>>> 2018年下半年&#xff0c;UCloud首爾數據中心因外部原因無法繼續使用&#xff0c;需要在很短時間內將機房全部遷走。為了不影響用戶現網業務&#xff0c;我們放棄了離線遷移方案&#xff0c;選擇了非常有挑戰的機房整體熱…

akshare雙均線backtrader

# -*- coding: utf-8 -*- """ Created on Tue Aug 4 16:52:23 2020author: 四屏 """from datetime import datetime %matplotlib inline import backtrader as bt import matplotlib.pyplot as plt import akshare as akplt.rcParams["fon…

與python相關計算機基礎知識

一、編程與編程的目的1、什么是語言&#xff1f;什么是編程語言&#xff1f; 語言是一種事物與另外一個事物溝通的介質 編程語言是程序員與計算機溝通的介質 2、什么是編程&#xff1f; 程序員把自己想讓計算機做的事用編程語言表達出來 編程的結果就是一系…

HEVC/H265 HM10.0 分析(二)TComDataCU.cpp

以下分析TComDataCU.cpp。這個cpp是很重要的&#xff0c;要分幾次分析完&#xff0c;這是分析TComDataCU.cpp&#xff08;一&#xff09;。 Void TComDataCU::getPartPosition( UInt partIdx, Int& xP, Int& yP, Int& nPSW, Int& nPSH) {UInt col m_uiCUPelX;…

定制化你的ReactNative底部導航欄

前言 ? 接觸過ReactNative(以下簡稱RN)的大概都知道,react-navigation提供了兩種開箱即用的導航欄組件 createBottomTabNavigatorcreateMaterialBottomTabNavigator分別是這樣的 盡管官方提供了導航欄的開箱即用方案,但是實際開發里面,我們會遇到各種各樣的導航欄,各種各樣的動…

backtrader入坑1

煩死我了&#xff0c;不想玩backtrader&#xff0c;因為它只是個回測框架&#xff0c;數據庫&#xff0c;下單界面和國內都不能有效對接&#xff0c;早期就是玩玩&#xff0c;圖個樂子。還有學習它的代碼編寫邏輯&#xff0c;大概玩通了以后&#xff0c;完全不想碰它。感覺現在…

PHP 處理金額

導語 涉及到金額的代碼&#xff0c;一定要謹慎處理。剛好最近做了相關的功能&#xff0c;下面大概說一下。 存儲 PHP 的浮點數是不能精確計算的&#xff0c;具體的可以看這篇文章。所幸的是&#xff0c;金額一般不會有太多的小數。那么存儲的時候呢&#xff0c;一言以蔽之&…