金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 432|回复: 11

实际下单为什么不能同步实际账户

[复制链接]

2

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-3-22
曾用名:
发表于 2025-3-31 13:45 | 显示全部楼层 |阅读模式
请技术人员帮忙看看呢 ,这个下单为什么不能同步,而且程序里面写的是不开反向仓位的,结果也开了,而且实际下单和信号出现的时间差比较大
截图202503311342237586.png

PleaceOrder.txt

468.17 KB, 下载次数: 83

回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-31 14:07 | 显示全部楼层
1、不能同步是什么意思?是不触发持仓同步?实际账户中有未成交单,或者最新K线上出现信号,这个时候是不会触发持仓同步的。
2、如果你不需要平仓反手,那说明你代码中的条件没有控制住啊,需要检查你的代码的。可以在日志中看下平仓反手是哪一行触发的,再检查哪一行的代码。
3、你使用的是固定间隔模式,那出现信号就会立即报单啊,如果你的信号触发记录和图上的信号不对齐,那说明信号存在闪烁啊。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-3-22
曾用名:
 楼主| 发表于 2025-3-31 14:43 | 显示全部楼层
我能把程序发给你帮忙看看不,在分笔成交周期里面的,
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-31 14:49 | 显示全部楼层
不建议用分笔周期的,图表效率本身就不高,来不及运算的,一旦效率跟不上,这种信号会很闪的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-3-22
曾用名:
 楼主| 发表于 2025-3-31 14:49 | 显示全部楼层
//该模型为简单示范模型,用户需根据自己交易经验,修改完善后再实际应用!!!
//此策略以当前价格突破为进场条件,进场之后记录价格变动的最高、最低,并计算回撤点数,当参数设置启动了回撤止盈时,符合条件就会平仓。
//有止损设置,赚钱超过3点时,如果价格回撤,系统会保留1.2点的盈利退出,这样至少可以保住手续费。
//作者:GUOTX2010  日期:2011-03-21

//参数定义
INPUT: ZJBJD(4,3,5,1),ZJBJX(2,1,3,1);//专几保几参数
INPUT: HCDSX(3,2,6,1),YLDSD(7,3,10,1);//回撤赢1
INPUT: KZHCX(4,3,12,1),KZHCQBD(12,7,28,1);//回撤赢2
INPUT: JXZSZQ(40,20,120,5);//3周期均线控制回撤
//定义全局变量并计算显示,日均线
均价:ROUNDS(IF(sum(vol,todaybar)=0,C,sum(C*vol,todaybar)/sum(vol,todaybar)),2+(4-INTPART(LOG(C)))),colorred;

//CALLSTOCK()调用K线数据函数,CALLSTOCKEX()限定数量

//STKINDI()调用1分钟周期策略

FZZQ1MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,1);//调用1分钟周期策略
FZZQ1MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,1);//调用1分钟周期策略

FMZQ10MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,22,5);//调用5多秒周期策略
FMZQ10MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,22,5);//调用5多秒周期策略

FBZQ10MACDJC:=STKINDI('','周期1分钟MACD指标线.分钟周期金叉',0,23,10);//调用10多笔周期策略
FBZQ10MACDSC:=STKINDI('','周期1分钟MACD指标线.分钟周期死叉',0,23,10);//调用10多笔周期策略

FZZQ3C:=STKINDI('','过滤窄幅震荡.均价3C',0,22,JXZSZQ);//调用多秒参数JXZSZQ周期策略



KKTJ1:=FZZQ1MACDSC and FBZQ10MACDSC and FMZQ10MACDSC;//macd卖出判断,
KDTJ1:=FZZQ1MACDJC and FBZQ10MACDJC and FMZQ10MACDJC ;//macd买入判断,


PKZSTJ:=C>FZZQ3C or ((C-ENTERPRICE)>(4*MINDIFF));//3个周期收盘均价之上空头止损,超出6个价格波动也止损
PDZSTJ:=C<FZZQ3C or ((ENTERPRICE-C)>(4*MINDIFF));//3个周期收盘均价之下多头止损,超出6个价格波动也止损

