自己嘗試用python轉(zhuǎn)換javascript的代碼,只可惜,技術(shù)太差搞不來,請(qǐng)大牛幫我轉(zhuǎn)換一下。
這是javasript寫的原代碼地址鏈接描述
這下面是我用python嘗試更改的代碼出錯(cuò)了,請(qǐng)各大牛幫我更改一下,有錯(cuò)的代碼。
# // 參數(shù)變量 (待填寫)
# 少寫交易對(duì)
UsedRatio = 0.5
ContractType = "rb1710";
# // 全局變量 (待填寫)
Interval = 500; #// 輪詢時(shí)間 , 毫秒 , 500 毫秒 = 0.5 秒
Balance_Unit = 0
ContractTypeInfo = null; #// 合約信息
initAccount = null; #// 初始賬戶信息
LONG = 1;
SHORT = 2;
# // 功能函數(shù) (待填寫)
def loop(): #// 主循環(huán)函數(shù)
def CheckBalance_Unit(Direction):
ContractTypeInfo = exchange.SetContractType(ContractType); #自定義變量,獲取交易對(duì)的信息
Log("交易對(duì)信息:", ContractTypeInfo);
Balance_Unit = _N(initAccount.Balance * UsedRatio / 10, 2);
Log("賬戶信息:", initAccount, "資金分配 10份,一份為:", Balance_Unit);
ticker = _C(exchange.GetTicker); #重復(fù)獲取最新行情信息,到有返回有用信用否則重復(fù)
OneContractMargin = ContractTypeInfo.VolumeMultiple * ticker.Last * (ContractTypeInfo.LongMarginRatio if Direction == LONG else ContractTypeInfo.ShortMarginRatio); #計(jì)算買一次加手續(xù)費(fèi)要多少錢
if(Balance_Unit < OneContractMargin * 0.2):
throw ("最新價(jià)格:" + ticker.Last + "手續(xù)費(fèi)0.02" + " ,資金可用部分的10分之一 不足 下" + ("買單" if Direction == LONG else "賣單") + "1次手續(xù)費(fèi)," + "1次:" + OneContractMargin);
else:
Log("最新價(jià)格:" + ticker.Last + "調(diào)整系數(shù)1.2" + "1份資金 可下:", "買單" if Direction == LONG else "賣單", (Balance_Unit / OneContractMargin));
nowAccount = _C(exchange.GetAccount);
if(nowAccount.Balance < Balance_Unit):
throw("當(dāng)前賬戶資金已小于初始資金可用部分的十分之一。當(dāng)前資金:" + nowAccount.Balance + ", 初始資金可用部分的十分之一為:" + Balance_Unit);
else :
if(nowAccount.Balance < OneContractMargin * 0.2):
Log ("資金不足:" + JSON.stringify(nowAccount) + ", 系數(shù)1.2,1手合約保證金:" + OneContractMargin);
# // 入口函數(shù) main
def main():
# // 程序的初始化工作 (待填寫)
while True:
if exchange.IO("status") == true:
if initAccount = exchange.GetAccount() else == null
break
initAccount = exchange.GetAccount() == null
LogStatus("等待交易時(shí)間獲取賬戶信息初始化!" + "時(shí)間:", new.Date());
Sleep(Interval);
CheckBalance_Unit(LONG);
CheckBalance_Unit(SHORT);
# // 主循環(huán), 程序完成初始化后在此 循環(huán)執(zhí)行,直到手動(dòng)關(guān)閉。
LoginState = null; #值為空
nowTimeStamp = 0; #時(shí)間為空
while True:
nowTimeStamp = Record().Time();#更新時(shí)間,時(shí)間對(duì)象
if(exchange.IO("status") == true) : #服務(wù)器連接狀態(tài), 近回就是連接上了
LoginState = true; #更新狀態(tài),已經(jīng)連接
loop();#連接成功就可以執(zhí)行
else: #沒有連接就運(yùn)行到這
LoginState = false;
LogStatus("時(shí)間:", _D(nowTimeStamp), LoginState ,"已連接服務(wù)器","未連接服務(wù)器!") #/*, 待顯示的一些信息可以寫在此處,如賬戶信息,實(shí)時(shí)行情,程序狀態(tài)*/
Sleep(Interval); #// 暫停 0.5 秒, 避免輪詢頻率過高,訪問交易所服務(wù)器過于頻繁導(dǎo)致問題。
Log("程序退出!");import datetime
# 參數(shù)變量 (待填寫)
ContractType = "rb1710" # 標(biāo)的物合約代碼 ,螺紋鋼 1710 合約 目前主力合約
UsedRatio = 0.5
# 全局變量 (待填寫)
Interval = 500; # 輪詢時(shí)間 , 毫秒 , 500 毫秒 = 0.5 秒
Balance_Unit = 0
ContractTypeInfo = None # 合約信息
initAccount = None # 初始賬戶信息
LONG = 1
SHORT = 2
# 功能函數(shù) (待填寫)
def loop(): # 主循環(huán)函數(shù)
pass
def CheckBalance_Unit(Direction):
global ContractType,UsedRatio,Interval,Balance_Unit,ContractTypeInfo,initAccount,LONG,SHORT
ContractTypeInfo = exchange.SetContractType(ContractType)
Log("標(biāo)的物合約信息:", ContractTypeInfo)
Balance_Unit = _N(initAccount.Balance * UsedRatio / 10, 2)
Log("賬戶信息:", initAccount, "資金分配 10份,一份為:", Balance_Unit)
ticker = _C(exchange.GetTicker)
OneContractMargin = ContractTypeInfo.VolumeMultiple * ticker.Last * (ContractTypeInfo.LongMarginRatio if Direction == LONG else ContractTypeInfo.ShortMarginRatio)
if Balance_Unit < OneContractMargin * 1.2:
Log("最新價(jià)格:" + ticker.Last + "調(diào)整系數(shù)1.2" + " ,資金可用部分的10分之一 不足 開" + ("多" if Direction == LONG else "空") + "1手合約," + "1手合約需:" + OneContractMargin)
else:
Log("最新價(jià)格:" + ticker.Last + "調(diào)整系數(shù)1.2" + "1份資金 可開:", "多" if Direction == LONG else "空", _N(Balance_Unit / OneContractMargin, 0));
nowAccount = _C(exchange.GetAccount);
if nowAccount.Balance < Balance_Unit:
Log("當(dāng)前賬戶資金已小于初始資金可用部分的十分之一。當(dāng)前資金:" + nowAccount.Balance + ", 初始資金可用部分的十分之一為:" + Balance_Unit)
elif nowAccount.Balance < OneContractMargin * 1.2:
Log("資金不足:" + JSON.stringify(nowAccount) + ", 系數(shù)1.2,1手合約保證金:" + OneContractMargin)
# 入口函數(shù) main
def main():
# 程序的初始化工作 (待填寫)
global ContractType,UsedRatio,Interval,Balance_Unit,ContractTypeInfo,initAccount,LONG,SHORT
while True:
initAccount = exchange.GetAccount()
if exchange.IO("status") and initAccount is not None:
break
LogStatus("等待交易時(shí)間獲取賬戶信息初始化!" + "時(shí)間:", datetime.datetime.now().strftime('%Y-%m-%d'))
Sleep(Interval)
CheckBalance_Unit(LONG)
CheckBalance_Unit(SHORT)
# 主循環(huán), 程序完成初始化后在此 循環(huán)執(zhí)行,直到手動(dòng)關(guān)閉。
LoginState = None
nowTimeStamp = 0
while True:
nowTimeStamp = datetime.datetime.now();
if exchange.IO("status"):
LoginState = True
loop()
else:
LoginState = false
LogStatus("時(shí)間:", _D(nowTimeStamp),"已連接服務(wù)器" if LoginState else "未連接服務(wù)器!")#, 待顯示的一些信息可以寫在此處,如賬戶信息,實(shí)時(shí)行情,程序狀態(tài)
Sleep(Interval) # 暫停 0.5 秒, 避免輪詢頻率過高,訪問交易所服務(wù)器過于頻繁導(dǎo)致問題。
def onexit():
# 做一些在程序停止時(shí)的 收尾工作。(待填寫)
Log("程序退出!")北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。