Python ------ 一起來對網格做下回測
max_consume_money = consume_money
for day_up_down in data.index:
open = data.loc[day_up_down].values[0]
high = data.loc[day_up_down].values[1]
low = data.loc[day_up_down].values[2]
# close = data.loc[day_up_down].values[3]
# 盤前
# 如果 opt 為空,沒有任何操作, 基準價 > 開盤價,觸發買入
# if len(opt) == 0 and benchmark > open:
if benchmark * (1 - grid) > open:
# 一手買入 或者 倍數買入
# 買入
# 基準價變更
benchmark = open
print(day_up_down, " 開盤買入 ", benchmark)
# 計算的操作
consume_money += Decimal(benchmark) * Decimal(count)
if consume_money.compare(max_consume_money) > 0:
max_consume_money = consume_money
# 新增記錄
h = history.History(stock_code, 1, open, count)
opt.append(h)
opt_b.append([day_up_down, benchmark, 1])
elif benchmark * (1 + grid) <= open:
if len(opt) > 0:
# 賣出
# 基準價變更
benchmark = open
# 計算的操作
# 利潤
temp = float(
((Decimal(benchmark) - Decimal(opt[len(opt) - 1].price)) * count).quantize(Decimal('0.00')))
profit += temp
consume_money -= Decimal(benchmark) * Decimal(count)
print(day_up_down, " 開盤賣出 ", benchmark, opt[len(opt) - 1].price, " 收益 ", temp)
# 修改記錄
h = history.History(stock_code, -1, benchmark, count)
opt.pop()
opt_s.append([day_up_down, benchmark, -1])
while benchmark * (1 - grid) >= low:
# 盤中
# 一手買入 或者 倍數買入
# 買入
# 基準價變更
benchmark = float(Decimal(benchmark * (1 - grid)).quantize(Decimal('0.000')))
print(day_up_down, " 盤中買入 ", benchmark)
# 計算的操作
consume_money += Decimal(benchmark) * Decimal(count)
if consume_money.compare(max_consume_money) > 0:
max_consume_money = consume_money
# 新增記錄
h = history.History(stock_code, 1, benchmark, count)
opt.append(h)
opt_b.append([day_up_down, benchmark, 1])
# open = high 開盤價就是最高價的情況 外匯跟單gendan5.com到時候再觸發 low 會多買,這是一個假收益
# 不會那麼巧吧開盤價跟最高價一樣
if len(opt) > 0 and open != high:
while len(opt) > 0 and benchmark * (1 + grid) <= high:
# 賣出
# 基準價變更
benchmark = float(Decimal(benchmark * (1 + grid)).quantize(Decimal('0.000')))
# 計算的操作
temp = float(
((Decimal(benchmark) - Decimal(opt[len(opt) - 1].price)) * count)
.quantize(Decimal('0.00')))
profit += temp
consume_money -= Decimal(benchmark) * Decimal(count)
print(day_up_down, " 盤中賣出 ", benchmark, opt[len(opt) - 1].price, " 收益 ", temp)
# 修改記錄
h = history.History(stock_code, -1, benchmark, count)
opt.pop()
opt_s.append([day_up_down, benchmark, -1])
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2775836/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一起來用 Python 做個是男人就堅持100秒遊戲Python遊戲
- 使用Python來做物聯網,就是這麼easy!Python
- [譯] 你究竟能用 Python 做什麼? 我們一起來看下 Python 的 3 個主要應用方向Python
- Bootstrap 4: 對比普通網格和 Flexbox 網格bootFlex
- python 來做數學問題Python
- 你都用python來做什麼?Python
- 資料分析的魅力:價格預測網站Decide.com對價格預測推出“包賠”計劃網站IDE
- 乾貨分享:開啟PWM調光之門,一起來做呼吸燈
- 看看服務網格可以做的所有事情
- 鬥地主老是輸?一起用Python做個AI出牌器!PythonAI
- 頂點著色網格轉換為 UV 對映的紋理化網格
- 【python遊戲製作】殭屍來襲 ~ 快來一起創造植物叭~Python遊戲
- Python做介面測試生成測試報告失敗Python測試報告
- 老鐵,一起來開Party(一) —— 聲網Agora SDK整合Go
- 做自媒體需要哪些工具?這5款工具真的好用,一起來看看
- 一起來做資料庫審計和保護之在centos上裝greensql資料庫CentOSSQL
- Python的unittest做引數化測試Python
- Python做點選率資料預測Python
- Facebook 對前端工程師的要求是啥?一起來看看前端工程師
- 一起來學 TypeScriptTypeScript
- asp.net core 使用 TestServer 來做整合測試ASP.NETServer
- 幾個可以來做cassandra效能評測的工具
- 淺談軟體測試基礎:你有必要聚焦一下回歸測試
- 區域分佈圖怎麼做,怎麼做區域網格分佈圖
- 一起來學習 Python 函數語言程式設計Python函數程式設計
- 怎麼用python django做網站?PythonDjango網站
- Seata x 2022 開源之夏 ,一起來做開源達人!
- 【掘金小報】第十二期 一起來做個微信群管理機器人機器人
- 老鐵,一起來開Party(二)—— 聲網Agora SDK實踐Go
- 談談我對服務網格的理解
- 從滲透測試到漏洞掃描 看我們如何對網站做安全防護網站
- python主流框架測試對比Python框架
- 一起來看MyBatis(一)MyBatis
- 對做“網際網路產品”的一些想法
- 阿里出品的不限速網盤來了!開發者專屬內測資格限量申請中阿里
- Python:對程式做效能分析及計時統計Python
- 著名部落格網站TechCrunch挖來福克斯高管掌舵網站
- BM和SAP被Oracle鄙視 做競爭對手都不夠資格Oracle