Type/to search
0
Follow
1
Followers
Размышления о движении активов с помощью стратегии хеджирования контрактов
Discussions
Created 2020-10-20 16:48:32  Updated 2023-09-26 20:59:29
 2
 2787

img

Размышления о движении активов с помощью стратегии хеджирования контрактов

В последнее время в мире криптовалют появилось много новостей, в том числе и новости о биржах. Некоторое время все энтузиасты криптовалют пребывали в панике, беспокоясь о безопасности своих блокчейн-активов. В различных криптовалютных группах можно найти множество небольших объявлений, предлагающих скидки в размере 10% или 20% на неиспользуемые подержанные монеты. Многие люди ищут различные стратегии, чтобы «одновременно получать постоянную потерю денег и постоянную прибыль». Многие друзья-монетчики также шутили: «Если есть стабильный способ заработать деньги, зачем нам стабильный способ потерять деньги!»
Действительно, вещи, которые стабильно приносят деньги и стабильно теряют деньги, — этоmoney printer, и его нелегко найти.
Простите мой плохой английский.

Однако нестабильность все еще существует, например, посредством хеджирования контрактов можно одновременно получать убытки и прибыль.

ДЕМО-стратегия

javascript
/*backtest start: 2020-09-30 00:00:00 end: 2020-10-19 00:00:00 period: 1d basePeriod: 1m exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}] */ var step = 20 // 加仓价格步长 function main() { var pos1 = [] var pos2 = [] var ct = "quarter" // 例如用季度合约 exchanges[0].SetContractType(ct) exchanges[1].SetContractType(ct) var diff = 0 while (true) { var r1 = exchanges[0].Go("GetDepth") // A交易所 var r2 = exchanges[1].Go("GetDepth") // B交易所 var depth1 = r1.wait() var depth2 = r2.wait() if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) { if(pos1.length == 0 && pos2.length == 0) { var info1 = $.OpenShort(exchanges[0], ct, 10) var info2 = $.OpenLong(exchanges[1], ct, 10) pos1 = _C(exchanges[0].GetPosition) pos2 = _C(exchanges[1].GetPosition) diff = depth1.Bids[0].Price - depth2.Asks[0].Price } else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) { var info1 = $.OpenShort(exchanges[0], ct, 10) var info2 = $.OpenLong(exchanges[1], ct, 10) pos1 = _C(exchanges[0].GetPosition) pos2 = _C(exchanges[1].GetPosition) diff = depth1.Bids[0].Price - depth2.Asks[0].Price } } if(pos1.length != 0 && pos1[0].Profit < -0.001) { var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount) var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount) pos1 = _C(exchanges[0].GetPosition) pos2 = _C(exchanges[1].GetPosition) diff = 0 } LogStatus(_D(), diff) Sleep(500) } }

img

img

Логика стратегии:
Стратегия начинается с инициализации переменных позиции pos1 и pos2 как пустых массивов. Стратегия входит в основной цикл, и в начале каждого цикла она получает данные о глубине (данные книги ордеров) контрактов двух бирж и рассчитывает разницу цен. Если разница в цене продолжает увеличиваться сверх «последней разницы в цене плюс один шаг», продолжайте хеджировать и наращивать позиции. При удержании позиции, если убыток первой биржевой позиции превысит определенное значение (например: -0,001), позиция будет закрыта. Этот процесс повторяется многократно.

Принцип на самом деле очень прост: если разница в ценах велика, хеджирование нецелесообразно. Подождите, пока биржа, на которой вы ожидаете потерять деньги, не будет удерживать убыток, а затем закройте позицию. Если спред продолжает расширяться, продолжайте увеличивать позицию для хеджирования, пока биржа, на которой вы ожидаете потерять деньги, не будет удерживать убыток. Наиболее важными параметрами являются: размер убытка, необходимый для закрытия позиции, размер шага разницы цен для добавления позиций и сумма хеджирования.

Стратегия относительно проста и используется только для проверки идеи. Она не применима в реальной торговле. В реальной торговле по-прежнему необходимо учитывать множество вопросов, например, основан ли торгуемый контракт на валюте или U, одинаковы ли множители различных контрактов на биржах A и B и т. д.

Таким образом, если одна биржа теряет деньги, то убыток примерно станет прибылью другой биржи (из-за разницы в ценах могут возникнуть убытки от хеджирования, то есть убыток больше прибыли). Стратегия использует библиотеку фьючерсной торговли.$.CoverShort,$.OpenShortЭто интерфейсные функции шаблона. Для бэктеста и запуска вышеуказанной ДЕМО-версии вам необходимо сослаться на эту библиотеку классов.

Вышеуказанный прототип стратегии — это всего лишь простейшее исследование. В реальной работе может потребоваться рассмотреть больше деталей. Например, можно спроектировать размер увеличения позиции как инкрементный. Это всего лишь отправная точка. Подобные стратегии должны быть более оптимизированы. Эксперты могут давать предложения.

Related Recommendations
Comment
All comments (2)

    请尽快实装吧,要是管用我想租用,把我的游戏币提出来

    6 years ago

    作者开头其实说了,不稳定,搞不好是有可能反搬回去的。

    6 years ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)