在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ javascript轉(zhuǎn)換成python

javascript轉(zhuǎn)換成python

自己嘗試用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("程序退出!")
2018年7月15日 17:41