KDTJ:= KDTJ1  ;//集成开多条件
KKTJ:= KKTJ1  ;//集成开空条件

//其他策略调用开仓方向以及盈利点数
VARIABLE:KCFX=0;
VARIABLE:SSYLDS=0;


//使用系列模式时
//{开多} ENTERLONG:BUY1,TFILTER;
//{平多}EXITLONG:SELL1 ,TFILTER;
//
//{开空}ENTERSHORT:SELL1 ,TFILTER;
//{平空}EXITSHORT:BUY1 ,TFILTER;
//使用逐K线模式时
VARIABLE:DUOKONG=0;
TSFS:=0;     {停损反手,1-反手 0-不反手}
ORDVOL:=1;     {开仓手数}
ZSDS:=2*MINDIFF;     {止损点数}//*MINDIFF
//以下变量用于移动止盈,,移动止盈只能保证你尽可能稳健盈利,却不能保证盈利最大化,如果不想使用,可是将总开关设置为0
VARIABLE:YDZY=1;     {移动止盈总开关,1为开,0为关}
VARIABLE:HIGHPRICE=0,LOWPRICE=0; {保存开仓后的最高价、最低价}
VARIABLE:HCDS=HCDSX*MINDIFF,YLDS=YLDSD*MINDIFF;  //{多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:KZHC=KZHCX*MINDIFF,KZHCQB=KZHCQBD*MINDIFF;   {多、空单盈利点数,当盈利点数达到这个标准后,如果回撤达到上面的参数值就平仓}
VARIABLE:ZJBJ:=1,ZJBJ1:=ZJBJD*MINDIFF,ZJBJ2:=ZJBJX*MINDIFF;     {赚3保1开关}
DUOKONG:=1;


//持有空单
IF HOLDING<0 THEN BEGIN
        SSYLDS:=(ENTERPRICE-C)/MINDIFF;
IF KDTJ THEN BEGIN   //平空单
  条件空平:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END

//止损
IF C-ENTERPRICE>=ZSDS AND PKZSTJ THEN BEGIN
  空损:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
END

//移动止盈
IF YDZY=1 THEN BEGIN
  //每周期判断是否创新低
  IF L<LOWPRICE THEN BEGIN
   LOWPRICE:=L;
  END
  
  //如果盈利超过YLDS点之后回撤达到HCDS点,就平仓,保住盈利,控制回撤1档
  IF ENTERPRICE-LOWPRICE>=YLDS and ENTERPRICE-LOWPRICE<KZHCQB THEN BEGIN
   IF L-LOWPRICE>=HCDS THEN BEGIN  //回撤超过3点
    空赢1:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
   END
  END
    //如果盈利超过KZHCQB点之后回撤达到KZHC点,就平仓,保住盈利 ,控制回撤2档
  IF ENTERPRICE-LOWPRICE>KZHCQB THEN BEGIN //高收益允许高回撤
   IF L-LOWPRICE>=KZHC THEN BEGIN  //回撤超过3点
    空赢2:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
   END
  END
  
  
END

//赚几保几ZJBJ
IF ZJBJ=1  THEN BEGIN
  IF ENTERPRICE-LOWPRICE>=ZJBJ1 THEN BEGIN
   IF ENTERPRICE-L<=ZJBJ2 THEN BEGIN
    空保:SELLSHORT(1,0,MARKETR),ORDERQUEUE;
   END
  END
END
END

//开多单
IF HOLDING=0 and time<151430 and KDTJ THEN BEGIN
IF DUOKONG=1 OR DUOKONG=2 THEN BEGIN
  
   多开:BUY(1=1 and time>93500,ORDVOL,MARKETR),ORDERQUEUE;
   HIGHPRICE:=ENTERPRICE;  //将开仓价保存到最高价
   KCFX:=1;
END
END

//持有多单
IF HOLDING>0 THEN BEGIN
        SSYLDS:=(C-ENTERPRICE)/MINDIFF;
