템플릿 3.2: 디지털 화폐 거래 클래스 라이브러리 (융합) 현금, 선물 지원 OKCoin 선물/BitVC)

저자:작은 꿈, 생성: 2017-01-04 19:00:10, 업데이트: 2017-10-11 10:27:01

템플릿 3.2: 디지털 화폐 거래 클래스 라이브러리 (융합) 현금, 선물 지원 OKCoin 선물/BitVC)


3.1장에서는 현금 거래 템플릿을 보여 주며 현금 전략을 작성하는 데 어려움을 크게 단순화한다. 그러나 미래 거래 처리는 현금과 매우 다릅니다. 따라서 현금 템플릿을 기반으로 통합된 미래 거래 기능이 공개되어 있습니다.

img

이 글은 전라북도 전라남도 서귀포시 서귀포시 서귀포시 서귀포시 서귀포시 서귀포시 서귀포시

img

  • 현장품:

    현금 측면은 이전 디지털 화폐 현금 거래 상장과 동일합니다.

  • 미래:

    파라미터:img

    img

    이 전략의 테스트 코드는 다음과 같습니다:

    function main() {
      if (exchange.GetName() === 'Futures_OKCoin') {
          var info = exchange.SetContractType("this_week");
          Log("info 返回值:", info);
          Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
          var depth = exchange.GetDepth();
          var p = $.NewPositionManager();
          p.OpenShort("this_week", 10, depth.Bids[0].Price - 2);
          Log(exchange.GetPosition());
          Sleep(500 * 1000);
          depth = exchange.GetDepth();
          var ret = p.Cover("this_week", depth.Bids[0].Price + 2, 5);
          Log("cover ret:", ret);
          //LogProfit(p.Profit());
          Log(exchange.GetPosition());
          Log("-----------------------------测试分割线----------------------------------------");
          var depth = exchange.GetDepth();
          p.OpenLong("this_week", 20, depth.Bids[0].Price + 2);
          Log(exchange.GetPosition());
          Sleep(500 * 1000);
          depth = exchange.GetDepth();
          var ret = p.Cover("this_week", depth.Bids[0].Price - 2, 10, PD_LONG);
          Log("cover ret:", ret);
          Log(exchange.GetPosition());
          Log("-----------------------------测试分割线----------------------------------------");
          var ret = p.Cover("this_week", depth.Bids[0].Price - 3, 10, PD_LONG);
          Log("cover ret:", ret);
          var ret = p.Cover("this_week", depth.Bids[0].Price + 3, 5, PD_SHORT);
          Log("cover ret:", ret);
          Log(exchange.GetPosition());
      } else if (exchange.GetName() === 'Futures_BitVC') {
          var info = exchange.SetContractType("week");
          Log("info 返回值:", info);
          Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
          var depth = exchange.GetDepth();
          var p = $.NewPositionManager();
          p.OpenLong("week", 500, depth.Bids[0].Price + 2);
          Log(exchange.GetPosition());
          Sleep(500 * 1000);
          depth = exchange.GetDepth();
          var ret = p.Cover("week", depth.Bids[0].Price - 2, 500);
          Log("cover ret:", ret);
          Log(exchange.GetPosition());
          Log("-----------------------------测试分割线----------------------------------------");
          var info = exchange.SetContractType("week");
          Log("info 返回值:", info);
          Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
          var depth = exchange.GetDepth();
          p.OpenShort("week", 600, depth.Bids[0].Price - 2);
          Log(exchange.GetPosition());
          Sleep(500 * 1000);
          depth = exchange.GetDepth();
          var ret = p.Cover("week", depth.Bids[0].Price - 2, 500, PD_SHORT);
          Log("cover ret:", ret);
          Log(exchange.GetPosition());
          Log("-----------------------------测试分割线----------------------------------------");
          var ret = p.Cover("week", depth.Bids[0].Price + 3, 100, PD_SHORT);
          Log("cover ret:", ret);
          //p.Cover("week", depth.Asks[0].Price - 3, 300, PD_LONG);
          Log(exchange.GetPosition());
      } else if(exchange.GetName() === 'huobi' || exchange.GetName() === 'OKCoin'){
          Log($.GetAccount());
          Log($.Buy(0.5));
          Log($.Sell(0.5));
          exchange.Buy(1000, 3);
          $.CancelPendingOrders(exchanges[0]);
          Log($.Cross(30, 7));
          Log($.Cross([1,2,3,2.8,3.5], [3,1.9,2,5,0.6]));
      }
    }
    

    사용:img

