當前位置:首頁 » 股票買賣 » Python使用if語句買賣股票
擴展閱讀
設計總院股票歷史股價 2023-08-31 22:08:17
股票開通otc有風險嗎 2023-08-31 22:03:12
短線買股票一天最好時間 2023-08-31 22:02:59

Python使用if語句買賣股票

發布時間: 2023-04-02 06:18:31

1. 怎麼學習python量化交易

下面教你八步寫個量化交易策略——單股票均線策略

1 確定策略內容與框架

若昨日收盤價高出過去20日平均價今天開盤買入股票
若昨日收盤價低於過去20日平均價今天開盤賣出股票

只操作一隻股票,很簡單對吧,但怎麼用代碼說給計算機聽呢?

想想人是怎麼操作的,應該包括這樣兩個部分

既然是單股票策略,事先決定好交易哪一個股票。

每天看看昨日收盤價是否高出過去20日平均價,是的話開盤就買入,不是開盤就賣出。每天都這么做,循環下去。

對應代碼也是這兩個部分

definitialize(context):
用來寫最開始要做什麼的地方
defhandle_data(context,data):
用來寫每天循環要做什麼的地方

2 初始化

我們要寫設置要交易的股票的代碼,比如 兔寶寶(002043)

definitialize(context):
g.security='002043.XSHE'#存入兔寶寶的股票代碼

3 獲取收盤價與均價

首先,獲取昨日股票的收盤價

#用法:變數=data[股票代碼].close
last_price=data[g.security].close#取得最近日收盤價,命名為last_price

然後,獲取近二十日股票收盤價的平均價

#用法:變數=data[股票代碼].mavg(天數,『close』)
#獲取近二十日股票收盤價的平均價,命名為average_price
average_price=data[g.security].mavg(20,'close')

4 判斷是否買賣

數據都獲取完,該做買賣判斷了

#如果昨日收盤價高出二十日平均價,則買入,否則賣出
iflast_price>average_price:
買入
eliflast_price<average_price:
賣出

問題來了,現在該寫買賣下單了,但是拿多少錢去買我們還沒有告訴計算機,所以每天還要獲取賬戶里現金量。

#用法:變數=context.portfolio.cash
cash=context.portfolio.cash#取得當前的現金量,命名為cash

5 買入賣出

#用法:order_value(要買入股票股票的股票代碼,要多少錢去買)
order_value(g.security,cash)#用當前所有資金買入股票
#用法:order_target(要買賣股票的股票代碼,目標持倉金額)
order_target(g.security,0)#將股票倉位調整到0,即全賣出

6 策略代碼寫完,進行回測

把買入賣出的代碼寫好,策略就寫完了,如下

definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔寶寶
defhandle_data(context,data):#每日循環
last_price=data[g.security].close#取得最近日收盤價
#取得過去二十天的平均價格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得當前的現金
#如果昨日收盤價高出二十日平均價,則買入,否則賣出。
iflast_price>average_price:
order_value(g.security,cash)#用當前所有資金買入股票
eliflast_price<average_price:
order_target(g.security,0)#將股票倉位調整到0,即全賣出

現在,在策略回測界面右上部,設置回測時間從20140101到20160601,設置初始資金100000,設置回測頻率,然後點擊運行回測。

7 建立模擬交易,使策略和行情實時連接自動運行

策略寫好,回測完成,點擊回測結果界面(如上圖)右上部紅色模擬交易按鈕,新建模擬交易如下圖。 寫好交易名稱,設置初始資金,數據頻率,此處是每天,設置好後點提交。

8 開啟微信通知,接收交易信號

點擊聚寬導航欄我的交易,可以看到創建的模擬交易,如下圖。 點擊右邊的微信通知開關,將OFF調到ON,按照指示掃描二維碼,綁定微信,就能微信接收交易信號了。

2. pythonif語句的用法例子

pythonif語句的用法例子:

與他上面的最近的還沒有配對的if配對。余和滲

例如判斷三角形的。

if((a+b>c)&&(a+c>b)&&(b+c>a))。

if((a==b)||(a=c)||(b=c))。

printf("是等腰三角行")。

含義

if-else的語句結構是前面的條件成立執行什麼操作,則下面的棚簡分支結構就不會被執行,若前面的條件不成立,否則做下面的。在Python中可以使用if else語句對條件豎脊進行判斷,然後根據不同的結果執行不同的代碼,這稱為選擇結構或者分支結構。

Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。

