Type/to search
3
Follow
0
Followers
Закрывать позиции на основе номера позиции, не закрывать позиции с заданным количеством
Help
Created 2023-11-15 15:09:18  Updated 2025-10-22 13:19:21
 81
 1298

Учителя, я хочу, чтобы на okx, чтобы устранить один добавленный или устранить все лишние или пустые позиции, как не на основе пользовательского количества, а на основе позиции, я пишу в языке jS, я не могу сделать это, потому что я не могу сделать это, потому что я не могу сделать это, потому что я не могу сделать это.
exchange.SetDirection("closebuy")
exchange.Sell ((-1, 1) не работает, нельзя настроить количество ликвидации

Related Recommendations
Comment
All comments (81)
    javascript
    function main() { // POST /api/v5/copytrading/close-subposition instType : SPOT / SWAP , subPosId var tradeType = "SPOT" // 如果是永续合约就写 SWAP var subPosId = "xxxxx" // 仓位ID var ret = exchange.IO("api", "POST", "/api/v5/copytrading/close-subposition", "instType=" + tradeType + "&subPosId=" + subPosId) Log(ret) }

    大概就是这样。

    3 years ago

    img

    交易员平仓操作是需要调用这里的接口,使用exchange.IO调用。
    封装的exchange.Buy / Sell只是普通的市价单、限价单下单函数。

    3 years ago

    有点明白了,谢谢梦总

    3 years ago

    不客气,你可以试下代码,看行不行。

    3 years ago

    梦总好,有一个小问题想请教一下,多币种的策略如果我将所有币种放到一个数组中,那我在实盘时操作台上也需要将每个币种都选择上吗

    2 years ago

    您好,这个不用的,你可以遍历这个数组,逐个切换到交易对,然后操作。

    2 years ago

    总是报错,我的 JSON.stringify(params)打印出来是这样的: {"instId":"XRP_USDT","algoOrdType":"contract_grid","maxPx":2.8925,"minPx":0.5785,"gridNum":38,"runType":"1","sz":22.01,"direction":"long","lever":"10","triggerParams":[{"triggerAction":"start","triggerStrategy":"instant"}]}看着也没错啊为什么会有Futures_OP 4: {"code":"50014","data":[],"msg":"algoOrdType can’t be empty"}报错呢

    2 years ago

    梦总好,我有一个调用OKXAPI的代码总是报错,我不知道问题出在哪里了您能帮我看一下吗,谢谢,我的代码是这样的: var params = {
    "instId":uuSymbols[i],
    "algoOrdType":"contract_grid",
    "maxPx":maxPx,
    "minPx":minPx,
    "gridNum":gridNum,
    "runType":"1",
    "sz": sz,
    "direction": direction,
    "lever": lever,
    "triggerParams": [
    {
    "triggerAction": "start",
    "triggerStrategy": "instant"
    }
    ]
    };

    var createResult = exchange.IO("api", "POST", "/api/v5/tradingBot/grid/order-algo", JSON.stringify(params)); 另外调用的OKX的API文档是这样的:POST /api/v5/tradingBot/grid/order-algo
    body
    {
    "instId": "BTC-USDT-SWAP",
    "algoOrdType": "contract_grid",
    "maxPx": "5000",
    "minPx": "400",
    "gridNum": "10",
    "runType": "1",
    "sz": "200",
    "direction": "long",
    "lever": "2",
    "triggerParams":[
    {
    "triggerAction":"start",
    "triggerStrategy":"rsi",
    "timeframe":"30M",
    "thold":"10",
    "triggerCond":"cross",
    "timePeriod":"14"
    },
    {
    "triggerAction":"stop",
    "triggerStrategy":"price",
    "triggerPx":"1000",
    "stopType":"2"
    }
    ]
    }
    感觉没有什么问题啊,为什么会有Futures_OP 4: {"code":"50014","data":[],"msg":"algoOrdType can’t be empty"}报错呢

    2 years ago

    貌似代码里写错了, exchange.IO 函数的第四个参数是urlencode形式, 第五个参数才是raw,可以传JSON(根据交易所实际需要的参数形式)

    2 years ago

    梦总好,关于代码这块儿我还算是个小白,不太懂啊,你能麻烦梦总帮忙改一下吗,谢谢您

    2 years ago
    javascript
    var createResult = exchange.IO("api", "POST", "/api/v5/tradingBot/grid/order-algo", "", JSON.stringify(params));

    这样试下。

    2 years ago

    可以了谢谢梦总

    2 years ago

    不客气。

    2 years ago

    梦总好,打扰了,有一些问题想请教,以下是我的部分开仓策略《 var price = exchange.GetTicker(currency).Last;
    var account = exchange.GetAccount();
    var available = account.Balance * positionSize*bei;
    var amount = _N(available / price,0);

    exchange.SetDirection("buy")
    var result = exchange.Buy(-1, amount);》这样我本意是想设置每笔的开仓所用的资金是我全部资金的百分之一,但是我用百分之1的资金计算出开仓量之后,在okx这个开仓量却是按照最小开仓量的倍数来算的,不同币种的最小开仓量还不一样,例如我计算出的开仓量是10,但是okx上这一币种最小开仓量是100个,也就是说,我实际开仓了1000个该币种,导致有的币种投入的资金很多有的投入资金很少,偏离的我最初的本意,您能帮我看一下,这个问题怎么解决吗,谢谢梦总

    2 years ago

    举个例子,如果是U本位合约,保证金都是USDT,那么先计算总资产的1% 的USDT, 然后把这个数量换算成对应的要交易的品种的合约张数,然后判断这个下单的合约张数是否满足交易所最小订单量要求,如果满足,则下单。

    2 years ago

    梦总好,我明白了一些,我上面计算出来的amount实际上是币的数量,而不是张数,那如何才能换算成交易品种的合约张数呢

    2 years ago

    根据合约具体规则换算就可以,每个交易所不一样。例如OKX BTC币本位合约 一张合约100美元。

    2 years ago

    那我需要每个币种都换算一遍吗,不太会呀,您能给举个例子吗

    2 years ago

    不同合约的规格有差别,要根据具体合约规格计算,这个模板可以参考下里面有换算:https://www.fmz.com/strategy/276298

    2 years ago

    梦总好打扰了,就是有一个问题,在信号推送设置中,webhook推送,能够设置推送的格式或者内容吗,就是和trading view的一样的功能

    2 years ago

    https://www.fmz.com/syntax-guide#fun_log 文档这个章节末尾有个推送例子。

    2 years ago

    梦总好,我还有一个问题,就是pine语言编写策略的时候怎么才能双向持仓呢,如何同时获取多空仓的仓位信息呢,fun hasLong() => strategy.position_size > 0
    fun hasShort() => strategy.position_size < 0这样似乎不行呢

    2 years ago

    PINE语言和麦语言这些高度封装的脚本,主要是做趋势策略,设计之初就确定了不能双向同时持仓。如果要写双向同时持仓的策略,建议使用javascript/ python/ cpp 比较容易设计。也比较灵活。

    2 years ago

    梦总好,我看了这个文档没有找到您说的内容呢,您能具体和我说一下吗,就是我想实现的是通过咱们平台向外推送交易信号,让别的平台的机器人接收交易信号下单,类似和tradingview一样的功能

    2 years ago

    梦总好,想问一下这个具体是怎么设置呢golang的服务程序怎么写呢,在哪里写呢,这里有没有相关教程啊,麻烦您了,我确实是不太懂这块儿

    2 years ago

    这里的意思是,使用webhook 推送消息,由某个程序接收。例如可以是你的其它的量化系统,接口等。这里用golang 语言写的例子是一个接收请求的程序脚本。用来测试你在FMZ平台上推送设置里设置的webhook url 的推送效果。

    2 years ago

    梦总好,那这个推送信号的消息格式怎么设置呢

    2 years ago

    梦总好,打扰了,我在想在咱们平台使用webhook 推送消息的过程中是不是不用exchange.SetDirection("buy")
    var result = exchange.Buy(-1, amount)这种的开仓吧,只需要推送出去开仓信号,让webhook 接收端执行开仓就可以吧,但是这样有一个问题就是 position = exchange.GetPosition()无法获取持仓信息,主要是无法获取持仓均价呢,这样的话应该怎么处理呢,通过计算来获取均价吗

    2 years ago

    梦总好,有点别的事想请教一下,我看咱们平台上的GPT挺好用,像是专门用策略训练过,我是做专利行业的,也想这样训练出来一个专门写专利的GPT,就是不知道应该怎么弄呢,您这边有推荐的教程一类的吗或者传授一下经验,谢谢梦总谢谢

    2 years ago

    这个我这边没有相关资料。

    2 years ago

    梦总好,我在进行实盘级回测的时候出现一个错误提示:Uncaught RuntimeError: Aborted(). Build with -sASSERTIONS for more info您看一下,不知道是什么原因呢,好像上次回测还正常,改了一下参数就不行了,改回来也不行呢

    2 years ago

    清空缓存或者强制刷新一下页面,试下。

    2 years ago

    好的梦总,太感谢了

    3 years ago

    不客气。策略是Javascript语言的吧,可以先刷新、清缓存试下,看能不能解决问题。

    2 years ago

    梦总好,打扰了,有个问题想请教,account = exchange.GetAccount();这里面我开仓之后account.Balance的资金会减少,但是account.FrozenBalance却一直是0,我想着始终获取我所有资金的总数,用account.Balance+account.FrozenBalance也不行呢

    2 years ago

    您好,实盘还是回测?期货还是现货。

    2 years ago

    梦总您还在吗

    2 years ago

    梦总,是实盘期货,另外我回测时期货也是这样

    2 years ago

    GetAccount返回的结构增加了2个字段:

    https://www.fmz.com/digest-topic/10451#1、account-结构新增字段equity、upnl

    用equity这个。

    2 years ago

    梦总好,现在是不能进行实盘级回测了吗,我看着都选不了实盘级回测

    2 years ago

    您好,由于平台数据中心升级,数据还没有整理完成,暂时实盘级别回测没有开放,很快数据收集完成会上线。

    2 years ago

    大概还需要多长时间才能实盘回测呢,时间有点长了感觉

    2 years ago

    感谢耐心等待啊,这次升级改动比较大

    2 years ago

    实盘级别还需要一些时间。

    2 years ago

    梦总好,我试了一下实盘级回测,用的是币安BTC现货,8月份的数据,records[{"Time":1723680000000,"Open":58683.37,"High":58683.37,"Low":58678.01,"Close":58678.01,"Volume":0.04762,"OpenInterest":0}]只有一个数据啊,还是不能使用

    2 years ago

    您好,实盘级别回测,数据都是tick级别数据,是没有历史部分的,所以K线BAR是需要一点一点累积,开始只有一根。

    2 years ago

    梦总好,我在期货模拟级回测时,不知道是什么原因,一小时周期只能回测3天的数据,一分钟周期只能回测十几分钟的数据,超过了程序就停了,可是我用的是while(true)啊,不知道是怎么回事

    2 years ago

    您清空浏览器缓存,然后重新测试下,有可能缓存的缘故,如果还是不行,您发下工单,附上具体测试代码,代码里可以记录具体的回测配置,或者截图回测页面设置也行。

    2 years ago

    梦总好,提交工单了,标题:
    我在期货模拟级回测时,不知道是什么原因,一小时周期只能回测3天的数据,一分钟周期只能回测十几分钟的数据,超过了程序就停了,可是我用的是while(true)啊,不知道是怎么回事
    分类:
    回测系统
    用户名:
    17732164739

    2 years ago

    好的,在工单为您处理这个问题。

    2 years ago

    再就是,我这个还需要计算一下MA,一小时数据量不足,也算不出来,怎么办呢

    10 months ago

    梦总好,我有个问题,我有一个网格策略,想进行实盘级回测,可是,实盘级现在没多少数据,只有一两个小时的数据,看不出来什么呢,模拟回测的话一分钟K线数据只有开盘价最高价最低价收盘价,感觉会不准呢

    10 months ago

    使用模拟级别回测,底层K线周期设置1分钟,对于网格策略也可以初步测试。因为即使是模拟级别回测,tick也是基于底层K线价格框架生成的,通过算法会把范围内的价格走一遍。

    10 months ago

    就是模拟级回测的话一分钟K线只有最高价最低价收盘价这四个数据,假设我设置的是1%的网格,那到最高价平仓往往会超出去很多,次数多了,整体上收益曲线会偏离很多很多

    10 months ago

    img

    生成的tick价格不止4个。

    10 months ago

    明白了梦总,再就是想问一下,咱们的模拟级回测是默认的是全仓还是逐仓模式呢,我想实盘跑网格,担心如果设置全仓的话,如果下跌资金会越来越少

    10 months ago

    回测是全仓的。

    10 months ago

    好的谢谢梦总

    10 months ago

    不客气。

    10 months ago

    再就是想问一下,我的是市价交易的网格,滑点对这样的网格会有影响嘛

    10 months ago

    回测影响不大。实盘的话,如果网格间距不是特别小,也没什么影响。

    10 months ago

    梦总好,我网格跑的是okx,市价跑的,感觉滑点和手续费太多了,怎么写限价挂单的网格呢,有没有教程或者参考策略呢,我一般用JS语言的比较多,谢谢梦总

    10 months ago

    策略广场,网格策略挺多的,一般应该都是挂单的。

    10 months ago

    梦总好,策略库里的pine策略能否在实盘的时候进行多币种同时交易呢,是怎么操作呢,是在实盘的时候多选几个币种吗

    8 months ago

    PINE语言只能做单币种。

    8 months ago

    梦总好,工作流能用deepseek的API吗

    8 months ago

    如果鉴权方式是一致的,可以设置对应的服务基地址,然后填写KEY,是可以的。

    8 months ago

    工作流开仓怎么设置百分比开仓呢

    8 months ago

    img

    可以指定表达式,使用代码节点计算后的结果,如果要百分比可以写代码节点计算。或者用AI帮你计算。

    8 months ago

    梦总,那个工作流里设置止盈止损的插件不能用了吗

    8 months ago

    应该可以吧,应该是没改动,如果有报错可以具体发下工单。

    8 months ago

    梦总好,我这实盘工作流,为什么开不了仓呢,有那个开多和开空的组件,已经有推送了,就是开不了呢,例如我设置的开BTC的数量1,显示需要10万多U才行,我改成了DOGE数量1也开不了单

    8 months ago

    下单量太大了,超过所需保证金。

    8 months ago

    孟总好,这个工作流不能出一个那个止盈止损的挂单的吗?我感觉他好隔个十几二十分钟才执行一次的话,这很多错过很多平仓的机会

    8 months ago

    您好,在的,止盈止损单已经封装好了,文档还没上线更新。这个需求这两天我出个例子。

    8 months ago

    梦总好,这个回测实盘级回测能不能再数据多一些,只有几个小时的数据,回测不出来什么呢,模拟级的回测误差太大,策略也不算高频,就是1%买卖这种的

    7 months ago

    需求和问题您可以发下工单,有时候这里不容易看到。

    7 months ago

    您好,目前回测系统数据上限是50MB,暂时没有办法增加了。

    7 months ago

    梦总好,为什么回测没有错误信息了呢,这样策略停了也不知道哪里出问题了

    2 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)