60줄의 코드가 아이디어를 구현합니다. 계약 복사 전략입니다.

저자:작은 꿈, 창작: 2022-03-19 14:37:08, 업데이트: 2023-09-20 09:03:57

img

网格策略、马丁策略这种喜欢震荡行情的策略有其固有弊端,在ETH合约市场上也测试了一段时间的类似策略。也经常和FMZ.COM上的新老玩家们聊天分享经验。对于此类策略,有一点是非常赞同一位朋友的说法的。那就是币圈中做合约,做多相对于做空风险小了那么一丢丢。或者简单说就是下跌最惨就是归零,上涨是无限的。

그렇다면 마틴, 그레이트 같은 전략은 단지 더 많이 하고, 아무것도 하지 않고, 긴 구간 분포 중복을 당기는 것이 양면으로 하는 것보다 더 위험할까요? 이 아이디어는 좋은 것 같지만 실제 전쟁에서 견딜 수 있는지 아무도 모릅니다. 하지만 적어도 우리는 간단한 리테스트를 통해 이 아이디어를 테스트 할 수 있습니다. 그래서 우리는 오늘 기사의 주제를 가지고 있습니다. 계약 중복 전략을 설계하십시오.

基于FMZ.COM迅捷开发

이 아이디어를 구현하는 코드는 플랫폼의 유연성, 인터페이스 포장, 강력한 검색 시스템 등으로 인해 매우 간단합니다. 전체 코드는 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)
    }
}

이 프로젝트의 경우, 이 프로젝트의 경우,

img

이 몇 가지 변수들만.

이 수십 줄의 코드에서 반복되는 효과를 보세요.

이 비디오는 다른 동영상에서 볼 수 있습니다.

img

다시 테스트 실행:

img

img

그것은 매우 네트워크, 마틴 유형의 전략의 맛 ~;; 입학 학습에 새로운 동료는 긴 전략에 대한 두려움이, 쉽게 설득 될 수 있습니다;; 짧은 정제 전략 입학에 더 적합, 더 쉽게 전략적 아이디어를 소화, 논리 디자인을 학습 ~;;

전략 코드는 학습, 연구용으로만 쓰여집니다.


관련

더 많은

알레/upload/asset/1dd6dcfd4579dc0b239a6.jpeg 실행 후 오류가 발생하고 계속 문서를 붙이고 문서를 삭제하는 무한한 순환, 어떻게 해결할 수 있습니다

꿈은 8자리입니다.이 전략은 비엔인에서만 실행될 수 있을까요?

꿈은 8자리입니다.자금 성장률은 어떻게 될까요?

꿈은 8자리입니다.왜 정책 주소가 없나요? 정책 소스코드를 복사하는 것은 불가능합니다.

작은 꿈여러 디스크가 실행되는지, 서버에 두 개의 디스크가 실행되는 경우 빈도가 두 배로 증가하는지, 그리고 기타.

알레/upload/asset/1dd36e54848c3bdf8c759.jpeg 논리적으로 이 변수는 2회 회로 초당 최대 120회로 초과되지 않습니다.

작은 꿈안녕하세요, 이것은 전략과 관련이 없습니다, 당신은 MAC 언어 템플릿의 매개 변수에서 라운치 간격을 설정할 수 있습니다.

알레/upload/asset/1dce38677beaf3c7ca065.jpeg 현재 비엔나는 메이 언어 정책을 지원하지 않습니다. 웹에서 실시간 업데이트를 어떻게 해야 하는지 알려줍니다.

작은 꿈이 글은 FMZ의 수량화를 지지하는 글입니다.

알레좋아요, 감사합니다.

작은 꿈안녕하세요, 이것은 교육 전략입니다. 주로 설명하는 아이디어입니다. 이안 상시 계약에서 실행할 수 있습니다. OK 실행은 정책에 대한 변경이 필요합니다. 위의 문제의 이유는 다음 단위가 소수이기 때문입니다. OKX는 다음 단위가 계약의 전체 숫자로 요구됩니다.

작은 꿈모든 것이 실행될 수 있습니다. 즉, 매개 변수를 조정하면 작동합니다.

작은 꿈이 전략은 단지 교육 전략일 뿐이고, 실제를 사용하지 말고, 연구 학습을 재검토할 수 있다. 정책의 소스 코드를 복사할 수도 있고, 또한 정책 파라미터, 예를 들어 문서의 스크린샷과 같은 파라미터들을 추가할 수도 있다.

작은 꿈2를 설정하면 2배가 됩니다.