3. 怎樣用 Python 寫一個股票自動買賣的程序

  • 方法一

    前期的數據抓取和分析可能python都寫好了,所以差這交易指令介面最後一步。對於股票的散戶,正規的法子是華寶,國信,興業這樣願意給介面的券商,但貌似開戶費很高才給這權利,而且只有lts,ctp這樣的c++介面,沒python版就需要你自己封裝。

  • 方法二

    是wind這樣的軟體也有直接的介面,支持部分券商,但也貴,幾萬一年是要的。

  • 方法三

    滑鼠鍵盤模擬法,很復雜的,就是模擬鍵盤滑鼠去操作一些軟體,比如券商版交易軟體和大智慧之類的。

  • 方法四

    就是找到這些軟體的關於交易指令的底層代碼並更改,不過T+1的規則下,預測准確率的重要性高於交易的及時性,花功夫做數據分析就好,交易就人工完成吧

4. python if用法

Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。

Python程序語言指定任何非0和非空(null)值為true,0 或者 null為false。

Python 編程中 if 語句用於控製程序的執行。其中"判斷條件"成立時(非零),則執行後面的語句,而執行內容可以多行,以縮進來區分表示同一范圍。

else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句。

(1)簡單的if語句:

在第1行中,可包含任何條件測試,而在緊跟在測試後面的縮進代碼塊中,可執行任何操作。如果條件測試的結果為True,Python就會執行緊跟在if語句後面的代碼;否則Python將忽略這些代碼。

(2)if-else語句

經常需要在條件測清旅試通過了時執行一個操作,並在沒有通過時執行另一個操作;在這種情況下,可使用Python提供的if-else語句。if-else語句塊類似於簡單的if語句,但其中的else語句,讓你能夠指定條件測試未通過時要執行的操作。

(3)if-elif-else語句

經常需要檢查超過兩個的情形,為此可使用Python提供的if-elif-else結構。Python只執行if-elif-else結構中的一個代碼塊,它依次檢查每個條件測試,直到遇到通過了的條件測試。測試通過後,Python將執行緊跟在它後面的代碼,並跳過餘下的測試。

條件測試:

(1)概念:

每條if語句的核心都是一個值為True或False的表達式,這種表達式被稱為條件測試。Python根據條件測試的值為True還是False來決定是否執行if語句中的代碼。如果條件測試的值為True,Python就執行緊跟在if語句後面的代碼;如果為False,Python就忽略這些代碼。

(2)檢查是否相等:

通常情況下會用 「==」的左值和右值是否相等來判斷程序是否繼續答碧凳進行,會區分大小寫也會用「!=」 來表示不相等繼續進行,相等則忽略。

(3)檢查多個條件:

and: 要檢查是否兩個條件都為True,可使用關鍵字and將兩個條件測試合而為一;如果每個測試都通過了慧孫,整個表達式就為True;如果至少有一個測試沒有通過,整個表達式就為False。

or: 關鍵字or也能夠讓你檢查多個條件,但只要至少有一個條件滿足,就能通過整個測試。僅當兩個測試都沒有通過時,使用or的表達式才為False。

(4)檢查特定值是否包含在列表內:

要判斷特定的值是否已包含在列表中,可使用關鍵字in。

(5)檢查特定值是否不包含在列表內:

確定特定的值未包含在列表中很重要,可使用關鍵字not in。

(6)布爾表達式:

布爾表達式的結果要麼為True,要麼為False。

5. 問一個Python分析股票價格的問題......

你先把價格按日期排序之後變成一個list的話,比如:
price=[70,74, 73, 72, 71,75]
你可以這么辦:
operations=[]
isLong=False
for i in range(len(price)-1):
if(not isLong):
if(price[i]<price[i+1]):
print "Go long on day " + str(i)
operations.append(-1);
isLong=True;
else:
operations.append(0);
else:
if(price[i]>price[i+1]):
print "Go short on day " + str(i)
operations.append(1);
isLong=False;
else:
operations.append(0);
if(isLong):
print "Go short on day " + str(len(price)-1)
operations.append(1)
else:
operations.append(0)
ProfitPerShare=0
for i in range(len(price)):
ProfitPerShare+=price[i]*operations[i]
print "Summary profit per share: "+str(ProfitPerShare)

這裡面就是說,如果你是空倉,那麼如果明天比今天高就買,否則明天買就比今天買更劃算;如果你不空倉,那麼如果明天比今天價低你就要清倉,否則明天賣就會更劃算。然後用一個叫operations的list來記錄你每天的操作,-1表示買,0表示沒有,1表示賣,所以最後可以計算每股獲得的收入price[i]*operations[i]的總和。

6. 怎樣用 Python 寫一個股票自動交易的程序

網址都沒有給出怎麼測試呢? 這個應該是伺服器生成的token吧,可以urllib2抓一下,如果抓不到的話那麼他可能用的js動態載入,這個得分析js源碼了,如果他用了flash來算出這個值的(我記得酷狗就是這么做的),那麼恭喜你,不能算出這個值了

