За последние два месяца аккаунт под названием print ((money) стал очень популярным, так как он заработал в сотни раз больше прибыли на Binance Perpetual Swap, а скриншот его дохода часто можно увидеть в различных группах коммуникаций. Кривая прибыли, которая едва снизилась, вызвала ревность у многих людей, а некоторые сомневались в его подлинности. Но мой пятидневный опыт с 23 по 27 октября подтвердил, что высокочастотная стратегия может принести столь драматический показатель доходности на высоковолатильных рынках.
Мне потребовалось около двух дней, чтобы написать стратегию, и один день, чтобы внести корректировку; Он официально начал работать на Binance Perpetual Swap 23 октября. По сравнению с первоначально перезаряженным 100USDT, я заработал 8800USDT 27 числа, с показателем доходности более чем в 80 раз, и в течение периода почти не было никакого снижения. Общий показатель доходности достиг 15-го места в списке рейтинга доходности истории Binance и занял второе место в списке рейтинга доходности октября. Из-за сомнительной статистики Binance рейтинг должен быть на самом деле выше.
Не все рынки и даты подходят для высокочастотных стратегий, а условия для работы высокочастотных ботов очень строги.
1.Поддержка рынка высокочастотных
В течение последних 5 дней вечные контракты FIL торговались только на Binance. Рынок был очень хаотичным, когда FIL только был запущен. Распространение цены между вечной ценой и спотной ценой однажды достигло более 30%, что привело к серьезным различиям между длинной и короткой в FIL. Открытая цена 16 упала с 60 до 26, а затем начала восстанавливаться, и снова упала до 19 и восстанавливалась до 37. Дни с высоким объемом торговли занимали третье место среди всех торговых пар, только после установленных BTC и ETH, что является золотой возможностью для высокочастотной торговли. Жаль, что я не получил бота впервые, и я пропустил первые несколько дней, но мне удалось догнать котировки рынка 24 и 25 числа, и большая часть доходности пришла от этой цены.
Похожие возможности были в период, когда впервые была запущена SUSHI/YFI/YFII/UNI, с большой волатильностью и объемом торговли, и print(money) воспользовался этими возможностями. Когда эти валютные символы больше не могли приносить прибыль, снова появилась FIL. В двух возможностях получения прибыли, одна из них - горячая концепция DEFI, а другая - громкая FIL. В нынешних обстоятельствах потребуется много времени, чтобы ждать следующей возможности.
2.TradingСтавка сбора
Высокочастотные стратегии очень чувствительны к сборам за обработку. Минимальная плата за возврат в размере 0,00002 от производителя Binance невысока. Хотя возврат очень мал, его можно понять как бесплатный от сборов за обработку. Поэтому это возродило партию старых высокочастотных стратегий со времени спота без передачи сборов. Конечно, если рынок сильно колеблется, плата за обработку относительно менее важна.
3.Высокая частота
Когда рынок быстро менялся, моя стратегия, в большинстве случаев, завершала открытие и закрытие позиций в течение 100 миль.
4.Коэффициент выигрыша
Высокочастотные стратегии должны делать точные суждения о краткосрочном тренде рынка, и чем выше уровень выигрыша, тем больше объем ордера, и чем больше объем краткосрочной торговли, тем больше объем ордера. Из-за большого объема торговли и высокой частоты торговли, FIL имеет высокую точность прогноза тренда в течение нескольких секунд. Аналогично, ожесточенные различия между длинным и коротким дают производителю возможность установить соответствующие позиции и закрыть позиции. Это отличается от ранней стратегии высокой частоты спота. Теперь производитель имеет скидку, но получатель все еще имеет высокую плату, поэтому он может выиграть только один заказ. Представьте, что если в короткое время все быстрые, высокочастотная стратегия не сможет купить производителя заказа из-за платы получателя, и, таким образом, не сможет обеспечить прибыль.
Когда рынок шел гладко, процент выигрыша моей стратегии был выше 80%, а соотношение прибыли и убытка было больше 1. Когда на рынке не было очевидной тенденции, долгосрочный процент выигрыша также был выше 65%, а соотношение прибыли и убытка было ниже 1.
5.Объем высокочастотной стратегии
Объем высокочастотной стратегии, очевидно, невысокий. Из-за большого рычага бессрочного контракта объем 100u также может управлять фондом более 2000u, поэтому высокочастотная стратегия может начинаться с небольшой суммы фонда. Но общая чистая прибыль не слишком велика. Конкретный объем зависит от объема торговли на рынке.
6.Risk
Если позиция открыта, то есть риски. Преимущество высокочастотной стратегии заключается в том, что количество сделок очень высокое, и потеря одного раза может быть быстро компенсирована путем выполнения еще 10 сделок, а вывод очень мал, когда период продлен. Чем больше позиция, тем больше риск. Поэтому невозможно увеличить позицию без ограничения. Должен быть определенный механизм отрицательной обратной связи. Если есть больше позиций, увеличьте закрытую сумму и уменьшите открытую сумму, чтобы гарантировать, что время удержания позиций короткое. Если есть позиции, и это просто против тренда, будет большой убыток, поэтому стратегия предназначена для оценки направления, чтобы гарантировать, что позиции открываются на стороне тренда в резком росте или падении, что еще больше снижает риск за счет того, что краткосрочный тренд не является небольшим, и у вас часто будет небольшой убыток.
Принцип: Получите недавно выполненные сделки, глубину и текущую позицию, судите о тренде в соответствии с сделками и определите объем открывающейся позиции в соответствии с объемом торговли. Если тренд является ростом, откройте длинные позиции с производителем и закрывайте длинные позиции одновременно. Если вы держите короткие позиции прямо сейчас, закрывайте их сначала. Операция падения тренда аналогична.
Идеи высокочастотных стратегий очень последовательны. Моя стратегия на этот раз основана на идеях высокочастотной стратегии в 2014 году и стратегии бота по сбору прибыли OKCoin, которую я ранее раскрыл. Исходный код этих двух стратегий можно найти на платформе FMZ. Если вы полностью понимаете обе стратегии, то в высокочастотной торговле не будет для вас никаких секретов.
Структура: Стратегия использует асинхронную структуру (см. расширенное руководство в FMZ
Forums Здесь нет исходного кода, только простое описание используемых функций, не полный код, который можно запустить, и он не включает в себя основную логику. API все используют протокол REST и не используют веб-сокеты. Сервер находится в Токио, что приводит к более низкой задержке.).
// set trading pair and leverage
var pair = Symbol+'USDT'
exchange.SetCurrency(Symbol+'_USDT')
exchange.SetContractType("swap")
exchange.IO("api", "POST", "/fapi/v1/leverage", "symbol="+pair+"&leverage="+5+"×tamp="+Date.now())
// basic trading precision limits
var price_precision = null
var tick_size = null
var amount_precision = null
var min_qty = null
var exchange_info = JSON.parse(HttpQuery('https://fapi.binance.com/fapi/v1/exchangeInfo'))
for (var i=0; i<exchange_info.symbols.length; i++){
if(exchange_info.symbols[i].baseAsset == Symbol){
tick_size = parseFloat(exchange_info.symbols[i].filters[0].tickSize)
price_precision = exchange_info.symbols[i].filters[0].tickSize.length > 2 ? exchange_info.symbols[i].filters[0].tickSize.length-2 : 0
amount_precision = exchange_info.symbols[i].filters[1].stepSize.length > 2 ? exchange_info.symbols[i].filters[1].stepSize.length-2 : 0
min_qty = parseFloat(exchange_info.symbols[i].filters[1].minQty)
}
}
function updatePosition(){//obtain positions, Symbol as trading pair, adding the trading pair parameter not returning the full currency symbol can reduce API occupation once
position = exchange.IO("api", "GET","/fapi/v2/positionRisk","timestamp="+Date.now()+"&symbol="+Symbol+"USDT")
}
function updateTrades(){// obtain the recent trades
trades = exchange.IO("api", "GET","/fapi/v1/trades","limit=200×tamp="+Date.now()+"&symbol="+Symbol+"USDT")
}
function updateDepth(){// obtain the depth
depth = exchange.IO("IO", "api", "GET","/fapi/v1/depth","timestamp="+Date.now()+"&symbol="+Symbol+"USDT")
}
function onTick(){
updateDepth()
updateTrades()
updatePosition()
makeOrder() // calculate the order price and amount, and then make orders
updateStatus() // update the status information
}
//main loop, with sleep time of 100ms, and the loop delay is usually within 30ms
function main() {
while(true){
if(Date.now() - update_loop_time > 100){
onTick()
update_loop_time = Date.now()
}
Sleep(1)
}
}
Эта стратегия слишком требовательна на рынке, и в большинстве случаев не приносит прибыли, а также имеет небольшой объем. Если все активно поделятся этой статьей на Weibo, группе WeChat, WeChat Moments и других платформах, и просмотров более 100,000, я рассмотрю возможность аренды, чтобы позволить всем испытать фактическую операцию, и даже раскрыть исходный код стратегии в соответствии с этой статьей в будущем. Следуйте за FMZ на WeChat, отправьте