金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: David

网格交易模块

[复制链接]

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-5-19 14:43 | 显示全部楼层
技术009 发表于 2023-5-19 14:18
1.你目前参数是多少,你是啥时候启动的程序化,因为程序是基于启动时候价格作为基准价的。

2.价格是0   ...

1、参数没有变化,还是您的初始参数INPUT:N1(0.1,0.01,100,0.01),N2(0.01,0.01,100,0.01),ss(1,1,500,1);

2、市价为何不可以啊?可以设为对手价吗?如何设为对手价啊?

3、理解了!谢谢!

4、手动下单,选择限价,可以委托成功,可以设为对手价吗?如何设为对手价啊?谢谢!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-19 14:56 | 显示全部楼层
那就是不支持市价导致得报错。

改成对手价吧。

[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,lmt,DYNAINFO( 28));
//平仓后重置最高最低价的记录,同时更新基准价为当时的信号触发价
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,lmt,DYNAINFO( 34));
//开仓后重置基准价为当时的信号触发价
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,lmt,DYNAINFO( 34));
//开仓后重置基准价为当时的信号触发价
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
base:=DYNAINFO(  7);
end


然后你说得那个买入幅度问题,我再看下。之前测试时候是OK。现在时间久了,我要再整理看下。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-5-19 15:15 | 显示全部楼层
技术009 发表于 2023-5-19 14:56
那就是不支持市价导致得报错。

改成对手价吧。

好的,感谢您的更新!期待您对幅度设置的指导!谢谢!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-5-22 14:57 | 显示全部楼层
我那几个参数N1,N2单位都是%
所以0.1 表示 0.1%
0.01 表示0.01%

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

使用道具 举报

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-5-23 08:21 | 显示全部楼层
技术009 发表于 2023-5-22 14:57
我那几个参数N1,N2单位都是%
所以0.1 表示 0.1%
0.01 表示0.01%

好的,我再试试,谢谢!
回复

使用道具 举报

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-6-6 20:48 | 显示全部楼层
关于每天开盘时的初始基准价,请问您最后更新代码都是以当天开盘价为初始基准价吗?如果之前已经买入过,每天开盘时,可否以之前交易日的最后一次买入价/卖出价作为当天的初始基准价?这样就可能避免可能存在的跳空高开或低开而可能造成与成交价的差额而造成亏损。谢谢!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-7 10:34 | 显示全部楼层
那个基准价 是每次启动时候的价格,实际上只要不是盘中才启动的程序化,那初始基准价其实就是当日开盘价这样的了。 如果是盘中启动,那就是启动时候的价格。

“如果之前已经买入过,每天开盘时,可否以之前交易日的最后一次买入价/卖出价作为当天的初始基准价?” 你意思是有持仓时候 以最近一次买入或者卖出价格作为基准价?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-6-7 20:50 | 显示全部楼层
技术009 发表于 2023-6-7 10:34
那个基准价 是每次启动时候的价格,实际上只要不是盘中才启动的程序化,那初始基准价其实就是当日开盘价这 ...

是的,有持仓时候,我觉得以最近一次买入或者卖出价格作为基准价,例如每下跌和上涨1%进行买入或卖出,当有持仓时,最后一次买入价是100元,当天收盘时下跌到99.5元,所以就不会触发;第二天如果以99.5元开盘,则不会以99.5元作为基准价,还是以100元作为基准价,价格下跌到或开盘低开到99元以下,则会自动触发继续买入,因为已经下跌了1%了;如果涨到了或开盘到101元以上,则会卖出,因为涨了1%。(否则,如果以99.5元作为第二天的基准价,则可能到105.5就卖出了,获利变成了0.5%,而不是1%了)这样就可以达到第一天到第二天收市期间的无缝连接,就好像一直连续交易的状态,您看可以实现吗?谢谢!
回复

使用道具 举报

19

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-6-8 08:56 | 显示全部楼层
初始化部分微调下,现在会判断下持仓,如果有持仓从之前下单记录里读取之前的下单价格:

//首次运行 初始化基准价,以程序启动时候的价格作为初始基准价
if  base=-1 then
begin
//取上一次的交易价格,注意这个数据是从交易监控记录中来的       
LAST_P:TORDERPRICE(0,1);
//如果初始运行时候有持仓了,那么从交易记录中读取之前的下单价格.并且排查掉没有监控记录的情况
if TBUYHOLDINGEX('','',1)<>0 and LAST_P<>0 then
begin
base:=LAST_P;
maxp:=LAST_P;
minp:=LAST_P;       
end else
begin
base:=DYNAINFO(  7);
maxp:=DYNAINFO(  7);
minp:=DYNAINFO(  7);
end
end
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

98

帖子

98

积分

等级: 免费版

注册:
2023-2-21
曾用名:
 楼主| 发表于 2023-6-8 21:24 | 显示全部楼层
技术009 发表于 2023-6-8 08:56
初始化部分微调下,现在会判断下持仓,如果有持仓从之前下单记录里读取之前的下单价格:

//首次运行 初 ...

好的,我再试试,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 05:37 , Processed in 0.252024 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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