7. Python的if 條件語句

Python 中用if語句進行條件判斷;與Excel 中的if作用有些類似,具體的語句如下:

if 條件:

    結果

else:

    結果

下面我們來舉例進行說明:

例1:年齡>=18歲,輸出「成年了」;否則輸出「未成年」

age = 16

if age >= 18:

    print("成年了")

else:

    print("未成年")

當存在兩個以上條件時,可在if條件判斷後,增加 elif(else if 的縮寫)繼續進行分支條件判斷。

說明:分支條件判斷的結果輸出,當滿足第一個條件時既停止後續判斷並返回第一個結果;當滿足第二個條件時既停止後續判斷並返回第二個結果;以此類推,如果全部條件判弊滲斷均不滿足,則返回else的結果。

例2:年齡<18歲,「未成年」; 18歲 =<年齡<40歲,「青年」; 40歲 =<年齡<60歲,「中年」;年齡>=60歲,「老年」

age = 25

if age >= 60:

    print("老年")

elif age >= 40:

    print("中年")

elif age >=18:

    print("青年")

else:

    print("未成年")

註:第二個條件中 可以直接寫 「age >=40」; 無需寫成 40 =<age<60;因為當判斷大盤第二個條件時,已經不滿足第一個條件、即age !>=60(age < 60),所以「<60」部分可省略。第三個條件同理

條件分支的簡單表達:三元表達式

我們將例1(:年齡>=18歲,輸出「成年了」;否則輸出「未成年」)改寫為「三元表達式」

age = 59

result ="成年" if age >=18 else "未成年"

print(result)

註:僅有兩個條件判斷時,可使用三元表達式進行簡寫

例3:國籍=china ,輸出「中國人」;否則輸出「外國人」

nationality = "England"

result = "中國人" if nationality == "china" else "外國人"

print(result)

註:一個「=」代表賦值,「==」代表等於

例4:通過身份證號判斷性別租鄭脊(身份證號17位單號為男性,雙號為女性)

id = "2308__________2642"

result = "女" if int(id[17]) % 2 == 0 else "男"

print(result)

註:id的類型為字元串,需要通過「int()」函數將其轉換為整數; 」%」代表取余數,

「XX %  2  ==0  」 代表XX除2餘數為0即偶數叢旅.

8. 怎麼用python計算股票

作為一個python新手,在學習中遇到很多問題,要善於運用各種方法。今天,在學習中,碰到了如何通過收盤價計算股票的漲跌幅。
第一種:
讀取數據並建立函數:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置

t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)

plt.show()
f(t)
第二種:
利用pandas裡面的方法:
import pandas as pd

a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets

第三種:
close=a['close']
rets=close/close.shift(1)-1
print rets

總結:python是一種非常好的編程語言,一般而言,我們可以運用構建相關函數來實現自己的思想,但是,眾所周知,python中裡面的有很多科學計算包,裡面有很多方法可以快速解決計算的需要,如上面提到的pandas中的pct_change()。因此在平時的使用中應當學會尋找更好的方法,提高運算速度。

9. 怎樣用python處理股票

用Python處理股票需要獲取股票數據,以國內股票數據為例,可以安裝Python的第三方庫:tushare;一個國內股票數據獲取包。可以在網路中搜索「Python tushare」來查詢相關資料,或者在tushare的官網上查詢說明文檔。

10. 怎樣用 Python 寫一個股票自動交易的程序

股票自動交易助手提供了一個 Python 自動下單介面,參考代碼

#股票自動交易助手Python自動下單使用例子
#把此腳本和StockOrderApi.pyOrder.dll放到你自己編寫的腳本同一目錄

fromStockOrderApiimport*

#買入測試
#Buy(u"600000",100,0,1,0)

#賣出測試,是持倉股才會有動作
#Sell(u"000100",100,0,1,0)

#賬戶信息
print("股票自動交易介面測試")
print("賬戶信息")
print("--------------------------------")

arrAccountInfo=["總資產","可用資金","持倉總市值","總盈利金額","持倉數量"];
foriinrange(0,len(arrAccountInfo)):
value=GetAccountInfo(u"",i,0)
print("%s%f"%(arrAccountInfo[i],value))

print("--------------------------------")
print("")

print("股票持倉")
print("--------------------------------")
#取出所有的持倉股票代碼,結果以','隔開的
allStockCode=GetAllPositionCode(0)
allStockCodeArray=allStockCode.split(',')
foriinrange(0,len(allStockCodeArray)):
vol=GetPosInfo(allStockCodeArray[i],0,0)
changeP=GetPosInfo(allStockCodeArray[i],4,0)
print("%s%d%.2f%%"%(allStockCodeArray[i],vol,changeP))

print("--------------------------------")