
그리드 전략과 마팅게일 전략과 같이 변동성이 큰 시장을 선호하는 전략에는 고유한 단점이 있습니다. 유사한 전략이 ETH 계약 시장에서 얼마 동안 테스트되었습니다. 저는 FMZ.COM에서 새로운 플레이어와 오래된 플레이어들과 자주 대화를 나누며 경험을 공유합니다. 이런 유형의 전략과 관련해서, 한 친구가 한 말에 강력히 동의하는 점이 하나 있습니다. 즉, 암호화폐 시장에서 계약을 체결할 때 롱 포지션을 취하는 위험은 숏 포지션을 취하는 위험보다 약간 낮습니다. 간단히 말해서, 최악의 하락은 0이지만 상승 가능성은 무한합니다.
그렇다면 마팅게일과 그리드 같은 전략은 롱 포지션만 취하고 숏 포지션은 취하지 않으며, 바닥 선정 위험을 장기적으로 분산하는 것이 양자 간 거래를 하는 것보다 더 나을까요? 이런 아이디어는 좋지만, 실제로 실행될 수 있을지는 아무도 모릅니다. 하지만 적어도 우리는 이 아이디어를 간단히 백테스트할 수 있습니다. 오늘 기사의 주제는 ‘계약 최저가 낙찰 전략 설계’입니다.
이 아이디어를 구현하는 코드는 플랫폼의 유연성, 인터페이스 캡슐화, 강력한 백테스팅 시스템 덕분에 정말 매우 간단합니다. 전체 코드는 60줄밖에 되지 않습니다(코드 작성 표준을 위해 많은 약어는 사용하지 않습니다).
전략 설계는 매우 간단합니다. 논리의 시작 시 초기 가격에 따라 매수 주문은 아래로 간격을 두고 배치됩니다. 가격이 계속 하락하면 매수 주문을 계속 배치하여 바닥 낚시를 계속합니다. 그런 다음, 포지션 가격과 특정 이익 차이를 기준으로 마감 주문을 내고 포지션이 마감될 때까지 기다립니다. 포지션이 청산된 경우 위의 논리는 현재 가격을 초기 가격으로 반복됩니다. 이 전략에서는 숏 포지션을 취하지 않고, 롱 포지션만 취합니다.
전략 소스 코드:
function cancelAll() {
while (true) {
var orders = _C(exchange.GetOrders)
if (orders.length == 0) {
break
}
for (var i = 0 ; i < orders.length ; i++) {
exchange.CancelOrder(orders[i].Id, orders[i])
Sleep(interval)
}
}
}
function getLong(arr, kind) {
var ret = null
for (var i = 0 ; i < arr.length ; i++) {
if (arr[i].Type == (kind == "pos" ? PD_LONG : ORDER_TYPE_BUY)) {
ret = arr[i]
}
}
return ret
}
function pendingBidOrders(firstPrice) {
var index = 0
var amount = baseAmount
while (true) {
var pos = _C(exchange.GetPosition)
var price = firstPrice - index * baseSpacing
amount *= ratio
index++
exchange.SetDirection("buy")
exchange.Buy(price, amount)
if (pos.length != 0) {
var longPos = getLong(pos, "pos")
if (longPos) {
exchange.SetDirection("closebuy")
exchange.Sell(longPos.Price + profitTarget, longPos.Amount)
}
}
while (true) {
Sleep(interval)
if (!getLong(_C(exchange.GetOrders), "orders")) {
cancelAll()
break
}
if (!getLong(_C(exchange.GetPosition), "pos")) {
cancelAll()
return
}
}
}
}
function main() {
exchange.SetContractType(symbol)
while (true) {
pendingBidOrders(_C(exchange.GetTicker).Last)
}
}
매개변수 설계도 매우 간단합니다.

매개변수는 몇 가지뿐입니다.
백테스트 시간 범위를 설정하세요:

백테스트 실행:


그리드 또는 마틴 유형의 전략과 매우 흡사해 보입니다~. 방금 학습을 시작한 신입생들이 장기적인 전략을 두려워하고 쉽게 낙담하는 경우가 있나요? 전략에 대한 간략하고 간결한 소개가 더 적합하며, 이를 통해 전략적 아이디어를 더 쉽게 이해하고 논리적 설계를 배울 수 있습니다.
전략 코드는 학습 및 연구 목적으로만 사용됩니다.