金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 大尚太极

请教如何在下单之后迅速的把止盈止损平仓单子发送到交易所

[复制链接]

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-19 11:09 | 显示全部楼层
本帖最后由 技术009 于 2023-5-19 11:10 编辑

经过检查日志和测试。

确认了下面2个问题。

1.原先的处理方案不稳妥,至少在图表上不是很稳妥。有无法绕过的问题存在。

首先如果初始实际仓位是0.那么第一次  开-平  其中的平操作会失败。因为图表系统下单有一个对实际可用持仓的检查,这个检查是在出实际下单信号之前就进行的。所以直接判定为无法平仓。也就是平仓信号还没进入我们希望进入的下单队列 就直接被pass掉了

2023-05-18 21:40:01.491    【下单】PP09 价0.000000 量1 买卖0 类型1 开平0 账户18514421313 Formula 1
2023-05-18 21:40:01.491    【下单】已提交,订单ID :302319620
2023-05-18 21:40:01.492    【队列】当前队列准备处理数据:1条
2023-05-18 21:40:01.492    【队列】发送下单指令
2023-05-18 21:40:01.492    【下单】实际持仓为0下单失败
2023-05-18 21:40:01.493    【队列】下单失败了

2. 平仓单,未必能成交,这种未成交状态不是很好处理,如果撤单 追单会直接影响我们原先使用的下单队列。这个在ORDERQUEUE函数说明里也有提到。
从日志来看:
截图202305191103016180.png

实际持仓一直为1.而系统日志这里是实际持仓 是以可用持仓为准。所以你可以看下未成交单,是不是有多个未成交单。  反正系统后续判断到的可用持仓始终是1. 这个可用纯粹就是第一次初始时候遗留下来的



总体上 如果你还是要实现原先那个需求,那可能只能尝试在后台程序化上处理了,图表程序化操作不是很精细,包括我建议你使用的ORDERQUEUE 原本用途是拿来确保平仓后释放了资金再开仓的需求的,用在你这个需求上其实是属于脱离这个函数设计初衷了,纯粹的曲线救国处理方式。


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2022-8-30
曾用名:
 楼主| 发表于 2023-5-19 11:12 | 显示全部楼层
用 ORDERQUEUE 是曲线救国的方式, 那如果通过后台程序化进行直线救国呢 ? 请指点
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-19 11:16 | 显示全部楼层
后台程序化大体思路 是直接读未成交单,有开仓未成交我暂时不执行平仓,一旦开仓成交了,就直接进行加价的委托。  可能需要用全局变量进行辅助操作,但是总体上是可实现的。但是同时也要注意对平仓未成交的处理 是必须预设一个方案的才行。  
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2022-8-30
曾用名:
 楼主| 发表于 2023-5-19 14:54 | 显示全部楼层
请帮忙把咱们讨论的这几行代码功能, 转化为 后台的, 我便于参考学习,也便于验证咱们这个方案的效果
回复

使用道具 举报

6

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2022-8-30
曾用名:
 楼主| 发表于 2023-5-22 10:19 | 显示全部楼层
请老师帮助指导一下
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 10:40 | 显示全部楼层
测试中,请稍等下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 11:12 | 显示全部楼层
[PEL] 复制代码
GLOBALVARIABLE:mark:=0;//一个全局变量控制一组 开-平 

con:1;//开仓条件

if con and mark=0 then //这里条件一定要保证满足了就必定触发开仓,否则无法保证开仓和mark重置保持一致
begin  
tbuy(1,1,mkt);
mark:=1;
end 

if mark=1 and TISPRVREMAIN(1)=0 and TBUYHOLDINGEX('','',1)>0 then 
begin 
mark:=0;
tsell(1,1,mkt);
end 


截图202305221111427622.png

基本差不多。后台设置轮训小周期跑就能测试


但是这个只是一个简单控制范例。如果你有更复杂更进一步的控制,那代码可能会更复杂。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2022-8-30
曾用名:
 楼主| 发表于 2023-5-22 13:27 | 显示全部楼层
我看看
回复

使用道具 举报

6

主题

43

帖子

43

积分

Rank: 1

等级: 新手上路

注册:
2022-8-30
曾用名:
 楼主| 发表于 2023-5-22 15:30 | 显示全部楼层
在上面的平仓代码中
tsell(1,1,mkt);
是不是应在mkt价格的位置加上2跳 ?   我的目的是止盈2跳
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 15:31 | 显示全部楼层
改成 lmt 限价指令,用最新价加2跳就行了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-6-7 20:43 , Processed in 0.124114 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表