金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 21465|回复: 97

网格交易模块

[复制链接]

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-3 10:29 | 显示全部楼层
网格交易系统有自带的功能:https://www.weistock.com/docs/HE ... BA%A4%E6%98%93.html

代码实现则只能后台程序化上进行实现。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-6 09:42 | 显示全部楼层
你这里首次开仓以及后续加仓的基准价是以什么为准。你涨跌都要有一个判断基准的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-7 09:07 | 显示全部楼层
初始的基准价也要明确。上次开仓价或者卖出价,你刚开始交易时候 哪里有什么上次开仓价或者卖出价。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-11 09:08 | 显示全部楼层
已写好,测试中,运行测试后再发你。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

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

[PEL] 复制代码
INPUT:N1(0.1,0.01,100,0.01),N2(0.01,0.01,100,0.01),ss(1,1,500,1),dif(1,1,300,1);//dif是加仓的单位

GLOBALVARIABLE:base:=-1,maxp:=-1,minp:=-1,reals:=0;;

//首次运行 初始化基准价
if  base=-1 then
begin 
base:=DYNAINFO(  7);
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
reals:=ss;
end 


if DYNAINFO(  7)>maxp and base<>0 then maxp:=DYNAINFO(  7);
if DYNAINFO(  7)<minp and base<>0 then minp:=DYNAINFO(  7);

//P1,P2:最高点的涨幅,最低点的跌幅
P1:100*(maxp-base)/(base);
P2:100*(base-minp)/minp;

//P3,P4:高点回落幅度,低点上涨的幅度
P3:100*(maxp-DYNAINFO(  7))/(maxp);
P4:100*(DYNAINFO(  7)-minp)/minp;

//有可用持仓时候才能平仓
if P1>N1 and P3>N2 and minp<>0 and  maxp <>0 and TBUYHOLDINGEX('','',0)>0  then  
begin 
tsell(1,0,mkt);
reals:=ss;
//平仓后重置最高最低价的记录,同时更新基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end 


//加仓逻辑
if P2>N1 AND P4>N2 and  minp<>0 and  maxp<>0 and TBUYHOLDINGEX('','',1)>0  then 
begin 
//连续加仓情况下 手数增加
reals:=reals+dif;        
tbuy(1,reals,mkt);
//开仓后重置基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end



//完全没有持仓时候才能进行初始开仓;初始开仓时候始终按照ss开仓
if P2>N1 AND P4>N2 and  minp<>0 and  maxp <>0 and TBUYHOLDINGEX('','',2)=0  then 
begin 
tbuy(1,ss,mkt);
//开仓后重置基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end 



 



N1,N2的 参数要合理设置.  上面思路是在基准价基础上,最高价涨幅大于N1,后再回落N2 ,但是这个N2是从高 计算的,比如N2是1,最高价是100,那么从100跌1% 才算满足。 如果参数设置不合理,可能盈利都亏没了 也触发不了平仓。
这是上午沪锡的一个下单,应该差不多。
截图202304121019273070.png



后台设置建议,1秒或者分笔级别。这样才能准确捕捉信号。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-13 10:10 | 显示全部楼层
2个点
1.买入是递增的,这个点是对的吧?
2.平仓时候也是需要对称的?但是 你可能连跌之后未必是 连涨.这样情况就比较复杂了.可能连跌之后,涨一次 又继续跌.  感觉这样推演下去,情况还是蛮多的.   
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-17 13:09 | 显示全部楼层
“是的,平仓时是对称的,也是一一对应的,其实我觉得是否也不必在代码中体现这种对应关系,只要连续下跌就一直买入一定的数量(例如10股),从而形成持有仓位,这些数量也就混同了,然后上涨时就每次卖出相同的数量10股,卖出的数量肯定也是现有仓位里面的,实际上盈亏自己可以显示的,但是只要卖出的下单价格比持仓中的之前某一个买入的下单的价格高1%就可以,您看呢?谢谢!”

平仓没法子对称,前面已经说了。你连跌之后,理想状态下是连续涨。实际情况大部分都是不规则涨跌交替。举个例子 你连续下跌开仓1,2,3 手,总持仓6手,你后面平仓时候是没办法保证是3,2,1这样平的。可能平仓三手后,又触发了下跌买入,也就是不是连涨平仓,中间是涨跌穿插来的。

这个过程的平仓手数的计算逻辑 你是没有提供的。你只提供了一种非常理想的状态,开仓1,2,3然后连涨3,2,1 。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-4-18 09:08 | 显示全部楼层
那代码进一步简化下就行了,去掉之前使用的累加手数的全局变量就行了:
[PEL] 复制代码
//客户原始思路:
//以启动程序时候的价格作为基准价:上涨1%以上并回落0.1%则卖出100股;下跌1%以下并反弹0.1%则买入100股;如果连续触发下跌买入,则每次买入比上一次买入的数量加一个单位

INPUT:N1(0.1,0.01,100,0.01),N2(0.01,0.01,100,0.01),ss(1,1,500,1);

GLOBALVARIABLE:base:=-1,maxp:=-1,minp:=-1;

//首次运行 初始化基准价,以程序启动时候的价格作为初始基准价
if  base=-1 then
begin 
base:=DYNAINFO(  7);
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
end 

if DYNAINFO(  7)>maxp and base<>0 then maxp:=DYNAINFO(  7);
if DYNAINFO(  7)<minp and base<>0 then minp:=DYNAINFO(  7);

//P1,P2:最高点的涨幅,最低点的跌幅
P1:100*(maxp-base)/(base);
P2:100*(base-minp)/minp;

//P3,P4:高点回落幅度,低点上涨的幅度
P3:100*(maxp-DYNAINFO(  7))/(maxp);
P4:100*(DYNAINFO(  7)-minp)/minp;

//有可用持仓时候才能平仓
if P1>N1 and P3>N2 and minp<>0 and  maxp <>0 and TBUYHOLDINGEX('','',0)>0  then  
begin 
//固定手数平仓
tsell(1,ss,mkt);
//平仓后重置最高最低价的记录,同时更新基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end 


//加仓逻辑
if P2>N1 AND P4>N2 and  minp<>0 and  maxp<>0 and TBUYHOLDINGEX('','',1)>0  then 
begin 
//固定手数加仓	
tbuy(1,ss,mkt);
//开仓后重置基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end


//完全没有持仓时候才能进行初始开仓;初始开仓时候始终按照ss开仓
if P2>N1 AND P4>N2 and  minp<>0 and  maxp <>0 and TBUYHOLDINGEX('','',2)=0  then 
begin 
tbuy(1,ss,mkt);
//开仓后重置基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end 



 

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-18 08:38 | 显示全部楼层
1.如果是实盘,那就要问券商那边开通权限了估计。
2.“这个“1”是指condition条件吗?”是的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-19 09:01 | 显示全部楼层
提供下当时保持的交易日志,我看下具体报错的描述。一般这种回报都是柜台给得,最终还是需要问到券商那边才行得。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 11:44 , Processed in 0.146309 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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