헤지 전략에는 다양한 유형의 헤지가 있습니다. 크로스 마켓 헤지, 크로스 페리오드 헤지 등. 오늘날 우리는 크로스 화폐 헤지에 대해 이야기 할 것입니다. 이는 블록체인 자산의 양적 거래에서 정확히 크로스 화폐 헤지 전략입니다. 일반적으로 헤지 거래의 주제는 동일하며 크로스 화폐 헤지는 다른 주제를 구매 및 판매하는 것을 포함합니다. 동일한 품종을 헤지 할 때 우리는 가격 차이를 헤지 거래의 구매 및 판매 가격으로 사용할 수 있습니다. 동일한 품종의 가장 간단한 크로스 마켓 헤지에 대해 가격 차이는 특정 범위 내에서 반복적으로 변동합니다. 가격 차이는 크로스 화폐 헤지의 구매 및 판매 가격으로 사용할 수 없습니다. 다른 통화의 가격 차이는 관찰하기가 매우 직관적이지 않기 때문에 가격 비율은 일반적으로 구매 및 판매 가격으로 사용됩니다.
예를 들어: 거래 쌍 A: LTC_USDT 거래 쌍 B: ETH_USDT
개설 포지션을 가격 비율 값에 따라 분배합니다.Price of Trading pair A/Price of Trading pair B
. 비중이 클수록 A를 팔고 B를 구매할 수 있습니다. 비중이 감소하면 A를 사서 B를 판매합니다. 각 헤지의 동등한 USDT 금액은 실제로 LTC/ETH의 상대 가격에 기반한 그리드 거래 전략입니다. 전략 아이디어는 복잡하지 않습니다. 그러나 이러한 종류의 헤지 포트폴리오가 실제로 LTC를 가격하는 앵커 가격 통화로 ETH를 사용하는 것이 주목되어야합니다. 앵커 가격이 일방적인 추세에서 벗어날 가능성이 있습니다. 대부분의 경우 변동적인 추세가 될 수 있지만이 위험을 고려하고 주목해야합니다.
FMZ 퀀트 트레이딩 플랫폼을 사용하여 전략 프로토타입을 작성하는 것이 쉽습니다.
전략 코드가 실행될 때, 그것은 참조해야 합니다그리고
/*backtest
start: 2019-05-01 00:00:00
end: 2019-11-04 00:00:00
period: 1m
exchanges: [{"eid":"OKEX","currency":"LTC_USDT","balance":100000,"stocks":30},{"eid":"OKEX","currency":"ETH_USDT","balance":100000,"stocks":30}]
*/
/*
A exchanges[0] : EOS_USDT
B exchanges[1] : ETH_USDT
*/
var Interval = 500
// parameters
var numPoint = 100 // Number of nodes
var distance = 0.08 // Proportional distance
var amountPoint = 100 // Node amount in USDT
var arrHedgeList = []
function main () {
var isFirst = true
while(true) {
var rA = exchanges[0].Go("GetTicker")
var rB = exchanges[1].Go("GetTicker")
var tickerA = rA.wait()
var tickerB = rB.wait()
if (tickerA && tickerB) {
var priceRatioSell = tickerB.Buy / tickerA.Sell // B sell , A buy
var priceRatioBuy = tickerB.Sell / tickerA.Buy // B buy , A sell
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint,
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
for (var j = 0 ; j < arrHedgeList.length; j++) {
if (priceRatioSell > arrHedgeList[j].priceRatio && arrHedgeList[j].isHold == false) {
// B sell , A buy
Log("Hedging, price ratio", priceRatioSell, "#FF0000")
$.Buy(exchanges[0], arrHedgeList[j].amount / tickerA.Sell)
$.Sell(exchanges[1], arrHedgeList[j].amount / tickerB.Buy)
arrHedgeList[j].isHold = true
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
if (priceRatioBuy < arrHedgeList[j].coverRatio && arrHedgeList[j].isHold == true) {
// B buy , A sell
Log("hedge, price ratio", priceRatioBuy, "#32CD32")
$.Sell(exchanges[0], arrHedgeList[j].amount / tickerA.Buy)
$.Buy(exchanges[1], arrHedgeList[j].amount / tickerB.Sell)
arrHedgeList[j].isHold = false
LogStatus(_D(), exchanges[0].GetAccount(), "\n", exchanges[1].GetAccount())
$.PlotLine("ratio", (priceRatioSell + priceRatioBuy) / 2)
break
}
}
}
Sleep(Interval)
}
}
기본 백테스팅 설정을 사용하세요:
그것은 자신의 아이디어의 전략을 구축하기 위해 코드 몇 십 줄만 사용되었다는 것을 볼 수 있습니다. FMZ 양자 거래 플랫폼에서 아이디어의 프로토 타입을 구현하는 것은 매우 쉽습니다. 위의 그림에 따르면,이 가격 비율은 대부분의 시간을 변동하지만 특정 추세가있을 것입니다. 최적화 방향은 헤지링 중에 위치 제어 또는 특정 트렌드 식별을 추가 할 수 있습니다. 포지션 컨트롤의 관점에서, 당신은 각 헤지 노드의 헤지 금액을 증가시킬 수 있습니다. 예를 들어 코드에서:
if (isFirst) {
for (var i = 0 ; i < numPoint ; i++) {
var point = {
priceRatio : priceRatioSell + (i + 1) * distance,
coverRatio : priceRatioSell + i * distance,
amount : (0.08 * i + 1) * amountPoint, // 8% of amountPoint per increment
isHold : false,
}
arrHedgeList.push(point)
}
isFirst = false
}
이렇게 하면 상대적으로 큰 포지션은 높은 가격 비율을 가진 포지션에 집중될 수 있으며, 가격 비율이 낮을 때 큰 포지션이 점유되는 것을 피할 수 있습니다. 물론, 이러한 크로스 화폐 헤딩은 매우 위험합니다. 한 화폐의 가격이 다른 화폐의 가격에 비해 계속 상승하면 부동 손실이 발생합니다. 따라서 크로스 화폐 헤딩은 두 화폐 사이의 더 강한 상관관계를 필요로합니다.
이 전략은 단지 초기 DEMO일 뿐이며, 더 개선되고 최적화 될 수 있습니다.