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
- python 來做數學問題Python
- 你都用python來做什麼?Python
- 鬥地主老是輸?一起用Python做個AI出牌器!PythonAI
- Seata x 2022 開源之夏 ,一起來做開源達人!
- Facebook 對前端工程師的要求是啥?一起來看看前端工程師
- Python做點選率資料預測Python
- 乾貨分享:開啟PWM調光之門,一起來做呼吸燈
- 怎麼用python django做網站?PythonDjango網站
- 看看服務網格可以做的所有事情
- 頂點著色網格轉換為 UV 對映的紋理化網格
- 一起來學習 Python 函數語言程式設計Python函數程式設計
- 淺談軟體測試基礎:你有必要聚焦一下回歸測試
- python主流框架測試對比Python框架
- 【python遊戲製作】殭屍來襲 ~ 快來一起創造植物叭~Python遊戲
- 做自媒體需要哪些工具?這5款工具真的好用,一起來看看
- 一起來學 TypeScriptTypeScript
- 一起來打靶 02
- 一起來養豬
- Python培訓分享:python爬蟲可以用來做什麼?Python爬蟲
- asp.net core 使用 TestServer 來做整合測試ASP.NETServer
- Python:對程式做效能分析及計時統計Python
- 從滲透測試到漏洞掃描 看我們如何對網站做安全防護網站
- 老鐵,一起來開Party(一) —— 聲網Agora SDK整合Go
- python+appium+pytest做app自動化測試PythonAPP
- 區域分佈圖怎麼做,怎麼做區域網格分佈圖
- 從把事做對到做對的事
- 【面經】美團測試1,2,3面,一起來聊聊?
- hystrix對比服務網格istio的destinationrule
- 談談我對服務網格的理解
- 在Python中使用OpenCV訓練神經網路來檢測手勢!PythonOpenCV神經網路
- 一起來實現網易雲音樂引導頁效果
- 老鐵,一起來開Party(二)—— 聲網Agora SDK實踐Go
- 【網路安全】來嘛!一起建立http服務!web必學!!!HTTPWeb
- Python專案實踐有什麼好處?python用來做什麼Python
- 一起來修仙 《以仙之名》不刪檔測試趣味資料曝光