JavaScript库

  • http://mikemcl.github.io/decimal.js/

    function main() {
      var x = -1.2
      var a = Decimal.abs(x)
      var b = new Decimal(x).abs()
      Log(a.equals(b))                           // true  
    
    
      var y = 2.2
      var sum = Decimal.add(x, y)
      Log(sum.equals(new Decimal(x).plus(y)))    // true    
    }
    
  • http://underscorejs.org/

    function main() {
      var sum = _.reduce([1, 2, 3], function(memo, num){return memo + num}, 0)
      Log(sum)
    }
    
  • http://ta-lib.org/

    function main() {
      // 鉴于测试代码,不使用商品期货策略一般架构,这里仅仅判断exchange.IO("status")函数,判断连接期货公司前置机成功后立即执行测试代码。股票证券无需使用exchange.IO("status")判断连接状态
      while (true) {
          if (exchange.IO("status")) {
              exchange.SetContractType("rb888")
              var records = exchange.GetRecords()
              // K线需要有足够长度才可以计算指标数据
              if (records && records.length > 100) {
                  break
              }
          }
          Sleep(1000)
      }
    
    
      var r = exchange.GetRecords()
    
    
      // 打印所有指标数据,在优宽量化交易平台上,JavaScript语言的策略已经集成了talib库
      Log(talib.MACD(r))
      Log(talib.MACD(r, 12, 26, 9))
    }
    
  • 动态加载JavaScript库 如果需要使用其它第三方JavaScript库,可以使用以下方式动态加载:

    function main() {
      // via. https://cdnjs.com/libraries
      eval(HttpQuery("https://cdnjs.cloudflare.com/ajax/libs/mathjs/13.2.0/math.min.js"))
    
    
      Log(math.round(math.e, 3))                // 2.718
      Log(math.atan2(3, -3) / math.pi)          // 0.75
      Log(math.log(10000, 10))                  // 4
      Log(math.sqrt(-4))                        // {"mathjs":"Complex","re":0,"im":2}
    }
    
talib指标库 C++库