В последнее время появилось много новостей о рынке цифровой валюты и бирже. В течение некоторого времени все друзья валюты были в состоянии паники, беспокоясь о безопасности своих активов блокчейна. Также есть много небольших объявлений о 10% и 20% скидке на неработающие подержанные валюты в различных группах валютного рынка. Существует много разновидностей стратегий money printer
, который нелегко найти.
Простите меня за мой плохой английский.
Например, путем хеджирования контрактов мы можем получать прибыль, в то же время максимально снижая убытки.
Стратегия DEMO
/*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 // Step length of adding position price
function main() {
var pos1 = []
var pos2 = []
var ct = "quarter" // For example, quarterly contract
exchanges[0].SetContractType(ct)
exchanges[1].SetContractType(ct)
var diff = 0
while (true) {
var r1 = exchanges[0].Go("GetDepth") // Exchange A
var r2 = exchanges[1].Go("GetDepth") // Exchange 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)
}
}
Логика стратегии:
Стратегия начинается с инициализации переменных позиций pos1 и pos2 в виде пустых массивов. Стратегия входит в основную петлю. В начале каждой петли для расчета разницы цен получаются глубинные данные (данные ордерной книги) контрактов двух бирж. Если разница цен продолжает расширяться и выходит за пределы
Принцип очень прост, то есть, когда разница в цене велика, то де-хедж. При ожидании потери ожидаемой потери валютной позиции, закрыть позицию. Если разница в цене продолжает расширяться, продолжать добавлять позиции для хеджирования до ожидаемой потери валютной позиции. Важными параметрами являются: сумма потери для закрытия позиции, длина шага добавления разницы в цене позиции и сумма хеджирования.
Стратегия довольно примитивная, просто для проверки идеи, реальный бот не доступен.Еще есть много вопросов, которые следует рассмотреть для настоящего бота, например, является ли контракт, которым следует торговать, валютным стандартом или стандартом U, и являются ли множители различных контрактов на биржах A и B одинаковыми.
Таким образом, одна биржа потеряет деньги, а часть потери станет частью прибыли другой биржи (разница в цене, может быть хеджирование потери, то есть убыток больше, чем прибыль).$.OverShort
, $.OpenShort
, это функции интерфейса шаблона. Чтобы запустить вышеуказанную демонстрацию, вам нужно ссылаться на эту библиотеку классов.
Приведенный выше прототип стратегии - это простое исследование, и в фактической работе может быть больше деталей, например, количество позиций может быть спроектировано на инкрементальные.