정책에서 테스트 코드 (테ಂಪ್लेट 참조를 선택)

img

테스트 전략:

function main(){
    var p = $.NewPositionManager();
    var i = 0;
    exchanges[0].SetContractType("this_week");
    var isFirst = true;
    var ret = null;
    while(true){
        var depth = _C(exchanges[0].GetDepth);
        var positions = _C(exchanges[0].GetPosition);
        var len = positions.length;
        if(isFirst === true && i % 3 === 0 && len === 0){
            ret = p.OpenLong("this_week", 1 + (i % 3) + (i % 2), depth.Asks[0].Price);
            isFirst = false;
        }else if(isFirst === false){
            ret = p.OpenShort("this_week", 1 + (i % 3) + (i % 2), depth.Bids[0].Price);
            isFirst = true;
        }else{
            for(var j = 0 ; j < len; j++){
                if(positions[j].Type === PD_LONG){
                    ret = p.Cover("this_week", depth.Bids[0].Price - 2, positions[j].Amount, PD_LONG);
                }else if(positions[j].Type === PD_SHORT){
                    ret = p.Cover("this_week", depth.Asks[0].Price + 2, positions[j].Amount, PD_SHORT);    
                }
                Log("ret:", ret);
            }
        }
        Log("ret", ret, "---------------------#FF0000");
        i++;
        Sleep(1000 * 60 * 15);
    }
}

이 글의 저자는 이 글의 작성자입니다.


더 많은

왜 JS의 암호화폐 거래 자료를 찾을 수 없는가?

저는 나쁜 삼촌이 아닙니다.$Buy ((0.5) 를 사용하는 가격은 얼마입니까?

불법자Python 버전도 OKEX 선물을 지원합니까?

단순함ret는 무엇을 의미하는지, 영어 용어 줄임말은 무엇입니까? RECOVER T?

단순함PY 버전은 어디 있나요?

yhfggPython에 익숙한 사람, Python 버전이 있나요?

작은 꿈디지털 화폐 선물의 거래 목록은 비공식적이기 때문에 거래소의 보유 인터페이스가 종종 지연되어 반복 주문을 유발할 수 있으므로 공개를 취소했습니다.

안녕하세요, 이것은 현금과 상품 선물입니다. 저는 그룹에서 질문했습니다. JS 디지털 화폐 선물 목록은 버그 때문에 사라졌습니다.

작은 꿈/upload/asset/16c4dcc69723e302152c.png 이 위치에서

작은 꿈그 당시의 경쟁사 가격, 그리고 조금 더 낮은 가격.

작은 꿈이 문서는 아직 작성되지 않았지만, 상품 선물의 Python 템플릿이 있습니다. 제 JS는 사실 상품 선물의 구조에 따라 작성되어 있습니다. 참고하십시오.

불법자이 문서는 OKEX 선물에 대한 Python 템플릿을 참조하여 js를 사용하지 않을 것입니다.

작은 꿈파이썬의 미래 기능이 없습니다. 이식되지 않았습니다.

작은 꿈return 는 함수를 임시로 저장하는 데 사용되는 함수입니다. return 는 함수를 임시로 저장하는 데 사용됩니다.

단순함감사합니다.

작은 꿈https://www.botvs.com/strategy/21104, JS의 버전과 약간 다를 수 있습니다.

작은 꿈파이썬 버전이 있지만 사용량이 적어 사용이 좋을 때 테스트하는 것이 좋습니다.