金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 7109|回复: 12

后台程序化取信号价问题。

[复制链接]

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
发表于 2022-10-5 23:00 | 显示全部楼层 |阅读模式
交易逻辑是:开始,开仓多单和空单各一手,后面的交易指令参照上一次交易指令、(上次交易价格减去当前的CLOSE),来触发。历史数据模拟结果是:开仓价格等于平仓价格,因为每次指令触发时参照上次价格涨跌,所以开仓价格不能等于平仓,相等就不会触发。


IF TTYPE(1)=3 AND TSELLHOLDING(1)>0 AND 上次信号价 - C>=6  THEN BEGIN  TSELLSHORT(1,1,MKT,0,0);END
IF TTYPE(1)=1 AND TSELLHOLDING(1)>0 AND 上次信号价- C>=6 THEN BEGIN  TSELLSHORT(1,1,MKT,0,0);END

1.png
回复

使用道具 举报

38

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2022-10-8 10:08 | 显示全部楼层
抱歉,不太明白你想表达什么问题?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
 楼主| 发表于 2022-10-10 10:03 | 显示全部楼层
开仓信号取的是上次交易价格加上我设定好的涨跌点,开仓的价格也应该取上次交易价格加上设定好的涨跌点,测试的结果是开仓取的是自己上次的平仓价格,这样不对。
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-10 10:44 | 显示全部楼层
提供下你的完整的测试代码呢,我们看下你是如何写的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
 楼主| 发表于 2022-10-10 10:48 | 显示全部楼层
INPUT:参数一(4,1,10,1),参数二(6,1,12,1);

IF TBUYHOLDING(1)<1 AND TSELLHOLDING(1)<1 AND TTYPE(1)=0  THEN BEGIN
  TBUY(1,1,MKT,0,0);
  TBUYSHORT(1,1,MKT,0,0);
END
  
LASTPRICE:IF (TORDERPRICE(0,1)>0,TORDERPRICE(0,1),IF(TORDERPRICE(0,2)>0,TORDERPRICE(0,2),IF(TORDERPRICE(0,3)>0,TORDERPRICE(0,3),C)));
   IF TTYPE(1)=1 AND TBUYHOLDING(1)>0 AND C - LASTPRICE >=参数二  THEN BEGIN  TSELL(1,1,MKT,0,0);END
   IF TTYPE(1)=3 AND TBUYHOLDING(1)>0 AND C - LASTPRICE >=参数二  THEN BEGIN  TSELL(1,1,MKT,0,0);END       
   IF TTYPE(1)=3 AND TSELLHOLDING(1)>0 AND LASTPRICE - C>=参数二  THEN BEGIN  TSELLSHORT(1,1,MKT,0,0);END
   IF TTYPE(1)=1 AND TSELLHOLDING(1)>0 AND LASTPRICE - C>=参数二  THEN BEGIN  TSELLSHORT(1,1,MKT,0,0);END       
   IF TTYPE(1)=2 AND C - LASTPRICE >=参数一 THEN BEGIN  TBUY(1,1,MKT,0,0);END
   IF TTYPE(1)=4 AND C - LASTPRICE >=参数一 THEN BEGIN  TBUYSHORT(1,1,MKT,0,0);END       
   IF TTYPE(1)=2 AND LASTPRICE - C >=参数一 THEN BEGIN  TBUY(1,1,MKT,0,0);END
   IF TTYPE(1)=4 AND LASTPRICE - C >=参数一 THEN BEGIN  TBUYSHORT(1,1,MKT,0,0);END       
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-10 10:52 | 显示全部楼层
你报单都是用的MKT指令啊,这个又控制不住你开仓的价格的,你如果要指定报单的价格,那应该用LMT限价指令啊,在报单的价格上面加几跳啊。你在条件中写这个只是作为报单的条件啊,又不是报单时的价格。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
 楼主| 发表于 2022-10-10 11:00 | 显示全部楼层
我取的就是触发信号是的市价,用MKT应该没问题吧。
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
 楼主| 发表于 2022-10-10 11:04 | 显示全部楼层
难道是平仓和开仓在同一时间,买到了自己平仓的那手了。
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2022-10-10 11:04 | 显示全部楼层
在回测中,MKT市价报单就是当根K线的收盘价或第二根K线的开盘价作为报单的价格的,根本就不是你所想达到的上次交易的价格+N这个价格作为报单价格的要求的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2022-9-26
曾用名:
 楼主| 发表于 2022-10-10 11:20 | 显示全部楼层
当:上次交易的价格+N这个价格=close时就触发交易信号,此时的MKT就为close,好像没问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-3 07:07 , Processed in 0.108561 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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