이 전략은 여러 선물 플랫폼 (예: OKCoin, Binance, Bitget) 에서 자금 조달율을 검색하고 모니터링합니다. 다양한 거래소에서 영구 계약 시장에 설문조사를 실시하고 자금 조달율 데이터를 검색하기 위해 병렬 스레드를 사용하여 요청 빈도를 최적화하기 위해 지연 메커니즘을 사용합니다.
플랫폼 목록, 기호 목록 및 투표 간격을 특정 거래 요구 사항에 맞게 조정할 수 있습니다.
function startFundingWorker() { exchanges.forEach((_, pos) => { __Thread(function (pos) { let e = exchanges[pos] let eName = e.GetName() let delaySettings = { 'Futures_OKCoin': 20, 'Futures_Binance': 500, } let needInterate = ['Futures_OKCoin', 'Futures_Bitget','Futures_OKX', 'Futures_KuCoin', 'Futures_MEXC', 'Futures_Crypto', 'Futures_Deribit'] let delay = function () { let n = delaySettings[eName] if (n) { Sleep(n) } } let epoch = 60000*2; let ts = 0; let fundings = {} while (true) { let now = new Date().getTime() if (now - ts < epoch) { Sleep(1000) continue } let markets = e.GetMarkets() if (!markets) { Sleep(1000) continue } if (needInterate.includes(eName)) { for (let symbol in markets) { if (symbol.includes('.swap')) { let ret = e.GetFundings(symbol) if (ret) { for (let r of ret) { fundings[r.Symbol] = r } } delay(); } } } else { let zones = [] for (let symbol in markets) { if (symbol.includes('.swap') && !zones.includes(markets[symbol].QuoteAsset)) { zones.push(markets[symbol].QuoteAsset) let ret = e.GetFundings(markets[symbol].QuoteAsset + '.swap') if (ret) { for (let r of ret) { fundings[r.Symbol] = r } } delay(); } } } ts = now __threadSetData(0, eName+"_funding", fundings) } }, pos) }) } function getFundings(eName, symbols) { let fundings = __threadGetData(0, eName+"_funding") if (!fundings) { return null } if (typeof(symbols) === 'undefined') { return fundings } let ret = {} symbols.forEach((s) => { if (fundings[s]) { ret[s] = fundings[s] } }) return ret } function main() { startFundingWorker() while (true) { exchanges.forEach((e) => { let eName = e.GetName() let fundings = getFundings(eName, ['BTC_USDT.swap', 'ETH_USDT.swap']) Log(eName, fundings) }) Sleep(5000) } }