IF KKTJ THEN BEGIN  {平多单}
  条件多平:SELL(1,0,MARKETR),ORDERQUEUE;
END

//多单管理
//止损
IF ENTERPRICE-C>=ZSDS AND PDZSTJ THEN BEGIN
  多损:SELL(1,0,MARKETR),ORDERQUEUE;
END
//移动止盈
IF YDZY=1 THEN BEGIN
  //每周期判断是否创新高
  IF H>HIGHPRICE THEN BEGIN
   HIGHPRICE:=H;
  END

  //如果盈利超过YLDS点之后回撤达到HCDS点,就平仓,保住盈利,控制回撤1档
  IF HIGHPRICE-ENTERPRICE>=YLDS  and HIGHPRICE-ENTERPRICE<KZHCQB THEN BEGIN
   IF HIGHPRICE-H>=HCDS THEN BEGIN  //回撤超过HCDS点
    多赢1:SELL(1,0,MARKETR),ORDERQUEUE;
   END
  END
  //如果盈利超过KZHCQB点之后回撤达到KZHC点,就平仓,保住盈利 ,控制回撤2档
  IF  HIGHPRICE-ENTERPRICE>KZHCQB THEN BEGIN  //高收益允许高回撤
   IF HIGHPRICE-H>=KZHC THEN BEGIN  //回撤超过KZHC点
    多赢2:SELL(1,0,MARKETR),ORDERQUEUE;
   END
  END
END

//赚几保几ZJBJ
IF ZJBJ=1  THEN BEGIN
  IF HIGHPRICE-ENTERPRICE>=ZJBJ1 THEN BEGIN
   IF H-ENTERPRICE<=ZJBJ2 THEN BEGIN
    多保:SELL(1,0,MARKETR),ORDERQUEUE;
   END
  END
END
END

//开空单
IF HOLDING=0 and time<151430 and KKTJ  THEN BEGIN
IF DUOKONG=1 OR DUOKONG=3 THEN BEGIN
  
   空开:BUYSHORT(1=1  and time>93500,ORDVOL,MARKETR),ORDERQUEUE;
   LOWPRICE:=ENTERPRICE;
   KCFX:=-1;
END
END

//收盘前平仓
收盘平多:SELL(TIME>=151430 AND HOLDING>0,0,MARKETR,0),ORDERQUEUE;         //平多
收盘平空:SELLSHORT(TIME>=151430 AND HOLDING<0,0,MARKETR,0),ORDERQUEUE;    //平空

IF HOLDING=0 THEN BEGIN
   KCFX:=0;  //空仓时重置开仓方向
   SSYLDS:=0;//空仓时重置盈利点数
END


当前开仓方向:KCFX,LINETHICK0;
当前持仓盈利波动点数:SSYLDS,LINETHICK0;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-31 14:53 | 显示全部楼层
1、你的策略中用到了很多stkindi跨周期引用,这种效率很低的,且你在分笔周期上运行,那很大概率出现图表上的信号和实际下单的信号对不上的。
2、另外你的策略中存在小周期引用大周期,那会导致历史K线上的信号发生闪烁的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-3-22
曾用名:
 楼主| 发表于 2025-3-31 15:05 | 显示全部楼层
模拟账户运行又没有出现这个问题
截图202503311505002388.png
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-31 15:08 | 显示全部楼层
如果代码的执行和预期的不符,那只能调试代码中的开平仓条件,没有别的方法。这个和实盘还是模拟没有直接的关系的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

2

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-3-22
曾用名:
 楼主| 发表于 2025-3-31 15:18 | 显示全部楼层
stkindi跨周期引用  能不能往前便宜一个周期?
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-31 15:22 | 显示全部楼层
那要看你stkindi的最后一个参数是否被指定的周期参数占用,如果没有占用,那可以直接用-1往前偏移;你的这个策略中调用5秒和10笔的被占用了,只能在被引用策略中,把被引用的指标加ref偏移一根,再通过stkindi引用,变相实现往前偏移一根。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-15 05:27 , Processed in 0.180434 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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