金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3619|回复: 11

帮忙编写一下后台语句

[复制链接]

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
发表于 2022-12-9 11:12 | 显示全部楼层 |阅读模式
1、后台日内平仓转对锁;
2、若有对锁单,触发新的开仓条件后,先平后开(平完所有持仓后再开新仓);
3、收盘前(14:55)若无持仓,则限价新开一组对锁单。

回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-9 13:34 | 显示全部楼层
需要明确下:是否考虑今老仓的问题。

因为这个对锁的情况其实是很复杂的,如果考虑到:操作的手数和反向仓位的关系、多空今老仓持有的情况、对锁时资金不足 等情况 能罗列出十几种情况,会非常复杂的。

所以你这里如果只是简单的对锁,可以尝试下,如果要考虑的情况比较多,不建议代码上实现。


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

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2022-12-9 13:53 | 显示全部楼层
如果有前一个交易日的老仓,当日触发开仓信号,先解锁,触发平仓信号,平剩余老仓;
当日再有新的开仓信号,则再新仓,有平仓信号转对锁,当日如果出现多次开平信号,则先解锁,再对锁;
当日如果只有一次开平信号,尾盘没有持仓的情况下,则开一组对锁单,保证收盘后都会有一组对锁单。(日内策略)
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-9 14:17 | 显示全部楼层
简单说 有老仓 平仓先平掉,不足了 再反向锁仓;但如果先触发的是开仓信号,则直接开仓。这个情况是这样对吧。


“当日如果出现多次开平信号,则先解锁,再对锁;” 这里是什么意思。比如现在已经是锁仓状态了,一多一空。这时候我触发开多或者开空 亦或者平多 或者平空 我就直接按照指令执行?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2022-12-9 14:30 | 显示全部楼层
不是这个意思
比如:昨日持仓if,一多一空锁仓状态;
当日出现第一次开多信号,则先平昨日空单,留多单,之后出现平仓信号,再把昨日多单了结;
当日出现第二次开仓信号,则按照指令执行,之后的平仓信号,转日内对锁;当日第三次开仓信号(空单),则先解锁(平多留空),之后的平仓信号则继续开多锁仓;(用锁仓代替空仓,保证一直有一组对锁单)


补充内容 (2022-12-9 14:39):
有昨日老仓时,只平仓;空仓后只开仓,持仓满足一多一空后,有开仓信号则平另一个方向的,只有多或空持仓时,出现平仓信号时则开另一个方向的。
回复

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2022-12-12 10:29 | 显示全部楼层
可以写么?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-12 11:21 | 显示全部楼层
这个还在编写中,因为需要有老仓才能调试测试下效果。测完后会贴在这里的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-12 15:56 | 显示全部楼层
先给出第一版,这一版暂时别运行,你就先看下代码注释部分,然后主要是看下是否和你描述的需求一致,我这边还需要明天再测试下。

[PEL] 复制代码
input:ss(1,1,100,1);

//这里暂忽略多空锁仓时候数量不一致的情况
//所有仓位读取 在下面这部分代码中提前读取好,如果在下单条件那里判断 下单后仓位变化会影响到后续逻辑。
多头持仓:tbuyholdingex('','',1);
空头持仓:tsellholdingex('','',1);

多头今仓:tbuyholdingex('','',0);//多头今仓
多头老仓:多头持仓-多头今仓;//多头老仓

空头今仓:tsellholdingex('','',0);//空头今仓
空头老仓:空头持仓-空头今仓;//空头老仓

开多:1;
开空:1;
平多:1;
平空:1;

//有昨日老仓时,只平仓;
//空仓后只开仓;
//持仓满足一多一空后,有开仓信号则平另一个方向的;
//只有多或空持仓时,出现平仓信号时则开另一个方向的;


if time>=185500 then  GOTO here;//收盘前跳过常规开平语句

if  平多 and 多头持仓<>0 then
begin 
if 多头老仓<>0 then tsell(1,多头老仓,mkt);//有当前方向老仓情况下,直接优先平老仓 不开反向仓
if 多头今仓<>0 and 空头持仓=0 and 多头老仓=0 then tbuyshort(1,ss,mkt);//单边持仓且无当前方向老仓的情况下,平多转开空
end

if  平空 and 空头持仓<>0 then
begin 
if 空头老仓<>0 then tsellshort(1,空头老仓,mkt);
if 空头今仓<>0 and 多头持仓=0 and 空头老仓=0 then tbuy(1,ss,mkt);
end


if  开多  then
begin 
if 空头老仓<>0 then tsellshort(1,空头老仓,mkt);//有昨日空头老仓,开多转平空
if  多头持仓=0 and 空头老仓=0 then tbuy(1,ss,mkt);//多头无持仓时候 且 没有空头老仓时候直接开多
if 	多头持仓<>0 and 空头持仓<>0 and (空头老仓=0) then tsellshort(1,空头持仓,mkt);//锁仓状态下,开仓转平反向仓
end

if  开空 then
begin 
if 多头老仓<>0 then tsell(1,多头老仓,mkt);
if  空头持仓=0 and 多头老仓=0 then tbuyshort(1,ss,mkt);
if 	多头持仓<>0 and 空头持仓<>0 and (多头老仓=0) then tsell(1,多头持仓,mkt);	
end


here@;
//收盘无持仓则对锁
if time>=185500 and 空头持仓=0 and 多头持仓=0 then 
begin 
tbuy(1,ss,lmt,c);
tbuyshort(1,ss,lmt,c);	
end 


有几个需要特别说明的地方:

1.另外这版暂时先忽略了一个可能导致情况更加复杂化的情况:多空锁仓时候,多空仓位不一致的情况。
如果包含对仓位不一致的锁仓的判断的话,大致有如下这么多情况,非常复杂,逻辑也很绕:

截图202212121553429753.jpg
2.这种锁仓是不适用于多策略同品种运行时候的情况。一旦多策略运行,这个逻辑是完全会混乱的。多策略情况下 只能先进行多个策略的持仓汇总然后再操作才行。


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

使用道具 举报

43

主题

162

帖子

172

积分

Rank: 4

等级: 专业版

注册:
2022-8-5
曾用名:
 楼主| 发表于 2022-12-13 10:28 | 显示全部楼层
非常感谢版主,需求一致。
我之前没考虑到多空锁仓时仓位不一致的情况,请问不知道什么情况下会出现不一致?仓位过重资金不足?
目前是单策略多品种。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2022-12-13 10:35 | 显示全部楼层
因为账户 总归是你自己操作的,偶发的手工操作,或者其他来源的开仓。亦或者 你本身策略里多策略单品种,以及你说的资金不足等情况都是有可能的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 18:52 , Processed in 0.290966 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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