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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用Python实现一个SVM分类器策略

發布時間:2023/12/15 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Python实现一个SVM分类器策略 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

支持向量機(SVM)是什么意思?

正好最近自己學習機器學習,看到reddit上 Please explain Support Vector Machines (SVM) like I am a 5 year old 的帖子,一個字贊!于是整理一下和大家分享。(如有錯歡迎指教!)

?

什么是SVM?

支持向量機/support vector machine (SVM)。當然首先看一下wiki.

Support Vector Machines are learning models used for classification: which individuals in a population belong where? So… how do SVM and the mysterious “kernel” work?

?

好吧,故事是這樣子的:

在很久以前的情人節,大俠要去救他的愛人,但魔鬼和他玩了一個游戲。魔鬼在桌子上似乎有規律放了兩種顏色的球,說:“你用一根棍分開它們?要求:盡量在放更多球之后,仍然適用。” ..... 文章 詳細內容 地址:https://www.botvs.com/bbs-topic/680

  • 我們來用Python 實現一個 SVM 分類器 預測 買賣

?

程序是 基于發明者量化平臺的,標的物選擇為電子貨幣,因為電子貨幣適合回測。Python機器學習之SVM 預測買賣,Python入門簡單策略 sklearn 機器學習庫的使用, 回測系統自帶的庫有:

numpy pandas TA-Lib scipy statsmodels sklearn cvxopt hmmlearn pykalman arch matplotlib

?

實盤需要在托管者所在機器安裝策略需要的庫,策略源碼地址: https://www.botvs.com/strategy/21370

from sklearn import svm import numpy as npdef main():preTime = 0n = 0success = 0predict = NonepTime = NonemarketPosition = 0initAccount = exchange.GetAccount()Log("Running...")while True:r = exchange.GetRecords()if len(r) < 60:continuebar = r[len(r)-1]if bar.Time > preTime:preTime = bar.Timeif pTime is not None and r[len(r)-2].Time == pTime:diff = r[len(r)-2].Close - r[len(r)-3].Closeif diff > SpreadVal:success += 1 if predict == 0 else 0elif diff < -SpreadVal:success += 1 if predict == 1 else 0else:success += 1 if predict == 2 else 0pTime = NoneLogStatus("預測次數", n, "成功次數", success, "準確率:", '%.3f %%' % round(float(success) * 100 / n, 2))else:Sleep(1000)continueinputs_X, output_Y = [], []sets = [None, None, None]for i in xrange(1, len(r)-2, 1):inputs_X.append([r[i].Open, r[i].Close])Y = 0diff = r[i+1].Close - r[i].Closeif diff > SpreadVal:Y = 0sets[0] = Trueelif diff < -SpreadVal:Y = 1sets[1] = Trueelse:Y = 2sets[2] = Trueoutput_Y.append(Y)if None in sets:Log("樣本不足, 無法預測 ...")continuen += 1clf = svm.LinearSVC()clf.fit(inputs_X, output_Y)predict = clf.predict(np.array([bar.Open, bar.Close]).reshape((1, -1)))pTime = bar.TimeLog("預測當前Bar結束:", bar.Time, ['漲', '跌', '橫'][predict])if marketPosition == 0:if predict == 0:exchange.Buy(initAccount.Balance/2)marketPosition = 1elif predict == 1:exchange.Sell(initAccount.Stocks/2)marketPosition = -1else:nowAccount = exchange.GetAccount()if marketPosition > 0 and predict != 0:exchange.Sell(nowAccount.Stocks - initAccount.Stocks)nowAccount = exchange.GetAccount()marketPosition = 0elif marketPosition < 0 and predict != 1:while True:dif = initAccount.Stocks - nowAccount.Stocksif dif < 0.01:breakticker = exchange.GetTicker()exchange.Buy(ticker.Sell + (ticker.Sell-ticker.Buy)*2, dif)while True:Sleep(1000)orders = exchange.GetOrders()for order in orders:exchange.CancelOrder(order.Id)if len(orders) == 0:breaknowAccount = exchange.GetAccount()marketPosition = 0if marketPosition == 0:LogProfit(_N(nowAccount.Balance - initAccount.Balance, 4), nowAccount)

?? ??
閱讀原文

轉載于:https://my.oschina.net/u/3949328/blog/2994800

總結

以上是生活随笔為你收集整理的用Python实现一个SVM分类器策略的全部內容,希望文章能夠幫你解決所遇到的問題。

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