通貨をクロール発表爬虫類は自動的に棚の通貨政策をオフに販売されます

この爬虫類クロール通貨セキュリティ情報には、既製品であることをお金があるかどうかを判断し、お金が自動的に販売する口座残高に存在する場合、自動的に、棚に棚を通貨を決定します。人々の大半は彼らの損失を取り戻すために、通貨を販売する前に、時間がかかることが分ごとに、チェック。

戦略は、FMZ発明の定量化プラットフォーム、言語使用JavaScriptを実行します。

コピー元住所:https://www.fmz.com/strategy/137450

 

VAR exchangeInfo = JSON.parse(HttpQuery( 'https://api.binance.com/api/v1/exchangeInfo' ))
 VAR pairInfo = {} 
 VARの downList = []
 であれば{(exchangeInfo)
     のためのVAR ; I = 0私はexchangeInfo.symbols.lengthを<; Iは++ ){
         VARの情報= exchangeInfo.symbols [I]。
        pairInfo [info.symbol] = {minQty:parseFloatは(info.filters [2] .minQty)、tickerSize:parseFloatは(info.filters [0 ] .tickSize)、
            ステップサイズ:parseFloatは(info.filters [ 2] .stepSize) minNotional:parseFloatは(info.filters [3 ] .minNotional)} 
    } 
} そうでなければ{ 
    ログ( 'exchangeInfoを取得に失敗' 
} 
関数sellAll(コイン、フリー){
     VARのシンボル=コイン+ 'BTC' 
    exchange.IO( "通貨"、コイン+ '_ BTC' VaRのティッカー= _C(exchange.GetTicker)
     VAR sellPrice = _N(ticker.Buy * 0.7、のparseInt((Math.log10(1.1 / pairInfo [シンボル] .tickerSize))))
     VaRの sellAmount = _N(フリー、のparseInt((Math.log10(1.1 / pairInfo [シンボル]。ステップサイズ))))
     であれば(sellAmount> pairInfo [シンボル] .minQty && sellPrice * sellAmount> pairInfo [シンボル] .minNotional){
         VARの ID = exchange.Sell(sellPrice、sellAmount、シンボル) 
        exchange.CancelOrder(オーダー。注文ID) 
    } 
} 
関数cancellOrder(){
     VARの openOrders = exchange.IO( 'API'、 'GET'、 '/ API / V3 / openOrders' のためのVARは、 i = 0; iがopenOrdersを<長さ、iは++ ){
         VARの順序= openOrders [I]。
        VARの J = 0; J <downList.length; J ++ ){
             場合(order.symbol.startsWith(downList [J])){
                 VARの通貨= downList [J] + '_' + order.symbol.slice(downList [J] .LENGTH)。
                (ログイン初のすべての注文をキャンセルし、コインを存在上場廃止"、通貨)
                exchange.IO("通貨" 、通貨)
                exchange.CancelOrder(order.orderId)
            } 
        } 
    } 
} 
関数checkAccount(){
     VAR行わ= falseを
    しばらく(!行なわ){ 
        アカウント = _C(exchange.GetAccount)が
        行わ = 
        のためにVAR I = 0 ; I <account.Info.balances.length; iは++ ){
             場合(downList.indexOf(account.Info.balances [I] .asset)> - 1 && parseFloatは(account.Info.balances [I] .free)> pairInfo [account.Info.balances [I] .asset + 'BTC' ] .minQty){ 
                (ログ'このコインがダンプされます' 、account.Info.balances [i]は.asset)
                sellAll(account.Info.balances [I] .asset、parseFloatは(account.Info.balances [I] .free))
                行わ = 
            } 
        } 
        スリープ( 1000年
    } 
    ログ( '行わ販売' 
} 
関数メインを(){
     VARのタイトル= ''
     ながら){
         VAR = html.slice(html.indexOf( '上場廃止'HTML = HttpQuery( 'https://support.binance.com/hc/en-us/sections/115000202591-Latest-News' 
        HTML)、html.length)
         場合(HTML){
             場合(html.slice(7、html.indexOf( '</a>の'))!= タイトル){ 
                タイトル = html.slice(7、html.indexOf( '< /> ' ))           
                downList = html.slice(7、html.indexOf( '</a>のは、'))。(置き換える'と''、 ')。スプリット('、 ' 
                ログ( '新発表、上場廃止になる」、downList)
                cancellOrder()
                checkAccount()
            } { 
                ログ( '新しい発表は'が見つかりませんでした
            } 
        } {
            ログ( 'ウェブスパイダー間違った' 
        } 
        スリープ( * 1000年60 
    } 
}

 

おすすめ

転載: www.cnblogs.com/botvsing/p/10984154.html
おすすめ