전략의 목적:
2월 15일, 바이낸스는 CLOAK, MOD, SALT, SUB, WINGS의 발표를 발표했다. 발표 후 관련 화폐는 즉시 하락하기 시작했으며, 일반적으로 1시간 내에 15% 하락했으며, 점점 더 많은 사용자가 뉴스를 알게 되었으며, 하락이 계속되었고 반향이 없었으며 지금까지 절반으로 떨어졌습니다. 발표 후 첫 번째에 보유한 동전을 판매 할 수 있다면 많은 손실을 복구 할 수 있습니다.
이 전략은 FMZ 양적 거래 플랫폼 (옛 BotVS) 에서 실행됩니다.
아이디어:
바이낸스 보안 발표 페이지를 탐색하고 가장 가까운 두 발표 시기의 정보를 관찰하십시오. 특정 형식은
이 전략은 새로운 릴리스 발표를 탐색하는 키워드로
크롤링 코드:
var html = HttpQuery('https://support.binance.com/hc/zh-cn/sections/115000202591-%E6%9C%80%E6%96%B0%E5%85%AC%E5%91%8A')//Announcement page
html = html.slice(html.indexOf('article-list'),html.indexOf('pagination')) // Article list section
if(html.indexOf('will delist')>0){
if(html.slice(html.indexOf('will delist')+3,html.indexOf('</a>')) != title){ //crawl only the first delist information
var title = html.slice(html.indexOf('delist')+3,html.indexOf('</a>'))
var downList = title.split('、')
Log('New announcement is detected, the currency will be delist:', title, '@')//WeChat push release announcement
}
}
명령 코드를 취소합니다
function cancellOrder(){
var openOrders = exchange.IO('api', 'GET', '/api/v3/openOrders')//Get all unexecuted orders
for (var i=0; i<openOrders.length; i++){
var order = openOrders[i];
for (var j=0;j<downList.length;j++){
if(order.symbol.startsWith(downList[j])){
var currency = downList[j] + '_' + order.symbol.slice(downList[j].length);
Log('There is a delist currency order exist, revoked', currency)
exchange.IO("currency", currency)//To revoke a order, you need the trading pair information, so you must first switch to the trading pair.
exchange.CancelOrder(order.orderId)
}
}
}
}
체크 계좌 코드:
function checkAccount(){
var done = false
while(!done){
account = _C(exchange.GetAccount)
done = true
for (var i=0; i<account.Info.balances.length; i++){
if(downList.indexOf(account.Info.balances[i].asset)>-1 && parseFloat(account.Info.balances[i].free)>pairInfo[account.Info.balances[i].asset+'BTC'].minQty){
Log('delist currency will be emptied', account.Info.balances[i].asset)
sellAll(account.Info.balances[i].asset, parseFloat(account.Info.balances[i].free))
done = false
}
}
Sleep(1000)
}
Log('Sale completed')
}
주문 코드:
var exchangeInfo = JSON.parse(HttpQuery('https://api.binance.com/api/v1/exchangeInfo'))
var pairInfo = {} //Trading pair information, storing transaction progress, minimum trading volume and other related information, placing order will needed
if(exchangeInfo){
for (var i=0; i<exchangeInfo.symbols.length; i++){
var info = exchangeInfo.symbols[i];
pairInfo[info.symbol] = {minQty:parseFloat(info.filters[2].minQty),tickerSize:parseFloat(info.filters[0].tickSize),
stepSize:parseFloat(info.filters[2].stepSize), minNotional:parseFloat(info.filters[3].minNotional)}
}
}else{
Log('Failed to get transaction information')
}
function sellAll(coin, free){
var symbol = coin + 'BTC'
exchange.IO("currency", coin+'_BTC') //switching trading pair
var ticker = _C(exchange.GetTicker)
var sellPrice = _N(ticker.Buy*0.7, parseInt((Math.log10(1.1/pairInfo[symbol].tickerSize))))
var sellAmount = _N(free, parseInt((Math.log10(1.1/pairInfo[symbol].stepSize))))
if (sellAmount > pairInfo[symbol].minQty && sellPrice*sellAmount > pairInfo[symbol].minNotional){
exchange.Sell(sellPrice, sellAmount, symbol)
}
}
요약하자면:
위의 코드는 단지 시연을 위해, 전체 코드는 찾을 수 있습니다FMZ.COM. 발표 페이지는 한 분에 한 번 탐색 할 수 있습니다, 일반 사용자보다 판매하기에 충분한 시간이있을 것입니다.
그러나 탐색이 차단되고, 발표 형식이 변경되는 등 몇 가지 문제가 발생할 수 있습니다. 화폐가 바이낸스에 있지 않으면 다른 거래소에도이 전략을 참조 할 수 있습니다. 결국, 삭제 화폐는 모든 플랫폼에 영향을 줄 것입니다.